# ticket

tkt_uuid: 970199ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: None
title: MessageDlg::create Bug and Fix
comment:
  BUG:

  The dialog type abortretryignore has no default button.

  In the demo this results in a tcl-error:

  bad -default value "": must be abort, retry, ignore, ok, 
  cancel, no, or yes
      while executing
  "tk_messageBox -icon info -default {} -message 
  {Message for MessageBox} -type abortretryignore -title 
  Information -parent ."
      ("eval" body line 1)
      invoked from within
  "eval [list tk_messageBox] [array get tkMBoxArgs]"
      (procedure "MessageDlg::create" line 81)
      invoked from within

  ... (further is uninteresting)


  FIX:

  add a default button even for type abortretryignore:
  (line 56 and 57 in messagedlg.tcl):

      switch -- $type {
          abortretryignore {set lbut {abort retry ignore}; 
  set defb 0 }

  regards
  Vera


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


tkt_uuid: 3610485fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 1 Zero
foundin: None
resolution: Not Applicable Here
title: Validate option default at instance creation
comment:
  When a new instance is created it would be nice if the option's default value could be checked using the -validatemethod specified.


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

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

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


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

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


tkt_uuid: 2123513fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: missing protections from empty $sepChar
comment:
  % package require csv
  0.7
  % package require struct
  2.1
  % csv::split2matrix [struct::matrix] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence
  % csv::split2queue [struct::queue] fubar {}
  couldn't compile regular expression pattern: invalid escape \ sequence

  Likewise for the read2* variants.

  Deep inner parts cannot tolerate an
  empty string value for $sepChar, but not
  all wrappers protect against it.


tkt_uuid: 1474629fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Duplicate
title: BWidget::place wrong placement when above or left
comment:
  BWidget::place (used, for example, by ComboBox) does
  the wrong thing when something has to be placed above
  or to the left. Instead of placing as expected, the
  placement is made somewhere off the top or left-hand
  side of the screen.

  This seems to be because the calculation for left or
  above placement is wrong. Instead of $x0-$sw and
  $y0-$sh, respectively, the calculations should be
  $x0-$w and $y0-$h. The former takes the position of the
  reference widget and subtracts from it the dimension of
  the screen. This is incorrect. The latter takes the
  position of the reference widget and subtracts from it
  the dimension of the widget being placed, resulting in
  correct placement.

  This mistake appears several times throughout the
  BWidget::place procedure.

  Bug submitted by Mario Becroft <mb@gem.win.co.nz>


tkt_uuid: 630405ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Duplicate
title: BWidget LabelEntry -textvariable option
comment:
  As reported on CLT, te change to the _LabelFrame_
  widget were the _-textvariable_, _-image_ and _-bitmap_
  option were added to the _LabelFrame_ widget now causes
  problems with the _LabelEntry_ widget. This patc will
  solve this by renaming the 3 options mentioned above.


tkt_uuid: 1950457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Invalid
title: hierarchical methods are not delegated
comment:
  Hi,

  I was stumbling over an unusual behavior of the hierarchical methods. The attached script will deliver the following output:

  Tcl version: 8.4.18
  snit version 1.3.1
  [::.gf is foo] := This is gFoo 1!
  [::.gf isFoo] := This is gFoo 2!
  [::.gf is bar] := "::.gf is bar" is not defined
  [::.gf isBar] := This is gBar 2!

  Tcl version: 8.5.2
  snit version 2.2.1
  [::.gf is foo] := This is gFoo 1!
  [::.gf isFoo] := This is gFoo 2!
  [::.gf is bar] := unknown subcommand "bar": must be foo
  [::.gf isBar] := This is gBar 2!

  The method "isBar" of type gBar is correctly delegated and available to an object .gf of type gFoo, while the method "is bar" is not.

  Is this a bug, or did I miss the respective chapter in the docs?

  kind regards
  -- Matthias Kraft


tkt_uuid: 3381002fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Tkchat announces wrong hash in XEP-0115 Entity Capabilities
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: 1969144fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Alternatives, repetition, and list structure
comment:
  Doctools has a command [opt] to mark something (often a command argument) as being optional. Two siblings of that piece of markup which I often find useful, but have been unable to apply consistently in .man pages, is alternatives and repetition.

  Suitable syntax for alternatives would be

    [alt {first alt.} {second alt.} {third alt.} ...]

  e.g.

    [alt [arg boolean] [const auto]]

  to say that something is a boolean value or the constant "auto". A naive implementation of such an alt command could be

    proc alt {args} {return "([join $args { | }])"}

  since I've seen this formatting with parentheses and vertical bars in e.g. the documentation of the ftp package.

  In line with that, repetition could have the syntax

    [rep {word} ...]

  and be naively implemented as

    proc rep {args} {return "([join $args])*"}

  i.e., a regexp-style rendering (as is also that of [alt] above), with * denoting zero or more repetitions of the arguments of [rep]. A more traditional  rendering might however be

    proc rep {args} {return "?[join $args] ...?"}

  I want [rep] (name is not important, though) because I often find myself wanting to write

    [call [cmd myCmd] [arg mandatory] [rep [arg option] [arg value]]]

  for the option-value part of a command that could be

    myCmd $mandatory
  or
    myCmd $mandatory -option $value
  or
    myCmd $mandatory -option $value -otherOption $otherValue
  etc.


  Also, the way I write packages and documentation, I often find I need to document the structure of various lists, just like one conventionally documents command syntaxes, and I don't see any good way to do that in doctools markup. For the special case of a list constructed as a command callback, it just occurred to me that I could write a dummy list with only a [call] heading, like so:

      A command prefix used to format the values while taking the 
      key names into account. It is called as
      [list_begin definitions]
        [call \{*\}[arg choicecmd] [arg key] [arg value]]
      [list_end]
      Specifying a [option -choicecmd] overrides the 
      [option -entrycmd], if any.

  but this is only a partial solution (and in the HTML rendering it seems to leave an awful lot of vertical space between the "It is called as" and "{*}choicecmd key value" lines).

  In LaTeX, I'd write the above as

      A command prefix used to format the values while taking the 
      key names into account. It is called as
      \begin{quote}
        \meta{choicecmd} \word{key} \word{value}
      \end{quote}
      Specifying a |-choicecmd| overrides the |-entrycmd|, 
      if any.

  which to some extent (\meta, \word, and \verb shorthand `|') relies on particular packages, but what I'm after right now is something that can be used like the `quote' environment in this example.

  As a concrete example, here is a passage of documentation in LaTeX, which documents the structures of two lists. The environment is my own `displaysyntax' rather than `quote', but the idea is the same:

  The \word{msg-id} is used to provide a measure of reliability by 
  providing acknowledgements of message delivery. If an |envelope| 
  with nonempty \word{msg-id} arrives at its destination then a reply 
  message with \word{payload}
  \begin{displaysyntax}
    delivery ack \word{msg-id} \word{time}
  \end{displaysyntax}
  is sent to the \word{from} address. If an |envelope| with nonempty 
  \word{msg-id} could not be sent to the next connection in \word{to} 
  then a reply message with \word{payload}
  \begin{displaysyntax}
    delivery nack \word{msg-id} \word{remaining to} \word{reason}
  \end{displaysyntax}
  is sent to the \word{from} address. These |ack| and |nack| messages 
  have empty \word{msg-id}s.


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

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

  # diff smtpd.tcl patched_smtpd.tcl

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


tkt_uuid: 3107937fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: http :: autoproxy
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Manual/Modification: when is autoproxy hooked to http
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: 1871959fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ::ncgi::query breaks encoding
comment:
  Lines 210-211 of ncgi.tcl say:

  ## added by Steve Cassidy to try to fix binary file upload
  fconfigure stdin -translation binary -encoding binary

  but, by doing this it breaks chararcter encoding


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

  * spf 1.1.0
  test name 'spf-1.3' re-used; prior use in
  /local/src/tcllib/modules/dns/spf.test
  test name 'spf-2.4' re-used; prior use in
  /local/src/tcllib/modules/dns/spf.test


tkt_uuid: 928995ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Duplicate
title: modules/inifile/test.ini ships read-only
comment:
  The file is extracted read-only, but the test script tries to open it 
  read-write (default). 
   
  I think, the default should change to read-only. chmod-ing the 
  file after extraction provides a workaround for the FreeBSD port. 
   


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


tkt_uuid: 3496110fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: amazon-s3
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ::S3 missing "Host:" header
comment:
  ::S3 does not send a "Host:" header.
  This causes "HTTP/1.1 400 Bad Request" to be returned by some transparent proxies.
  (e.g. when using Telstra 3G through the telstra.iph APN).

  The patch below sets the host header.

  --- /System/Library/Tcl/tcllib1.12/amazon-s3/S3.tcl.orig2012-02-25 15:32:45.000000000 +1100
  +++ /System/Library/Tcl/tcllib1.12/amazon-s3/S3.tcl2012-03-02 09:13:07.000000000 +1100
  @@ -252,6 +252,7 @@
       if {${content-type} != ""} {
   dict set headers content-type ${content-type}
       }
  +    dict set headers host s3.amazonaws.com 
       set xamz ""
       foreach key [lsort [dict keys $headers x-amz-*]] {
   # Assume each is seen only once, for now, and is canonical already.


tkt_uuid: 1879627fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: list
priority: 5 Medium
foundin: None
resolution: Duplicate
title: struct::list test suite case failure
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: 2970577fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: tklib :: tooltip
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: add tooltip image support
comment:
  Tooltip can only display text. With the following code in tooltip::show we can also display images and bitmaps.
  The user has to provide a valid image/bitmap instead of the message argument.

      # Use late-binding msgcat (lazy translation) to support programs
      # that allow on-the-fly l10n changes
      if {[catch {set type [image type $msg]}]} {
        $b.label configure -text [::msgcat::mc $msg] -justify left
      } elseif {$type eq {bitmap}} {
        $b.label configure -bitmap $msg -justify left
      } else {
        $b.label configure -image $msg -justify left
      }


tkt_uuid: 2972571fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: comm send fails when the command ends in a backslash
comment:
  The "comm::comm send" command fails when the sent command ends in a backslash character. This can happen when the last argument to a command is a binary string that ends in 0x5C (the backslash character). In this case, the "send" command blocks indefinitely. This can easily be replicated by sending the command {puts \\}.

  It looks like the problem is in the ::comm::Word0 function, which returns the error "no complete word found/1". This problem only exists in comm-4.6.1. It does not exist in comm-4.6.


tkt_uuid: 1014795fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: base64
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tcl crashes when I b64 encode files
comment:
  I have a few files I want to encode into base64. Some are small, others are around 4 or 5 Mb. It takes so long to encode the large ones that I just kill the process and give up.

  But my attention caught the fact that one particular file always crasheed wish or tclsh. It is a 4,731,340-byte ZIP file. The file is OK, I can open it like any other. Whenever I try to encode it with ::base64::encode, however, I get this window title...

  Fatal Error in Wish

  ... and this error message:

  unable to realloc 5857536 bytes

  It also occurs with tclsh, except for the "Fatal Error in Wish" title, of course.

  So I went after a few 4 or 5-Mb zip files in my disk, did some more testing and saw that roughly 7 out of every 10 files make wish.exe crash.

  Intrigued by the "5857536" figure, I went after bigger files: 7 Mb, 8 Mb, 15 Mb, 24 Mb and 65 Mb. About 10 of them. Sometimes I get a different figure, "9326961" appeared twice, but "5857536" still is the most frequent one.

  I stil can use Cygwin-based b64.exe. No problems with that one.

  Now I am using ActiveTcl 8.4.7, but I also saw the problem in 8.4.6.

  My OS is Windows 98 SE.


tkt_uuid: 1254937fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Duplicate
title: Binary files get an extra line feed at the end
comment:
  Binary mime parts get an extra line feed at the end,
  before the border.

  I have submitted patch 1254934 as a proposal to fix
  this problem.


tkt_uuid: 458023ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: urlStub always returns ""
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: 3076576fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
resolution: Fixed
title: Wrong number of arguments in test isprime-2.0 of numtheory
comment:
  Test isprime-2.0 uses a mock-up Miller-Rabin test procedure, but the number of arguments is 3, instead of 4.

  Here is the report:

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

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

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

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


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

    package require BWidget

    wm geometry . 500x500
    update idletasks

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

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

    update idletasks
    after 1000

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

    update idletasks
    after 1000

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

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

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

  Kind regards, 

  Jos.


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

  Consider the following:

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

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

  Juan Carlos---


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

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

  ---- doctools-idx-50.0.1 start

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

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


tkt_uuid: 1104059fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: pop3
priority: 3 Low
foundin: None
resolution: Not Applicable Here
title: Allow easy use of TLS with pop3
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: 526833ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: Missing commands example_begin/_end
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: 3035014fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: uuid
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: "uuid::generate" returns binary data
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
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Duplicate
title: tk binding problem in Gnome and Ximian
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
subsystem: html
priority: 5 Medium
foundin: None
resolution: Fixed
title: ::html::textInput does not process args
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
subsystem: crc
priority: 5 Medium
foundin: None
resolution: Fixed
title: package overwrites ::v
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: 861721ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: nntp
priority: 5 Medium
foundin: None
resolution: Fixed
title: NNTP is binary, yEnc is being corrupted
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: 943146ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: nroff formatting eats backslashes
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: 3312860fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftpd
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Many FTP commands do not handle commands with absolute paths
comment:
  Many FTP commands such as "APPE", "STOR", and "RETR" do not handle pathname arguments that are absolute pathnames -- they instead get the current working directory appended to them as relative paths.

  This is due to the use of the following idiom:
            set path [file join $data(cwd) [string trimleft $filename /]]

  Suggested fix is to remove the [string trimleft] call, which will result in the "path" variable containing the correct absolute path when an absolute path is supplied and when a relative path is supplied.


tkt_uuid: 513320ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget PanedWindow problem
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: 1877643fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: None
title: pkgIndex.tcl and plotchart.tcl indicate different versions
comment:
  The current pkgIndex.tcl file does a package provide of 1.3.1 while the current plotchart.tcl does a package provide of 1.4.0, which results in a package require Plotchart failing.  I installed this from the ActiveState Tcl repository, but I believe from looking at the latest CVS version that the problem exists outside of the ActiveState Tcl distribution as well.


tkt_uuid: 1676157fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: http :: autoproxy
priority: 5 Medium
foundin: None
resolution: Fixed
title: autoproxy in-code example creates bogus dependency
comment:
  The autoproxy::defAuthProc, and example user authentication command requires bwidget and introduces this as dependency into the package. The example should be in an example application where the dependency would be ok as well.


tkt_uuid: 3012802fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: nntp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: add timeout feature for nntp
comment:
  Some packages such as http support a timeout.  For unreliable links this is very helpful.  However, nntp simply uses "gets".  See ::nntp::fetch.  Please add a similar timeout feature for nntp.  Using http as an approximate model, I have added this capability, using fileevent and vwait.  Please see attachment; you can diff ::nntp::fetch, and please see additional functions ::nntp::getline and ::nntp::timeout.  Unfortunately nntp also does not support convenient configuration of options, so I have used a hardcoded timeout of 60 seconds.  This is probably not appropriate.


tkt_uuid: 2962077fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: ipentry
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: error if an array element is used as -textvariable
comment:
  Steps to reproduce:

  puts [ info patchlevel ]
  puts [ package require -exact ipentry 0.2 ]
  set foo(bar) 1.1.1.1
  ::ipentry::ipentry .ip -textvariable foo(bar)
  catch { set foo(bar) 1.1.1.2 } msg
  puts $msg
  exit

  output for version 0.2:
  8.4.19
  0.2
  1.1.1.2

  output for version 0.3
  8.4.19
  0.3
  can't set "foo(bar)": can't read "var": variable is array

  Expected:
  no error in both cases

  I saw a big rework in ipentry.tcl from 1.13 to 1.14 that changed
  ::ipentry::traceVar to ::ipentry::traceFired and eliminated the
  test if { $key != "" }

  Is this a bug or a feature?


tkt_uuid: 1668587fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Fixed
title: BWidget MessageDlg, -type user overrides default buttonwidth
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: 792674ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Works For Me
title: ComboBox list size bug
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: 832317ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: taip
priority: 5 Medium
foundin: None
resolution: Fixed
title: taip.mp3 tagged wrong in CVS
comment:
  All MP3 files should be binaries, but
  apps/taip/taip.mp3 is marked as a text file.  This
  makes it check out wrong on Windows.  Fix with:
    cvs admin -kb apps/taip/taip.mp3


tkt_uuid: 443619ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Fixed
title: pop3 doesn't handle empty mailbox!
comment:
  I noticed a problem with pop3::list. It chokes on an 
  empty mailbox by complaining it knows nothing about 
  the msgBuffer variable (that occurs in the pop3::list 
  return). 

  Since mailboxes can indeed be empty, an obvious 
  workaround seems to be to initialize the variable at 
  the start of the procedure:

      set msgBuffer {}

  Another solution might be for people to keep sending 
  me emails. But that may be asking for a bit too much 
  [;-)].

  Cheers,

  -- AH.


tkt_uuid: 589225ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: test writes ~/foo
comment:
  It appears that testing of the comm module
  creates and leaves behind a file ~/foo

  temporary files should be written to 
  [tcltest::configure -tmpdir] and should
  be deleted by the same test file that
  creates them.


tkt_uuid: 547274ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: ncgi:nvlist bug
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: 586720ffffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: mclistbox
priority: 5 Medium
foundin: None
resolution: None
title: comcmd itemconfigure, few options added
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: 505468ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Invalid
title: missing MainFrame menu accelerator line
comment:
  Hi!

  There's a missing line in 
  MainFrame::_parse_accelerator:
  If no modificator is specified, then the F-Keys won't 
  work! You forgot to capitalize the 'f'...

  Bye
  Stephan


tkt_uuid: 3495049fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: doctools-text-15.4 test failure
comment:
  The only difference I see between 'expected' and 'result':
  Expected:
  |        Example Block  More Lines
  Result:
  | Example Block  More Lines


tkt_uuid: 1399030fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
title: import mini-tclhttpd
comment:
  The full blown tclhttpd is too big to include in
  tcllib, but its 250 line sister "mini" rightfully
  belongs in this library.  Please integrate this
  excellent package into tcllib!
  http://cvs.sourceforge.net/viewcvs.py/tclhttpd/tclhttpd/bin/mini/


tkt_uuid: 3463420fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: logger
priority: 5 Medium
foundin: None
resolution: Fixed
title: level below currentloglevel is logged
comment:
  expect1.1> package require logger
  0.9
  expect1.2> logger::setlevel warn
  expect1.3> logger::init global
  ::logger::tree::global
  expect1.4> ::logger::tree::global::debug "Don't show!"
  [Wed Dec 21 16:46:38 CET 2011] [global] [debug] 'Don't show!'
  expect1.5> ::logger::tree::global::currentloglevel
  warn
  expect1.6> info tclversion
  8.5

  workaround1:
  use servicenames with :: separator (cannot reproduce the above with "glo::bal")

  workaround2:
  package require logger
  rename ::logger::init ::logger::init_redirect
  proc ::logger::init {service} {
  set log [uplevel [list ::logger::init_redirect $service]]
  ${log}::setlevel [${log}::currentloglevel]
  return $log
  }


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

  * ncgi 1.3
  test name 'ncgi-10.4' re-used; prior use in
  /local/src/tcllib/modules/ncgi/ncgi.test
  WARNING: cleanupTests deleting /local/src/tcllib/test1...
  env array elements created:     SERVER_PORT REQUEST_URI
  QUERY_STRING CONTENT_TYPE CONTENT_LENGTH SERVER_NAME
  HTTPS REQUEST_METHOD


tkt_uuid: 1154867fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Add a bookmark when unseen chat happens
comment:
  At current tkchat starts counting up the lines which
  some have missed if activity happens without focus. If
  you leave tkchat running for some longer time and
  return to it, there's no easy way to go back X lines,
  especially since tkchat deletes the linecounter (in its
  [wm title]) once it has focus back. So I suggest adding
  a bookmark each time the counter is incremented for the
  first time, providing an easy way to jump back to the
  last seen line(s).

  In tkchat::IncrMessageCounter, "else" arm, add:

  if {!$MessageCounter} then { BookmarkAdd }

  et voila


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

  modules/textutil/textutil.test
  - tcllib::testutils 1.0
  test name 'textutil-1.0' re-used; prior use in
  /local/src/tcllib/modules/textutil/textutil.test
  test name 'textutil-1.0' re-used; prior use in
  /local/src/tcllib/modules/textutil/textutil.test
  test name 'textutil-1.0' re-used; prior use in
  /local/src/tcllib/modules/textutil/textutil.test


tkt_uuid: 3183080fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tcl :: chan :: *
priority: 5 Medium
foundin: None
resolution: Fixed
title: Allowance in tcl::chan::string
comment:
  Verification of "Allowance" in a string channel return error.

  Example:
  -----------------------------
  lappend auto_path /home/john/lib/tcllib1.13

  package require tcl::chan::events 1
  package require tcl::chan::string 1

  set string "a b c \n d e f"

  set chan [::tcl::chan::string $string]

  puts [gets $chan]
  -----------------------------------

  [john@vps0 excel]$ tclkit8.6 xxx
  can't read "allowed(read)": no such variable
      while executing
  "if {$allowed($event) == $enable} continue"
      (class "::tcl::chan::events" method "Allowance" line 5)
      invoked from within
  "my Allowance $args yes"
  .....


tkt_uuid: 3608951fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tepam
priority: 3 Low
foundin: None
resolution: Fixed
title: TEPAM: Help text shows incorrect argument order
comment:
  The argument order of the help text of procedures defined in the Tk style (unnamed arguments first - named arguments later, [named_arguments_first=0]) is incorrect. Example:

  tepam::procedure MyProc {
  -named_arguments_first 0
  -short_description "Help generation demonstration"
  -description "Command to demonstrate the help text generation"
  -args {
  {Unnamed1 -optional -description "1st unnamed argument"}
  {Unnamed2 -optional -description "2nd unnamed argument"}
  {-Named1 -optional -description "1st named argument"}
  {-Named2 -optional -description "2nd named argument"} }
  } {
  puts "MyProc"
  }

  MyProc -help

  | NAME
  |       MyProc - Help generation demonstration
  | SYNOPSIS
  |       MyProc
  |             [-Named1 <Named1>]
  |                1st named argument
  |             [-Named2 <Named2>]
  |                2nd named argument
  |             [<Unnamed1>]
  |                1st unnamed argument
  |             [<Unnamed2>]
  |                2nd unnamed argument
  | DESCRIPTION
  |       Command to demonstrate the help text generation

  The following help text would be expected (unnamed argument listed first, named argument listed afterwards).

  | NAME
  |       MyProc - Help generation demonstration
  | SYNOPSIS
  |       MyProc
  |             [<Unnamed1>]
  |                1st unnamed argument
  |             [<Unnamed2>]
  |                2nd unnamed argument
  |             [-Named1 <Named1>]
  |                1st named argument
  |             [-Named2 <Named2>]
  |                2nd named argument
  | DESCRIPTION
  |       Command to demonstrate the help text generation

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


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

  Thus, logger 0.1 ought to

    package require Tcl 8.2

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

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

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


tkt_uuid: 827643ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: tree
priority: 5 Medium
foundin: None
resolution: Fixed
title: Root node for walk-thru
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: 1724818fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
resolution: Fixed
title: csv::join doesn't properly handle embedded newlines
comment:
  csv::join doesn't properly handle the case where a value contains an embedded newline or carriage return. 

  Corrected code is below (note the change in [string match])

  proc ::csv::join {values {sepChar ,}} {
      set out ""
      set sep {}
      foreach val $values {
  if {[string match "*\[\r\n\"$sepChar\]*" $val]} {
      append out $sep\"[string map [list \" \"\"] $val]\"
  } else {
      append out $sep$val
  }
  set sep $sepChar
      }
      return $out
  }

  Tim


tkt_uuid: 852945ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: snit
priority: 5 Medium
foundin: None
resolution: None
title: variable should check for :: in names
comment:
  although 'variable' isn't meant to be the same as Tcl's 
  variable, it is and will be used similarly.  Therefore it 
  would be a good idea to check if something like
     variable ::foo::bar
  is used and not prepend the snit namespace in that 
  case.


tkt_uuid: 1037636fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: TempFile does not generate random names on fast computers
comment:
  When you call the TempFile on a fast computer (3GHz w. 
  HT technology) then is generate a name with equal 
  chars like YYYYYYYY
  The random generation of names use the clock clicks 
  which is machine depended, and if I try to call clock 
  clicks to time right after each other then it returns the 
  same value.

  Why not use the ::math::random instead? 


  Tcllib 1.6

  Best regards
  Torben A. Hansen

  torben.arnt.hansen@sciatl.com

   


tkt_uuid: 3495830fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: First go at installing tcl modules
comment:
  Attached patch gives the installer the ability to install (some) packages as tcl modules.
  Also adds -destdir option, similar to ${DESTDIR} in Tcl's Makefile.


tkt_uuid: 1111364fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Fixed
title: dtplite error
comment:
  dtplite -o e:/mydir html myfile.man
  does not automatically create a file e:/mydir/myfile.html, 
  but a file e:/mydir/myfile., as specified in the command 
  syntax. 
  Reason: In procedure ::dtplite::processCmdline

      if {[string equal $ext ""]} {
        set ext $format
      }

  should be before

  set output [file join $output [file tail [Output $input]]]

  (thl@gedas.de)


tkt_uuid: 1890987fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Encoded chars in rss feeds
comment:
  Hi,

  Html-encoded chars (e.g. <) are not decoded before showing the rss info. This piece of code to be added to proc ::tkchat::rss::ShowRssInfo (tkchat_rss.tcl line 152) fixes this problem:

              if {![info exists a(title)] || [string length $a(title)] < 1} {
                  set a(title) "(no title)"
              } else {
  set a(title) [::htmlparse::mapEscapes $a(title)]
      }
      if {[info exists a(description)]} {
  set a(description) [::htmlparse::mapEscapes $a(description)]
      }


  Kind regards,

  Jos.


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

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

  http://mini.net/tcl/11794

  regards,
  Detlef Groth

  <dgroth (at) gmx.de>


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

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


  Dear mister Staplin,

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

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

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

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

  Kind regards,

  Jos.


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

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

  pack .t .c

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

  proc toggle_prefix { txt x y } {

      global line_char

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

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

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

      $txt delete $iidx

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

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

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


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

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


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


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

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

  This should be rewitten as

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

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


tkt_uuid: 2124508fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: textutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: textutil::string man page overwrites tcl's string man page
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: 2512528fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 5 Medium
foundin: None
resolution: Invalid
title: crc32 wrong with -seed option
comment:
  Generating crc32 of the strings '?' and 'Hello' generates the correct values as tested agains other code and online crc generators.

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


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

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

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

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

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


tkt_uuid: 1313173fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct
priority: 9 Immediate
foundin: None
resolution: Fixed
title: Crash in htmlparse tests with critcl struct package
comment:
  On Windows XP with the current CVS head of tcllib and
  tcl 8.4.11, if we first build the critcl package and
  then run the test suite we get a crash caused by a
  string buffer overflow raise from tcl. In the stack
  trace above I see functions from tcllibc and I believe
  it is the struct module. As I dig into this I'll add
  details here.

  To reproduce:
   tclsh sak.tcl critcl
   tclsh sak.tcl test htmlparse

  Stack trace is:
   MSVCRTD.DLL!strlen Line 78
   tcl84g.dll!UpdateParseVarName ...
   tcl84g.dll!Tcl_GetString ...
   tcl84g.dll!Tcl_ObjSetVar2 ...
   tcllibc!0175ed51()
   tcllibc!0175f06e()
   ...
   tcl84g.dll!TclEvalObjInternal...

  AFAICT the tcl proc actually being run here is
  htmlparse::2tree


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

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

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

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

  To reproduce:

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

  the .splintrc file is listed twice

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

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

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

  Ralph


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

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

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


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

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


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

  package require snit

  ::snit::type Boom {
      destructor {
      }

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

  Causes:

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

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


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

  Patch file includes the following changes:

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


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

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

  Jos.


tkt_uuid: 1205536fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Accepted
title: ComboBox Return binding broken if -bwlistbox set
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: 3247765fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: smtpd
priority: 5 Medium
foundin: None
title: Add a smtpd::configure -banner callback
comment:
  The first thought using the  smtpd package is that the first response the smtpd does to an accepted client connection is to put up a "banner" reply to the client shouldnt be hardcoded by the smtpd package.

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

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


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

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

  must be replaced to  :

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


tkt_uuid: 932516ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: html
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: html - many procedures not compatible with prodebug
comment:
  prodebug complains about the following:

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


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


tkt_uuid: 2847341fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: md5
priority: 8
foundin: None
resolution: Not Applicable Here
title: leak in md5 (critcl)
comment:
  I confirmed the leak reported by echm [http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/a873bbc1ee78d776/b5ca31cdab5af4d6?lnk=gst&q=md5#b5ca31cdab5af4d6]

  The following script consumes ever increasing amounts of memory:

  % package require md5
  2.0.7
  % parray md5::accel
  md5::accel(critcl)   = 1
  md5::accel(cryptkit) = 0
  md5::accel(trf)      = 0
  % while 1 {md5::md5 testdata}

  % info patch
  8.5.7
  % parray tcl_platform
  tcl_platform(byteOrder)   = littleEndian
  tcl_platform(machine)     = x86_64
  tcl_platform(os)          = Linux
  tcl_platform(osVersion)   = 2.6.24-24-generic
  tcl_platform(platform)    = unix
  tcl_platform(pointerSize) = 8
  tcl_platform(threaded)    = 1
  tcl_platform(wordSize)    = 8


tkt_uuid: 1475567fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tklib: plotchart
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: interaction with elements of the plots
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: 940375ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Duplicate
title: tcllib 1.6 install error due to doc. generation bug
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: 1740862fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Fixed
title: replace {expand} uses
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: 517066ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: EXIF digital image parser
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: 1695124fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Extend testsuite
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
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Fixed
title: find error on hidden, unreadable directory in Windows
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: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Feature request: Robots exclusion rules parser/checker
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: 616522ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: ListBox::_multiple_select error
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: Deleted
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: possible error condition when port in use
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: 2886893fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: fix documentation for ldapx's ldap class
comment:
  ldapx's ldap class documentation contains two errors showing "::ldapx::ldap create" when it should be "::ldapx::entry create".  Patch attached.


tkt_uuid: 603924ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: add getall / keys / keyexists to graph
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: Deleted
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: notebook: -raisecmd should be able to forbid raising
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
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Out of Date
title: initializing multipart files too slow
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: 1416780fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: pop3
priority: 5 Medium
foundin: None
resolution: Fixed
title: pop3: test suite bugs
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
subsystem: math :: linearalgebra
priority: 8
foundin: None
resolution: Fixed
title: mkWilkinson+ may be wrong
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: 1779348fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: profiler
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: profiler test suite peculiar behavior
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
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: Tcllib source README missing web info
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: 899152ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
resolution: Fixed
title: installer should [package require Tcl 8]
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: 3495047fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: A Category Is Missing
priority: 1 Zero
foundin: None
resolution: Not Applicable Here
title: Bug Database link broken on tcllib home page
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: 2800387fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
resolution: Fixed
title: struct::graph:op::{kruskal,prim}
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: 744109ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 8
foundin: None
title: easier help access for dtp
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: 527029ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Online help for mpexpand
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: 1733442fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: htmlparse
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: elements of htmlparse param list cannot be accessed
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: Deleted
subsystem: nntp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Add support for async requests to nntp
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: Deleted
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: linking to array variable problem
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: 1445692fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Out of Date
title: parsedatetime month wrong
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: 1747885fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: des
priority: 5 Medium
foundin: None
resolution: Fixed
title: des 1.0.0 loses what 0.8.1 could
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: 2113728fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: "$type info instances" corrupted after object-creation error
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: 472010ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Invalid
title: "smtp::sendmessage" and "header"
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: 1695123fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools - Rework to use snit
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: 862638ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: can't read &quot;ftp(Wait)&quot;: no such variable - background error
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: 3610478fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: json
priority: 5 Medium
foundin: None
resolution: None
title: json conversion fails on help example
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: 577678ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Add the package tkmisc to tklib
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
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: 2159700fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
resolution: Rejected
title: Bug in tablelist when interacting with gridplus
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: Deleted
subsystem: tklib :: tooltip
priority: 3 Low
foundin: None
resolution: Not Applicable Here
title: Tooltip font, msgcat namespace
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: 979487ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: bwidget
priority: 5 Medium
foundin: None
resolution: Out of Date
title: SelectColor widget locks up on MacOS
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: Deleted
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: tklib test suite for plotchart generates core
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: 476731ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: replace ftp displaymsg with log calls
comment:
  andreas kupries asked me to log a feature request to
  replace ftp's displaymsg calls with calls to the tcllib
  log module.


tkt_uuid: 2798448fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: uri::split makes host to path without scheme
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: Deleted
subsystem: None
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: install as Tcl Modules
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: 1416729fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: counter
priority: 5 Medium
foundin: None
resolution: Fixed
title: counter: test suite bugs
comment:
  with -debug 1:

  * counter 2.0.4
  test name 'counter-avg' re-used; prior use in
  /local/src/tcllib/modules/counter/counter.test
  test name 'counter-lastn' re-used; prior use in
  /local/src/tcllib/modules/counter/counter.test
  test name 'counter-lastn' re-used; prior use in
  /local/src/tcllib/modules/counter/counter.test
  test name 'counter-hist' re-used; prior use in
  /local/src/tcllib/modules/counter/counter.test


tkt_uuid: 1824212fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: md5
priority: 5 Medium
foundin: None
title: add proc to generate salt
comment:
  this would be really handy to have included as part of the module, for generating passwords. here is my version:

  proc salt {len {chars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/.}} {
      set salt {}
      set size [string length $chars]
      while {$len > 0} {
          append salt [string index $chars [expr {int(rand() * $size)}]]
          incr len -1
      }
      return $salt
  }

  set enc_pass [::md5crypt::aprcrypt [salt 8] $pass]


tkt_uuid: 2835744fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tklib :: widget
priority: 5 Medium
foundin: None
resolution: Wont Fix
title: widget:dialog button handling bug?
comment:
  The comments in the "close" method claim:
      # 'break' return code - don't withdraw
      # Withdraw on anything but 'break' return code
  for the handling of the results from the "-command" callback.

  However, as I found out this is not true if the dialog is configured -synchronous 1 (default).
  In that case the method "display" unconditionally withdraws the dialog.

  This affects -type okcancelapply, as the apply button will not act like it should, i.e. apply changes, keep dialog open.

  My guess is that this is a limitation of the "-synchronous 1" mode, and it simply has to be documented.

  The workaround is to make the dialog "-synchronous 0".
  I guess that is sensible anyway, due to the use of a "-command" callback.


tkt_uuid: 1540261fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: Installation
priority: 9 Immediate
foundin: None
resolution: Fixed
title: dont reflect new sak interface
comment:
  In Makefile.in is dont reflected new sak interface

  simple patch for instalation here:

  --- Makefile.in 2005-09-28 06:51:19.000000000 +0200   
                           
  +++ Makefile.in-patched 2006-08-13 17:13:09.000000000
  +0200                     
  @@ -96,17 +96,17 @@                                   
                           
                                                        
                           
                                                        
                           
   html-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  html                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc html                   
   nroff-doc:                                           
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  nroff                      
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc nroff                  
   tmml-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  tmml                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc tmml                   
   wiki-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  wiki                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc wiki                   
   latex-doc:                                           
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl` ps
                          
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc ps                     
   list-doc:                                            
                           
  -       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  list                       
  +       $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  doc list                   
                                                        
                           
   check:                                               
                           
          $(TCLSH_PROG) `$(CYGPATH) $(srcdir)/sak.tcl`
  validate                   

  thanks
  wohnivec@dix.cz


tkt_uuid: 995545ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: struct :: record
priority: 5 Medium
foundin: None
resolution: Out of Date
title: package require struct::record does not work
comment:
  as described above 

  package require struct::record
  can't find package struct::record


  however

  package require struct
  namespace import ::struct::record

  does work

  this does not match the documentation!!!

  tcllib1.6


  from garyt@bmb.leeds.ac.uk


tkt_uuid: 2821416fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: smtp should not use [vwait]
comment:
  Since the smtp client uses [vwait] to run asynchronously, it cannot be used within an application which also uses [vwait].  Since that includes any networking program of any complexity, the smtp client's utility is substantially reduced.

  I have an event-driven smtp client written using coroutines and tcloo which doesn't suffer from this problem, to which you are welcome.

  The same problem appears (on cursory grepping) to be evident in several other tcllib networking packages including ldap, ftp and comm.


tkt_uuid: 1346299fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: ctext
priority: 2
foundin: None
resolution: Not Applicable Here
title: ctext module dir contains obsolete files
comment:
  The ctext module dir contains file which are obsolete
  since the inclusion in tklib. This is the case at least
  for ctext/installer.tcl but may be true for other files
  related to installation.


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

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

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

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

  (last line before return)


tkt_uuid: 3042811fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: json
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: huddle bug in dicts with complex keys
comment:
  package require huddle

  set bb [huddle create {a b} b c d]
  puts [huddle jsondump $bb]

  Run it, it produces:

  key "{a b}" not known in dictionary
      while executing
  "dict get $src $key"
      (procedure "::huddle::_dict_setting" line 22)
      invoked from within
  "$types(callback:$tag) get_sub $src $path"
      (procedure "_get2" line 4)

  I presume there's something in huddle which inappropriately deals with complex key cases.


tkt_uuid: 1397543fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Snit v2 not handling tcl8.5 return -options
comment:
  Since snitv2 runs under tcl8.5, I think CallInstance
  needs to handle the extended error options available
  under 8.5, so suggest the following amendment:


  proc ::snit::RT.CallInstance {selfns args} {
      upvar ${selfns}::Snit_instance self

      set retval [catch {uplevel 1 [linsert $args 0
  $self]} result eo]

      if {$retval} {
              return -code $retval -options $eo $result
      }

      return $result
  }

  Although, now I think about it, it doesn't really make
  sense to trap the errors merely to re-throw them, so it
  might be best to just make it this:


  proc ::snit::RT.CallInstance {selfns args} {
      upvar ${selfns}::Snit_instance self

      return [uplevel 1 [linsert $args 0 $self]]
  }

  Or even this:

  proc ::snit::RT.CallInstance {selfns args} {
      upvar ${selfns}::Snit_instance self

      return [$self {expand}$args]
  }


tkt_uuid: 2220156fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: snit
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Several questions about Snit objects
comment:
  I have a few questions on Snit objects (see:  http://wiki.tcl.tk/2831 for some details - the example near the end)

  1. Is it possible to _clone_ an object? 
     I ask because I want to "chain" methods from various 
     objects. In my example: to combine different 
     transformations into a single one.

  2. Is the command install only available at creation 
     time? If not, I would like to use it to vary the 
     components after the object has been created, to
     make its behaviour more dynamic.

  3. Is the delegate command only available when 
     defining the type?

  (The reasons for questions 2 and 3 are that I would like 
  some dynamic behaviour of the objects, beyond options
  and variables. Mostly, perhaps, because I am 
  experimenting with Snit, to get a feel for the style
  of programming)
   


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

  For example :

  dtp doc html graph.man 
  graph.html

  or :

  dtp filedoc graph.man 
  ?graph.html?


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

  try, for example:

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

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

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

   


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


tkt_uuid: 1653431fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: sasl
priority: 5 Medium
foundin: None
resolution: Accepted
title: Use authentication domain returned by server with NTLM
comment:
  Currently the type 1 message generated by the NTLM code, includes the req_target flag. This will request the correct authentication realm from the server. Currently this information is not used and therefore the correct domain always has to be specified even if the server returns it.
  The following patch on ntlm.tcl will use the domain returned by the server if available. This allows the user of the NTLM to omit the domain in most cases.

  diff ntlm.tcl.orig ntlm.tcl
  63a64,67
  >               # if server returns a domain, use it
  >               if {[info exists params(domain)]} {
  >                       set ctx(realm) $params(domain)
  >               }


tkt_uuid: 2459470fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Debug and Verbose do not generate output
comment:
  Because log suppresses warnings and lower the ftp package needs to unsuppress so when Verbose and/or Debug is set to 1, the log package will print out the debug messages. Recommend placing the command:
  ::log::lvSuppressLE emergency 0
  in the namespace eval ::ftp command, being the ftp package actually controls when the log command is executed there should be no repercussions in ensuring everything is unsuppressed.


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

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


tkt_uuid: 475018ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: uri
priority: 5 Medium
foundin: None
resolution: Duplicate
title: interaction missing between uri and ftp
comment:
  when one invokes uri::geturl
  ftp://ftp.someplace.com/pub/tcl/stuff.gz
  you get an error because ftp doesn't define a "geturl"
  in all lower case characters.

  Also, the uri::split creates a value of "pwd" when
  "passwd" would be more obvious - pwd means print
  working directory in ftp:: for instance!


tkt_uuid: 3434579fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: yaml
priority: 8
foundin: None
resolution: Not Applicable Here
title: Infinite loop
comment:
  When a yaml input file (or string) is not terminated with a \n (EOL) the yaml parser gos into an infinite loop at the end.


tkt_uuid: 2787849fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Can comm use Iocpsock under Windows
comment:
  I have one report of comm not being able to open a windows socket.
  Ther error message was:
  couldn't open socket: no buffer space available
  while executing
  "::comm::comm_cmd_new ::comm::comm ::comm::comm -port 0 -local 1 -listen 1"

  I have a feeling that if comm were to use the Iocpsock package where available this could be taken care of.
  Thanks


tkt_uuid: 3613162fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: log
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Adding support to log save to a file
comment:
  I feel it would be good if logger package support 
  1) saving log messages to logfile. 
  2) log file rotation.

  I already implemented these enhancement locally and would like to contribute same to community. 


tkt_uuid: 1542666fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: ldap
priority: 5 Medium
foundin: None
resolution: Accepted
title: addition of ldap::modifyMulti
comment:
  This patch provides a new function "modifyMulti" 
  which takes arguments compatible with "addMulti" and 
  multiple-valuated arguments.

  This patch assumes that patch 1191326 has been 
  applied.

  No modification to current API (except the addition 
  of a new function.


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

  * logger 0.6.2
  test name 'logger-7.3' re-used; prior use in
  /local/src/tcllib/modules/log/logger.test
  test name 'logger-13.7' re-used; prior use in
  /local/src/tcllib/modules/log/logger.test


tkt_uuid: 687912ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: crc
priority: 5 Medium
foundin: None
resolution: None
title: crc16.tcl missing in tcllib-1.[23].tar.gz
comment:
  % gunzip < tcllib-1.2.tar.gz | tar tf - | grep crc
  tcllib-1.2/modules/crc/
  tcllib-1.2/modules/crc/crc32.n
  tcllib-1.2/modules/crc/sum.n
  tcllib-1.2/modules/crc/pkgIndex.tcl
  tcllib-1.2/modules/crc/cksum.test
  tcllib-1.2/modules/crc/crc32.test
  tcllib-1.2/modules/crc/sum.tcl
  tcllib-1.2/modules/crc/cksum.tcl
  tcllib-1.2/modules/crc/crc32.tcl
  tcllib-1.2/modules/crc/ChangeLog
  tcllib-1.2/modules/crc/sum.test
  tcllib-1.2/modules/crc/cksum.n

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


tkt_uuid: 564279ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: ncgi
priority: 5 Medium
foundin: None
resolution: Fixed
title: ncgi::multipart bug
comment:
  In "ncgi::multipart" we have:
  ---
  if {[regexp -- $boundary\r\n $query]} {
      set lineDelim "\r\n"
  puts "DELIM"
      } else {
          set lineDelim "\n"
  puts "NO"
      }
  ---
  It seems to me that the 2 "puts" are for debugging
  purposes only: in real life, using ncgi::multipart
  causes the emission of a wrong header ("DELIM" or "NO").


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

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


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

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

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

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

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

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


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

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

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

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

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


tkt_uuid: 1409177fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: more secure alternative to [tempfile]
comment:
  The [tempfile] command creates
  a new file and returns its name.

  The caller is then free to
  [open] that filename.

  The separation of file creation
  and the [open] leaves an interval
  when an attacker might manipulate
  that file.  So care must be taken
  when using this facility.

  A more secure strategy is to have
  one command do all parts: generate
  the file name, create and open
  the file, and pass back the channel
  of the open file in addition to
  the file name.

  This is analogous to using 
  mkstmp() instead of tmpnam()
  in a C program.

  It would be good to either modify
  [tempfile] to improve security, or
  if compatibility is a concern, offer
  an alternative command for the more
  secure option.

  Note there are some security issues
  that cannot be addressed fully at
  Tcl script level with Tcl's current
  built-in commands, and will require
  a C-coded solution.  See TIP 210.


tkt_uuid: 832487ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: Documentation
priority: 5 Medium
foundin: None
resolution: Fixed
title: pattern arg for profiler::reset not documented
comment:
  Hi,

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

  Here's the patch for the same:

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


tkt_uuid: 2787872fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: default standard channel should not be created implicitely
comment:
   "comm" provides a default "communication channel" named "comm::comm" .

   If your app. doesn't need to "provide services", but just to call services, you should destroy it, and then create a simple outgoing channel.

   I think that when you load comm (package require comm), such standard channel should not be created automatically.
  Users should be explicitely create it 
     comm::comm new comm::comm


tkt_uuid: 3138526fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: smtp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Wrong email server name gives unrelated error message
comment:
  If you pass the wrong server name to the smtp::sendmessage procedure, then the error message is:

  premature end-of-file from server

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

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


tkt_uuid: 1570938fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: tkchat - main window pops up for msgs in 1-1 chat window
comment:
  I recently updated to v 1.349 of the tkchat.
  Now that I started to use the 'chat' feature for 1-1
  talks I noticed that when messages arrive in the
  subordinate chat window tkchat blinks and pops up the
  main window. The only way to see that it was the chat
  window which has the message is the '*' which is added
  to its title.


tkt_uuid: 1680877fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: asn
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: procedures to get/set ber encoded data independ of tag
comment:
  On occasions it is very useful to either extract a TLV structure or create a TLV structure independend of the tag (not in the least in the asn lib itself).
  This is also very useful in handeling sequences of implicit types.

  I therefore would find it useful if two procedures are added:

  proc ::asn::asnGetTLV { data_var tlv_var } {
   # gets a tag/length/value structure from the start of the data.
   # return false if data exhausted, true if data left
   upvar $data_var data $tlv_var tlv
   asnGetByte data tag
   asnGetLength data length
   asnGetBytes data $length temp
   set tlv [asnTLV $tag $temp]
    if {[string length $data] > 0} {
      return true
    } {
      return false
    }
  }

  proc ::asn::asnTLV {tag value} {
    set len [string length $value]
    return [binary format H2a*a$len [format %02X $tag] [asnLength $len] $value]
  } 


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

  m.d.nauta@hetnet.nl


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

  * pop3d 1.1.0
  - comm 4.3
  WARNING: cleanupTests deleting
  /local/src/tcllib/coserv.sub...
  WARNING: cleanupTests deleting
  /local/src/tcllib/__dbox__...
  modules/pop3d/pop3d_dbox.test
  - tcllib::testutils 1.0
  - md5 2.0.4
  - mime 1.4.1
  * pop3d::dbox 1.0.2
  WARNING: cleanupTests deleting
  /local/src/tcllib/__dbox__...
  WARNING: cleanupTests deleting /local/src/tcllib/__bar__...
  modules/pop3d/pop3d_udb.test
  - tcllib::testutils 1.0
  * pop3d::udb 1.1
  test name 'pop3-udb-3.0' re-used; prior use in
  /local/src/tcllib/modules/pop3d/pop3d_udb.test
  test name 'pop3-udb-3.1' re-used; prior use in
  /local/src/tcllib/modules/pop3d/pop3d_udb.test
  test name 'pop3-udb-3.2' re-used; prior use in
  /local/src/tcllib/modules/pop3d/pop3d_udb.test
  WARNING: cleanupTests deleting /local/src/tcllib/__UDB__...
  WARNING: cleanupTests deleting
  /local/src/tcllib/__UDB__.old...


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


tkt_uuid: 1280529fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: inifile
priority: 5 Medium
foundin: None
resolution: Fixed
title: Bug in Tcl
comment:
  % package require inifile
  0.1
  % set ::data 45
  45
  % set ini [::ini::open file.ini]
  can't array set "data": variable isn't array


  Why? See:
  http://sourceforge.net/tracker/index.php?func=detail&aid=1280497&group_id=10894&atid=110894

  It should be :
  namespace eval ::ini:${...} {
    variable data
    variable ....
    ....
  }

  a-tcl@freakmail.de


tkt_uuid: 991452ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: ftp::Quote should join arguments
comment:
  in ::ftp::Quote arguments are simply reached to the server,
  but this is a tcl list. If list values contain spaces
  or special
  characters, tcl wraps list elements in braces and these get
  handed over to the ftp-server.

  I suggest the following mini-patch, which joins the
  args by spaces:

  --- ftp.tcl.orig        Thu Jul 15 10:42:53 2004
  +++ ftp.tcl     Thu Jul 15 10:38:18 2004
  @@ -2201,7 +2201,7 @@
           return 0
       }
   
  -    set ftp(Cmd) $args
  +    set ftp(Cmd) [join $args " "]
       set ftp(Quote) {}
   
       set ftp(State) quote


tkt_uuid: 817351ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: comm
priority: 5 Medium
foundin: None
resolution: Fixed
title: error for new comm channels
comment:
  The documentation example shows following usage to
  create a new comm channel:

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

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

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

  This looks like a bug to me.

  Hemang.


tkt_uuid: 3151099fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: mime
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: fail to send when addr is like foobar.@example.com
comment:
  smtp::sendmail fails to send email that
  looks like foobar.@example.com.

  As far as I know having an email address with a dot (".") as the 
  last char before @ should be RFC compliant. 

  I checked email address using this regexp:

  regexp {^[a-z0-9\.\-\_]+\@[a-z0-9]([a-z0-9\-\_]+\.)+[a-z0-9\-\_]+$} $mail

  I'm using tcllib 1.12 (ubuntu 10.10).

  This  the actual error message: 

  Sending to foobar.@example.com: prova.pdf
  error in To: expecting colon to terminate route (found end-of-input)
      while executing
  "error "error in $who: $aprops(error)""
      (procedure "smtp::sendmessage" line 260)
      invoked from within
  "smtp::sendmessage $multiT -servers yoursmtpserver.com -header [list From "me@mydomain.com"]  -header [list To $rcpt]  -header [list Subject "this is the subject..."
      ("foreach" body line 13)
      invoked from within
  "foreach rcpt $recipients {

         set this_image $file
         # create an image and text
         set imageT [mime::initialize -canonical \
             ..."


tkt_uuid: 882154ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: dns
priority: 5 Medium
foundin: None
resolution: Fixed
title: No support for reverse lookups in dns
comment:
  The dns package provides no assistance in doing reverse
  lookups.
  Try
  set tok [dns::resolve d.c.b.a.in-addr.arpa -type PTR]
  lindex [dns::Decode $tok] 3
  and get the rdata for the name.

  This can be auto detected by regexp {[\d.]+} $query


tkt_uuid: 1346295fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: tklib :: plotchart
priority: 2
foundin: None
resolution: Not Applicable Here
title: plotchart files in release have wrong unix permissions
comment:
  In the tar files created for release too many files in
  the plotchart module carry an x (executable) bit. It
  should only be there for executable files, not for
  documentation etc.


tkt_uuid: 3612359fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: lexnormalize ignore leading ../
comment:
  % package require fileutil
  1.14.5
  % fileutil::lexnormalize ../toto
  toto
  % fileutil::lexnormalize ../../toto
  toto
  % 

  Seems wrong to me... I made a correction:
  % fileutil_lexnormalize ../toto
  ../toto
  % fileutil_lexnormalize ../../toto
  ../../toto
  % fileutil_lexnormalize .././.././toto
  ../../toto
  % 


tkt_uuid: 1695120fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools - add diagram support
comment:
  Consider an extension of the markup for the setting of diagrams, see Arjen's diagram package in Tklib for ideas.
  Not general image support, but at least vector graphics would be possible.


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

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


tkt_uuid: 1373937fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: bench
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: bench package does not work as TM
comment:
  The packages as is cannot work as a Tcl Module (i.e.
  wrapped) because of a direct reference to libbench.tcl
  used for [exec]ution. The code has to change, we need
  detection of the filesystem type and copy libbench.tcl
  out of the wrapped archive into a native location.


tkt_uuid: 223325ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
priority: 7 High
resolution: Fixed
title: No config directory
comment:
  Configuration of the package fails because htere is a missing config directory, which used to be in the Scriptics CVS server.


tkt_uuid: 1968777fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Locale problems
comment:
  When validating a man page I'm writing, I kept getting error messages such as:

  /Library/Tcl/bin/dtplite: Doctools Error in macro at line 51, column 4:
  [call [cmd format_bytes]  [arg ...]
  --> (FmtError) Manpage error (deflist), "call  " : unknown error code "deflist" (for locale sv_se).

  (The error turned out to be that [call] cannot be used in a "commands" list, which strikes me as somewhat illogical, but that's a separate matter.) This report is about the fact that I don't get an error message -- only the msgcat code for the message, if I understand it right.

  Msgcat isn't a package I'm familiar with (locales generally seem to be a neverending source of trouble, so I try to stay clear of having code depend on them), but it appears there is something wrong with the way Doctools is using them here, since the message is missing.

  One possible solution, that occurs to me after reading the msgcat manpage, is to declare messages for the root locale (empty string). Possibly the C locale messages should be moved there?

  Otherwise you'd have to do something clever using [mcunknown].


tkt_uuid: 1114498fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: fileutil
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Change 'find' API to allow an error handler
comment:
  Change the API of filutil::find so that a user can set
  an error handler, to be called for all directories
  which are inacessible, or other problems.


tkt_uuid: 1695122fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: doctools - Use pluginmgr to handle backends
comment:
  The backends are currently handled through explicitly created safe interpreters, which are not very good are loading packages or other code.

  Rework the doctools internals to use Tcllib's pluginmgr package to handle checker layer and backends.

  Backends and common supporting code can become proper packages (Tcl Modules even), much easier to manage.

  Note: Message catalogs can get a package interface too. Load package, adds path to look at for the catalogs. alternate: Load package, gets the catalog.


tkt_uuid: 733407ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: Please extend tcllib ::csv for multi-line records
comment:
  From comp.lang.tcl, the following interaction occurred.

  > According to Andreas Kupries  <akupries@shaw.ca>:
  > : The
  > :higher level routines (split2*, read2* from a
  channel) however
  > :unfortunately do assume that one record == one line
  and thus bust it.
  > 
  > Is there a way that these could either be extended,
  or that parallel
  > commands able to deal with multiple lines could be
  developed?

  Maybe. Well, at least parallel commands should be
  possible, but 
  they
  will need some sort of extended parser, i.e. read the
  whole channel,
  then parse the whole string into records and split
  records, without
  regarding to lines. I am currently unsure if the
  low-level split will
  return an error if it sees an incomplete record or if
  it will do a
  best-effort of generating something.


  The point is this - the lower level csv commands , with
  appropriate settings (which may need documenting) can
  read and process multiline records.

  However, the higher level read2matrix, etc. procs
  appear to have some built in limitations with respect
  to newline terminated records.


tkt_uuid: 1377453fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
resolution: Fixed
title: Key bindings problems on Windows
comment:
  On Windows XP the Num-Lock key appears as MOD1, the key
  binding to bring up the popup menu causes the private
  chat not to popup.


tkt_uuid: 1011096fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: counter
priority: 2
foundin: None
resolution: Not Applicable Here
title: secret undocumented switches to counter::get
comment:
  counter::get has several switches that are not
  documented, but sound useful -maxPerMinute,
  -maxPerHour, -maxPerDay

  Those throw an error for non time based counter types:
  (bin) 70 % counter::init foo -hist 20
  (bin) 71 % counter::get foo -maxPerMinute
  can't read "counter(maxPerMinute)": no such element in
  array

  if they get exposed, throw a more helpful error message


tkt_uuid: 1011094fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: counter
priority: 2
foundin: None
resolution: Not Applicable Here
title: Restrictions for counter names not documented
comment:
  The counter names are not arbitrary strings, strings
  containing namespace qualifiers are simply not working:

  (bin) 69 % counter::init ::foo -hist 20
  can't access "counter::T-::foo": parent namespace
  doesn't exist

  Possible solutions:
  a) document this limitation
  b) rework most of the internals, probably slowing down
  counter 

  Just documenting it might be enough.


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

  Module: fumagic
  modules/fumagic/filetypes.test
  - tcllib::testutils 1.0
  - fileutil::magic::rt 1.0
  * fileutil::magic::filetype 1.0
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not created by makeDirectory
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not a directory
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest...
  modules/fumagic/mimetypes.test
  - tcllib::testutils 1.0
  - fileutil::magic::rt 1.0
  * fileutil::magic::mimetype 1.0
  WARNING: removeDirectory removing
  "/local/src/tcllib/fileTypeTest":
    not a directory
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/binaryFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/elfFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/bzipFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/gzipFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/jpegFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/gifFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pngFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/tiffFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/psFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pdfFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/epsFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/igwdFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/textFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/scriptFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/htmlFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/xmlFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/xmlWithDTDFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest/pgpFile...
  WARNING: cleanupTests deleting
  /local/src/tcllib/fileTypeTest...


tkt_uuid: 2414880fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: fix installer.tcl to look for and handle tcllibc
comment:
  If one uses critcl to build the C accelerators for tcllib, make install / installer.tcl doesn't install the tcllibc module.

  aku requested in #tcl that I file a bug on this.


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

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

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

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

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


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

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


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


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

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

  There is no MX preference in first line answer



  j.lewandowski@dominet.pl


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


tkt_uuid: 1695145fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: doctools
priority: 2
foundin: None
resolution: Not Applicable Here
title: doctools - General tree representation as backend API
comment:
  This is 'way out there'-RFE.

  Currently the generic layer of the low-level doctools engine uses textutil::expander to parse the input in general, a checker layer to check that the commands are in the correct order, and then calls the appropriate formatting function in the backend. Sort of like a SAX API for XML processing. The backend gets various events and has to make sense of them, although it can be sure that it will not get events in a bad order.

  Consider to rework the generic layer to create a tree structure representing the document. This tree is then given to the backend for conversion into the output format. Instead of each backend having to pull out the document structure out of the series of events this is done in the generic layer, and the backend's responsibility shrinks to only doing the actual conversion into output.

  There is a drawback. There are backends which are much better served by the event stream, because they do not care about the structure, or at least not very much. Examples of these are:

      Existing:    null, list
      Proposed:    wordlist, semantic

  So, best might be to try and accomodate both, i.e. load the backend, query it for its mode of operation, event stream or document tree, then setup the remainder of the processing pipe.

  Note: This tree-based API is very similar to the general API used in PAGE, i.e. backends based on it could be used by this general text processing tool, and the processing pipe for creating the tree might make a suitable reader plugin for PAGE too.


tkt_uuid: 837818ffffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: Quoting module
comment:
  It'd be very nice if we could have a module to help
  with those trickier quoting tasks that newbies get
  slightly wrong.  Here's some example code adapted from
  a discussion on the chat...

  proc makeMap {} {
     set chars {{[\"$#; ]}}
     append chars \t
     set map [list \n \\n]
     foreach c [split $chars {}] {lappend map $c \\$c}
     return $map
  }

  variable addBackslashMap [makeMap]
  proc backslashQuote {string} {
     variable addBackslashMap
     string map $addBackslashMap $string
  }
  proc braceQuote {string} {
     list $string
  }

  There's probably other things that could be added too.


tkt_uuid: 858218ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: ftp
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: errors thrown with no explanation
comment:
  This new code:


              # get return code, check for multi-line text
              
              if {[regexp -- "^-?(^[0-9]+)( |-)?(.*)$"
  $bufline all rc multi_line msgtext]} {
  set errmsg "C: Internal Error @ line 255.
  Regex pattern not matching the input "$bufline""
  if {$VERBOSE} {
      DisplayMsg $s $errmsg control
  }
      } else {
  set buffer $bufline

  # multi-line format detected ("-"), get all the lines

  is throwing errors on both ftp servers I commonly use
  (ftp.santafe.edu and ftp.ucsd.edu).  Can the error
  message be made more information ('regex pattern didn't
  match' isn't very helpful -- what is it expecting? how
  did the observed string differ from that?).


tkt_uuid: 1076403fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: html
priority: 5 Medium
foundin: None
resolution: Not Applicable Here
title: html: suggestion for a convenience "tag wrapping" proc
comment:
  In the current version of html, wrapping text with html 
  tags is a bit cumbersome in a lot of cases:

  Example:

  puts "[::html::openTag p]"
  puts "This is my paragraph"
  puts "[::html::closeTag]"

  As a convenience for wrapping text or other data inside 
  of tags, I would like to suggest the addition of a 
  general ::html::wrapTag command that would work as 
  follows:

  puts [::hml::wrapTag p "This is my paragraph"]

  which would output the following:

  <p>This is my paragraph</p>

  puts [::html::wrapTag p "foo=bar" "This is my 
  paragraph"]

  would output:

  <p foo=bar>This is my paragraph</p>

  and so on.

  There are some specialized commands for wrapping 
  specific tags around data, such as ::html::cell 
  or ::html:row, but the above is a suggestion for a more 
  general command that would wrap data in with a 
  specified arbitrary tag.


