# ticket

tkt_uuid: 1566475fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: pop3
priority: 2
foundin: None
title: pop3-6.1 fails sometimes
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
comment:
  Only on Solaris system do I see this.

  And only when running the whole tcllib
  test suite.  Testing the pop3 module alone
  doesn't cause the failure:

  ==== pop3-6.1 uidl FAILED
  ==== Contents of test case:

      dialog::dialog_set uidlFailed
      set psock [pop3::open localhost ak smash
  [dialog::listener]]
      catch {pop3::uidl $psock} msg
      pop3::close $psock
      dialog::waitdone
      set msg

  ---- Result was:
  POP3 UIDL ERROR: 
  ---- Result should have been (exact matching):
  POP3 UIDL ERROR:  unknown command 'UIDL'
  ==== pop3-6.1 FAILED


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

  This patch addresses this issue.


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

  * mime 1.4.1
  test name 'mime-7.1' re-used; prior use in
  /local/src/tcllib/modules/mime/mime.test
  env array elements created:     TZ


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

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

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

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

  Hemang.


tkt_uuid: 2986744fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: sha1
priority: 5 Medium
foundin: None
title: issue with tcllib sha256 on 64bit systems
cmimetype: text/plain
submitter: zdia
assignee: andreas_kupries
closer: sf-robot
closedate: 2010-07-22T02:20:09
comment:
  Having compiled Tcltk on a 64bit system I could not open databases which were encrypted with the sha256 algorithm. Before I used only 32bit versions of ActiveState binaries. Debugging the sha256.tcl file I found the reason:

  In line 303-308 there was one expression which was not ANDed by 0xffffffff. The patched line looks now like:

  for {set t 16} {$t < 64} {incr t} {
              lappend W [expr {([sigma1 [lindex $W [incr t2]]] \
                                   + [lindex $W [incr t7]] \
                                   + [sigma0 [lindex $W [incr t15]]] \
                                   + [lindex $W [incr t16]]) & 0xffffffff}]
          }

  Now everything works fine. 

  Zbigniew Diaczyszyn


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

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

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

  Thank you,

  Vlad.


tkt_uuid: 2828086fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Add <<TreeSelect>> event for keyboard navigation
cmimetype: text/plain
submitter: wordtech
assignee: hobbs
closer: oehhar
closedate: 2009-08-04T16:35:34
comment:
  The attached patch updates tree.tcl to support the <<TreeSelect>> virtual event for KeyPress-Up and KeyPress-Down. Many users use the keyboard to navigate tree widgets and this brings the BWidget tree in line with current UI best practices. 


tkt_uuid: 457498ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: log
priority: 5 Medium
foundin: None
title: Extended log module
cmimetype: text/plain
submitter: andreas_kupries
assignee: davidw
closer: davidw
closedate: 2003-01-29T04:29:13
comment:
  The current 'log' module only consider the criticality
  of a message when deciding wether to log the message
  and where.

  The next generation should allow to specify a message
  category as well. In contrast to criticality categories
  are highly application dependent. This means that we
  will need interfaces to define, configure and
  introspect categories. Criticalities required only a
  configuration interface.

  An example application for the log module could be
  one listening on one or more sockets and displaying
  the incoming messages in one or more text widgets.
  A generalized message console.


tkt_uuid: 3606620fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math
priority: 5 Medium
foundin: None
title: test strangeness - math-12.1 !error reading
cmimetype: text/plain
submitter: jlec
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-03-12T04:39:43
comment:
  Running test on math module I get following error:

  ++++ math-11.1 PASSED
  ---- math-12.1 start
  error reading package index file ./lib/pkgIndex.tcl: permission denied
  error reading package index file ./pkgIndex.tcl: permission denied
  error reading package index file $p(:573:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:572:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:571:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:570:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:569:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:568:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:567:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:566:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:565:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:564:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:563:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:562:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:561:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:560:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:559:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:558:)/pkgIndex.tcl: not allowed to invoke subcommand exists of file
  error reading package index file $p(:556:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:555:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:554:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:553:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:552:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:550:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:549:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:548:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:547:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:546:)/pkgIndex.tcl: no such file or directory
  error reading package index file $p(:545:)/pkgIndex.tcl: no such file or directory


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


tkt_uuid: 1155390fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: asteroids
priority: 5 Medium
foundin: None
title: app:asteroids: missing music reset
cmimetype: text/plain
submitter: dkf
assignee: jgodfrey
closer: jgodfrey
closedate: 2005-03-03T00:55:26
comment:
  The "music" in the game asteroids does not reset to its
  initial speed when you start a new game. After playing
  a fair number of games, it's going at a silly speed
  even on the initial level...


tkt_uuid: 520269ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 5 Medium
foundin: None
title: .man format files need comments
cmimetype: text/plain
submitter: patthoyts
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-02-28T07:03:51
comment:
  The .man files  we are producing for processing by the
  doctools package currently seem to have so method for
  placing comments in the file. Placing '#' lines results
  in the tcl-style comment appeating in the output.
  Needless to say I want to add an emacs local variable
  block and the usual license header to the file. Plus
  comments are handy for breaking up the file in to sections.

  So: lines beginning with a # are comments to be ignored
  by the formatters??


tkt_uuid: 1854983fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: assign-4.4 test case failure
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:36:01
comment:
  Using the latest cvs head, and tcl cvs head,

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

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

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


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

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

         .8svx     Amiga 8SVX musical instrument
  description format.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         vorbis    See .ogg format.

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

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


tkt_uuid: 1608793fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tklib: khim
priority: 5 Medium
foundin: None
title: Czech message file for tklib's KHIM
cmimetype: text/plain
submitter: nobody
assignee: kennykb
closer: kennykb
closedate: 2007-01-08T20:56:25
comment:
  Hi,

  I upload cs.msg.gz

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

  Michal <wohnivec@dix.cz>


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


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

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

  Stack trace. 

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


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

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


tkt_uuid: 2159700fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: tklib :: tablelist
priority: 5 Medium
foundin: None
title: Bug in tablelist when interacting with gridplus
cmimetype: text/plain
submitter: hgiese
assignee: nemethi
closer: nemethi
closedate: 2008-10-31T20:05:03
comment:
  Hello,
  I noticed an intriguing bug when gridplus and tablelist interact. See the following suite of commands.

  D:\tmp>tclsh85
  % package require gridplus
  2.3
  % package present tablelist_tile
  4.9.2
  % pack [tablelist::tablelist .tbl1 -columns {0 col1 0 col2}]
  % source example2.tcl
  invalid command name ".__helpLabel"
  % pack [tablelist::tablelist .tbl2 -columns {0 col1 0 col2}]
  invalid command name ".__helpLabel"
  % info patchlevel
  8.5.3

  - After loading gridplus (which also loads tablelist_tile) I can create a table. 
  - Trying to [source example2.tcl] (an example from the gridplus distro which also wants to create a table) leads to an error. This error occurs inside of tablelist's code.
  - Now a command like the first one fails, too.

  Conclusion: 
  - gridplus interacts with tablelist in a way which provokes an error.
  - Once this error occurred it seems to be "persistent".

  One more detail: This depends on the version of tablelist: Loading example2.tcl from the gridplus starkit works - but this starkit contains tablelist 4.9.1.
  Best regards
  Helmut Giese


tkt_uuid: 1272730fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: asn
priority: 5 Medium
foundin: None
title: asn - failed tests with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: dgp
closer: dgp
closedate: 2005-08-26T20:09:23
comment:
  With HEAD (Tcl 8.5a4):

    tclsh8.5 sak.tcl test asn

  shows failures on Solaris:

  ==== asn-2.19 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  8388608 02050000800000
  ---- Result should have been (exact matching):
  8388608 020400800000
  ==== asn-2.19 FAILED


  ==== asn-4.19 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  8388608 0A050000800000
  ---- Result should have been (exact matching):
  8388608 0A0400800000
  ==== asn-4.19 FAILED


  ==== asn-2.20 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  8388609 02050000800001
  ---- Result should have been (exact matching):
  8388609 020400800001
  ==== asn-2.20 FAILED


  ==== asn-4.20 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  8388609 0A050000800001
  ---- Result should have been (exact matching):
  8388609 0A0400800001
  ==== asn-4.20 FAILED


  ==== asn-2.21 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  16777216 02050001000000
  ---- Result should have been (exact matching):
  16777216 020401000000
  ==== asn-2.21 FAILED


  ==== asn-4.21 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  16777216 0A050001000000
  ---- Result should have been (exact matching):
  16777216 0A0401000000
  ==== asn-4.21 FAILED


  ==== asn-2.24 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  -8388609 0205FFFF7FFFFF
  ---- Result should have been (exact matching):
  -8388609 0204FF7FFFFF
  ==== asn-2.24 FAILED


  ==== asn-4.24 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  -8388609 0A05FFFF7FFFFF
  ---- Result should have been (exact matching):
  -8388609 0A04FF7FFFFF
  ==== asn-4.24 FAILED


  ==== asn-2.26 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  -2147483648 0205FF80000000
  ---- Result should have been (exact matching):
  -2147483648 020480000000
  ==== asn-2.26 FAILED


  ==== asn-4.26 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  -2147483648 0A05FF80000000
  ---- Result should have been (exact matching):
  -2147483648 0A0480000000
  ==== asn-4.26 FAILED


  ==== asn-2.27 integer FAILED
  ==== Contents of test case:

      binary scan [asn::asnInteger $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  2147483647 0205007FFFFFFF
  ---- Result should have been (exact matching):
  2147483647 02047FFFFFFF
  ==== asn-2.27 FAILED


  ==== asn-4.27 enum FAILED
  ==== Contents of test case:

      binary scan [asn::asnEnumeration $i] H* result
      list $i [string toupper $result]
      
  ---- Result was:
  2147483647 0A05007FFFFFFF
  ---- Result should have been (exact matching):
  2147483647 0A047FFFFFFF
  ==== asn-4.27 FAILED


tkt_uuid: 772489ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: doctools
priority: 7 High
foundin: None
title: doctools: latex, add document internal cross-referencing
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  In LaTex:
  - \label to define a location by name, and
  - \ref to create reference to a named location.


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

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

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

  the sent sequence is just "."

  If I change line 1254 in smtp.tcl from:

  set result [talk $token $secs .]

  to 

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

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

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


tkt_uuid: 2819151fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: Link to SF webdav file upload form for releases
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-07-10T16:33:55
comment:
  The SF webdav file upload form for release archives is at.
  https://frs.sourceforge.net/webupload

  Save the info in the developer/release mgr docs.


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

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

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


tkt_uuid: 453519ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: None
priority: 7 High
foundin: None
title: 10.5 Needs Tk 8.4 (TIP 44) update
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: dgp
closedate: 2003-04-03T23:04:50
comment:
  Question 10.5 refers to redefining the commands
  [tk{Text|Entry}Insert] and accessing the 
  variable tkPriv to implement an overwrite
  mode for the text or entry widgets.

  These instructions are out of date now that
  private internal commands of Tk have been
  moved into the ::tk namespace for Tk 8.4
  (see TIP 44).


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


tkt_uuid: 547245ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 8
foundin: None
title: Tree widget -selectcommand
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-23T20:04:06
comment:
  This option is not documented.

  Usage of this option (see method selection) is 
  incomplete. IOW, we currently cannot use it to track 
  all changes to the selection.

  A patch will be supplied ...


tkt_uuid: 2807256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Combobox sets X-selection
cmimetype: text/plain
submitter: eriklns
assignee: oehhar
closer: oehhar
closedate: 2009-07-07T17:32:01
comment:
  When selecting an item in a Combobox, the X-selection is also set. Personally, I find this "feature" annoying. (I'm not sure about standards compliance, though.)

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

  The attached patch against BWidget 1.8.0 turns this behaviour off.


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


  Code snippet ...
  ...
  ...

  #! /usr/bin/wish

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

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

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

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

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

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

  pack $sw_t -fill both -expand yes

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

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

  pack $mainframe -fill both -expand yes


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

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

  The relevant code snippet is:

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

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


tkt_uuid: 2526629fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: spf
priority: 5 Medium
foundin: None
title: SPF package is apparently dysfunctional
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
comment:
  SPF package (version 1.1.1) does not work.

  % package require spf
  1.1.1
  % spf::spf 1.2.3.4 example.com bob@example.com
  none
  % spf::SPF example.com
  =spf1 ip4:127.1.28.7 -all
  % package present dns
  1.3.3



  Applying the following diff to "spf.tcl" results in correct operations:
  --- spf.tcl     2009-01-21 13:09:37.450402473 -0500
  +++ spf.tcl.fixed       2009-01-21 12:57:04.043184940 -0500
  @@ -579,7 +579,7 @@
               set ndx [lsearch $res rdata]
               incr ndx
               if {$ndx != 0} {
  -                append txt [string range [lindex $res $ndx] 1 end]
  +                append txt [lindex $res $ndx]
               }
           }
       }


  Correct operation output:
  % ::spf::spf 1.2.3.4 example.com bob@example.com
  -
  % spf::SPF example.com
  v=spf1 ip4:127.1.28.7 -all


tkt_uuid: 1416776fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: ncgi: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T08:34:09
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: 565051ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: csv::split parsing bug
cmimetype: text/plain
submitter: todolson
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-06-24T23:17:38
comment:
  csv::split handles a quoted, null field incorrectly if
  the field is neither the first nor the last field in a
  line/record:

  % info tclversion
  8.3
  % info patch
  8.3.3
  % package require csv
  0.2
  % ::csv::split {1 2 "" ""} { }
  1 2 {"} {}
  % ::csv::split {"" ""} { }
  {} {}
  % ::csv::split {"" "" ""} { }
  {} {"} {}

  A change to the character map seems to fix the problem:

  % proc ::csv::split {line {sepChar ,}} {
      regsub -all -- {(^\"|\"$)} $line \0 line
      set line [string map [list \
      $sepChar\"\"\" $sepChar\0\" \
      \"\"\"$sepChar \"\0$sepChar \
      \"\"$sepChar $sepChar \
      \"\"           \" \
      \"             \0 \
      ] $line]
      set end 0
      while {[regexp -indices -start $end --
  {(\0)[^\0]*(\0)} $line \
      -> start end]} {
  set start [lindex $start 0]
  set end   [lindex $end 0]
  set range [string range $line $start $end]
  if {[string first $sepChar $range] >= 0} {
      set line [string replace $line $start $end \
      [string map [list $sepChar \1] $range]]
  }
  incr end
      }
      set line [string map [list $sepChar \0 \1 $sepChar
  \0 {} ] $line]
      return [::split $line \0]
  }
  % ::csv::split {"" "" "" "" "" ""} { }
  {} {} {} {} {} {}


tkt_uuid: 2762361fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox Backround error "ambiguous state"
cmimetype: text/plain
submitter: oehhar
assignee: damonc
closer: oehhar
closedate: 2009-06-10T08:07:52
comment:
  A backround error was invoked using a BWidget combo box:

  > ambiguous state "": must be active, disabled, or normal
  >     (processing "-state" option)
  >     invoked from within
  > "$path configure $realopt $value"
  >     (procedure "Widget::_test_tkresource" line 7)
  >     invoked from within
  > "$_optiontype($type) $option $value [lindex $optdesc 3]"
  >     (procedure "Widget::configure" line 31)
  >     invoked from within
  > "Widget::configure $path $args"
  >     (procedure "configure" line 2)
  >     invoked from within
  > "configure $path -state $_grab(oldstate)"
  >     (procedure "ArrowButton::_leave" line 6)
  >     invoked from within
  > "ArrowButton::_leave .wizard.layoutFrame.advanced.clientArea.c1.a.c"
  >     (command bound to event)

  This indicates, that the leave event may be invoked without a former enter event.

  To fortify the widget against this situation, the following two patches may be used:

  arrow.tcl Line 73:
  Old contents:
      array set _grab {current "" pressed "" oldstate "" oldrelief ""}
  New contents:
      array set _grab {current "" pressed "" oldstate "normal" oldrelief ""}

  Alternate patch:
  (Line 436)
  proc ArrowButton::_leave { path } {
  ...
  configure $path -state $_grab(oldstate)
  ...
  The configure line may be protected to empty string contents by:
  if {0 == [string length $_grab(oldstate)]} {
      configure $path -state $_grab(oldstate)
  }

  Version information:
  BWidget 1.8.0
  TCL8.4.16
  Windows XP (not shure)


tkt_uuid: 2825354fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Tree node -helpcmd option
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-23T08:01:08
comment:
  This patch ensures that the DynamicHelp -helpcmd option can be used in a Tree. Example:

  pack [Tree .t -padx 2]
  proc helpfor {n} {return "Help for $n"}
  .t insert end root node1 -text "Node 1" -helpcmd {helpfor node1}
  .t insert end root node2 -text "Node 2" -helpcmd {helpfor node2}
  .t insert end root node3 -text "Node 3" -helpcmd {helpfor node3}

  The patch also contains a slight visual adjustment of initial node of the tree. This is in fact a reversal of a patch which was introduced in version 1.49. I did not understand why this was changed back then. It made the tree appear more like a "fork" than a tree, which is also apparent in the example above.


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

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

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

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


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


tkt_uuid: 1242629fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: smtp
priority: 7 High
foundin: None
title: Fix of CRAM-MD5
cmimetype: text/plain
submitter: usus
assignee: patthoyts
closer: patthoyts
closedate: 2005-09-05T10:54:34
comment:
  Hi Marshall,

  today I tried to use the smtp modul to send mail
  to an authenticating MTA (qmail) using CRAM-MD5.
  That didn't work.
  Looking at the logs, I found the response to the
  challenge 4 char too short. The base64::encode
  proc folds this long response into 2 lines (which
  is coorect), but qmail is not able to digest a
  2 line response. Maybe other MTA's have the same
  problem. A simple removal of the newline char
  fixed the problem (see patch).
  I'm not sure if it's a bug of tcllib or if qmail
  is to blame. Regardless, now it works. Would you
  (or someone else) please check it against other
  MTAs?

  Best regards

  Ulrich


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


tkt_uuid: 2250870fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: fileutil
priority: 5 Medium
foundin: None
title: improvements for fileutil::traverse
cmimetype: text/plain
submitter: glehner
assignee: andreas_kupries
comment:
  This patch improves the fileutil::traverse package in
  several ways.  The changes are documented in the
  man page traverse.man and in the Changelog.  The version
  number of the traverse package has been bumped to 0.5,
  which is also reflected in pkgIndex.

  IMO the -notroot True functionality should be the default
  however the patch is backwards compatible to version 0.4.

  There are no additional test in traverse.test,  I will
  be glad to provide some for the new functionality, if
  the patch is deemed worthy for inclusion.

  Motivation for the patch is to make it suitable for a
  archival/backup system I'm writing.


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

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

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

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

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

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


tkt_uuid: 2426988fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: linking to array variable problem
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  version: 2.0.1 . 
  Platform windows. 
  ActiveTcl distribution .
  linking to array variable issue.

   Any delete of row of matrix is not reflected in the linked array variable.

  I am using this function in the context of updating Tktable. So it is a big problem

  Regards
  valli
  valli@ezorder.in


tkt_uuid: 1774990fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 9 Immediate
foundin: None
title: vwait dies when given varname with spaces
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-15T21:33:43
comment:
  When comm is loaded it overrides vwait, but has a bug in the implementation that manifests itself when the vwait variable has spaces in it. I get the error:

  wrong # args: should be "::comm::VwaitOrig name"
      while executing
  "vwait [::itcl::scope flag]"
  ...
      

  This is due to the following line of code in vwait.tcl:

  set code [catch {uplevel 1 ::comm::VwaitOrig $varname} res]

  I think that should be (note the use of list):

  set code [catch {uplevel 1 [list ::comm::VwaitOrig $varname]} res]

  As an aside, you may be saying "why would anyone use a variable name with spaces?". As you can see in the above error message, I'm vwait'ing on an itcl public variable, which resolves to something like "@itcl ::foo ::Foo::flag". When it gets eval'd by the upvar those spaces naturally cause havoc.


tkt_uuid: 2895994fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Not Applicable Here
subsystem: tklib :: tooltip
priority: 8
severity: Minor
foundin: None
title: extend tooltip to the treeview widget
cmimetype: text/plain
submitter: keithv
assignee: hobbs
closer: aku
closedate: 2456444.39445008
comment:
  Using the same logic as listbox, extend tklib tooltip to work with ttk::treeview.

  Don't know how to update the doc, but here's some demo code
  pack [::ttk::treeview .tree -height 15 -show tree]
  foreach txt {first second third} {
      set id [.tree insert {} end -text "$txt item" -open 1]
      ::tooltip::tooltip .tree -item $id "tooltip for $txt item"
      for {set i 0} {$i < 3} {incr i} {
          set child [.tree insert $id end -text "child $i"]
          ::tooltip::tooltip .tree -item $child "tooltip for child $i"
      }
  }


tkt_uuid: 1165525fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Listbox bug, a non-stop loop cause the shaking of the widge
cmimetype: text/plain
submitter: pharmatcl
assignee: damonc
closer: afaupell
closedate: 2005-03-18T18:00:17
comment:
  Following is a test code, run it and your will see a
  ScrolledWindow shaking. Before you run it, please make
  sure that "CP: 555  * AAA-I am shaking wildly 10mm dia:
   59.5 mm" is in a single line. The length of the list
  item name really matters.

  ######### test code starts ######################
  set bwidget_path *YOUR BWIDGET PATH HERE*
  lappend auto_path $bwidget_path
  package require BWidget
                                                        
                           
  toplevel  .shaking
                                                        
                           
  set f [frame .shaking.butF]
                                                        
                           
  set sw [ScrolledWindow $f.sw -auto both\
              -relief sunken -borderwidth 2]
                                                        
                           
  set marksList [ListBox $f.lb -relief flat -borderwidth 0 \
                  -padx 0 -height 8 -width 40 -bg white]
                                                        
                           
  $sw setwidget $marksList
                                                        
                           
  grid $sw -row 0 -column 0 -columnspan 6 -pady 0 -padx 2m
                                                        
                           
  $marksList insert end 1 -text "1"
  $marksList insert end 2 -text "2"
  $marksList insert end 3 -text "3"
  $marksList insert end 4 -text "CP: 555  * AAA-I am
  shaking wildly 10mm dia:  59.5 mm"
  # make sure that "CP: 555  * AAA-I am shaking wildly
  10mm dia:  59.5 mm" is a single line
  $marksList insert end 5 -text "5"
  $marksList insert end 6 -text "6"
  $marksList insert end 7 -text "7"
  $marksList insert end 8 -text "8"
                                                        
                           
  pack $f       
  #### test code ends #################################

  #### test environment ################################
  If you run it by wish8.3, no problme at all, 
  if you run it by wish8.4, you got  a shaking widget.

  My testing environment:
        1. Redhat Linux  2.4.21-9.ELsmp
        2. BWidget-1.7.0, tcl 8.4, and tk 8.4
        3. Default font

  #### Code analysis ##################################
  Bwidget induces an endless loop through a "bind" command.
  (In Bwidget-1.7.0),
  In line 105 of listbox.tcl:
    bind ListBox <Configure> [list ListBox::_resize  %W]

  In proc ListBox::_resize, line 1139 of listbox.tcl:
    it call _update_scrollregion :
   } else {
          if {[Widget::cget $path -selectfill]} {
              _update_select_fill $path
          }

          _update_scrollregion $path
      }

  in proc ListBox::_update_scrollregion, line 918 of
  listbox.tcl
    it call $path.c configure -scrollregion [list 0 0 $w $h]

  This triggered bind ListBox <Configure> event and call
  _resize again, forming a loop.

  If you put in "puts " command in _resize and
  _update_scrollregion
  you will see _resize and _update_scrollregion called
  alternatively
   Reason:
  Bwidget induces a endless loop by "bind" command.
  (In Bwidget-1.7.0),
  In line 105:
    bind ListBox <Configure> [list ListBox::_resize  %W]

  In proc ListBox::_resize, line 1139 of listbox.tcl:
    it call _update_scrollregion 

  in proc ListBox::_update_scrollregion, line 918 of
  listbox.tcl
    it call $path.c configure -scrollregion [list 0 0 $w $h]

  This triggered bind ListBox <Configure> event and call
  _resize again, forming a loop.


tkt_uuid: 223325ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
priority: 7 High
title: No config directory
cmimetype: text/plain
submitter: nobody
assignee: ericm
closer: ericm
closedate: 2000-11-29T22:16:25
comment:
  Configuration of the package fails because htere is a missing config directory, which used to be in the Scriptics CVS server.


tkt_uuid: 3501392fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: New Module: socks5
cmimetype: text/plain
submitter: dongola7
assignee: andreas_kupries
comment:
  Patch to add a new module for establishing connections via SOCKS 5 proxies.  The patch was generated against the 1.14 release tarball.


tkt_uuid: 3316478fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: simulation::random
priority: 7 High
foundin: None
title: prng_rectangle is overwritten by prng_block implementation
cmimetype: text/plain
submitter: andreas_kupries
assignee: arjenmarkus
closer: andreas_kupries
closedate: 2013-01-09T00:20:08
comment:
  he implementation of prng_Block is mis-named as prng_Rectangle, overwriting the prng_Rectangle procedure coming just before it.
  Making both Rectangle and Block unusable.


tkt_uuid: 1968777fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: doctools
priority: 5 Medium
foundin: None
title: Locale problems
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
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: 486572ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: testsuite failure with cvs head version
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-12-06T21:54:19
comment:
  platform: sparc solaris 2.6 sun c compiler tcl 8.4a4
  and latest tcllib from cvs head of tue, nov 28, 2001

  after building and installing the latest tcl and tcllib
  I get the following fileutil errors when running the
  tcllib test suite:

  Module: fileutil
  modules/fileutil/fileutil.test
  fileutil 1.2

  ==== find-2.2 find by pattern FAILED
  ==== Contents of test case:

      lsort [::fileutil::findByPattern $dir -glob {fil*}]

  ---- Result was:
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/find1/find2/
  file2 /vol/tclsrcsol/tcl84/tcllib/modules/fileinput
  /vol/tclsrcsol/tcl84/tcllib/
  modules/fileutil
  /vol/tclsrcsol/tcl84/tcllib/modules/fileutil/fileutil.n
  /vol/tc
  lsrcsol/tcl84/tcllib/modules/fileutil/fileutil.tcl
  /vol/tclsrcsol/tcl84/tcllib/m
  odules/fileutil/fileutil.test
  ---- Result should have been (exact matching):
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/find1/find2/
  file2
  ==== find-2.2 FAILED

  ==== find-2.3 find by pattern FAILED
  ==== Contents of test case:

      lsort [::fileutil::findByPattern $dir -regexp
  {.*1$}]

  ---- Result was:
  /vol/tclsrcsol/tcl84/tcllib/examples/oreilly-oscon2001
  /vol/tclsrcsol/tcl84/tcll
  ib/find1 /vol/tclsrcsol/tcl84/tcllib/find1/file1
  /vol/tclsrcsol/tcl84/tcllib/mod
  ules/sha1
  ---- Result should have been (exact matching):
  /vol/tclsrcsol/tcl84/tcllib/find1
  /vol/tclsrcsol/tcl84/tcllib/find1/file1
  ==== find-2.3 FAILED


tkt_uuid: 1512671fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Improved delete for StatusBar
cmimetype: text/plain
submitter: mbroeken
assignee: hobbs
closer: hobbs
closedate: 2006-06-30T19:08:46
comment:
  When deleting the first item of a StatusBar an obsolete
  seperator is left at the front. This patch deletes this
  obsolete seperator when deleting the first item of a
  StatusBar. I've attached the patch as well as an
  example script to show the improved delete.


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

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


tkt_uuid: 1800338fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: doctools
priority: 5 Medium
foundin: None
title: dtplite can't find it's matching tcllib if --prefix used
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  Installing tcllib from CVS head with a prefix:

    ./configure --prefix=/home/me/local/tclllib-HEAD
    make install

    $ ~/local/tcllib-HEAD/bin/dtplite


  If no other tcllib is installed then dtplite errors out -- it can't find a tcllib (this is the case e.g. on sourceforge)

  If there's a tcllib installed on the system then dtplite prefers that, making testing of new version tricky.


  Can the utility commands that ship with tcllib always link against the version of tcllib they ship with?


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

  complains about overwriting an existing file.


tkt_uuid: 1917035fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: inifile
priority: 6
foundin: None
title: inifile - Global procedure 'commentchar' ok?
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-11T00:54:32
comment:
  The package inifile defines a global procedure called 'commentchar' (line 175ff).

  I am wondering if that should be '::ini::commentchar'.
  The documentation certainly uses the latter.
  In this mismatch I believe the documentation is right.


tkt_uuid: 1796255fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Emoticons insertion
cmimetype: text/plain
submitter: wiede
assignee: patthoyts
closer: patthoyts
closedate: 2007-09-18T00:33:13
comment:
  on linux x68 when inserting emoticons, for some there are inserted three instead of one:
  cry:^(   :-(   :(

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


tkt_uuid: 720348ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: patch to support drop in cgraph library
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-14T07:26:59
comment:
  Hi,

  adding this at the top of graph.tcl

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

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

  I pushed cgraph to version 0.6.

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

  Michael


tkt_uuid: 724822ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: struct :: graph
priority: 7 High
foundin: None
title: graph - simply increased functionality in walk
cmimetype: text/plain
submitter: coldstore
assignee: andreas_kupries
comment:
  per http://mini.net/tcl/8787 there is some value in
  being able to override walk's behavior, and allow
  multiple visits of a node - particularly in the case
  that the graph is a DAG (where no cycles can exist)

  Moving the line graph.tcl 1884:

     set visited($node) .

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

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


tkt_uuid: 1272721fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: units
priority: 5 Medium
foundin: None
title: failed tests
cmimetype: text/plain
submitter: dgp
assignee: techentin
closer: techentin
closedate: 2005-08-25T19:24:45
comment:
  As part of a complete

    tclsh sak.tcl test

  run:

  ==== units-9.1 non-SI calorie FAILED
  ==== Contents of test case:

      ::units::convert 1.0calorie joule

  ---- Result was:
  4.1867999999999999
  ---- Result should have been (exact matching):
  4.1868
  ==== units-9.1 FAILED


  ==== units-10.1 leading zero is not octal FAILED
  ==== Contents of test case:

      ::units::convert 09mm meter

  ---- Result was:
  0.0090000000000000011
  ---- Result should have been (exact matching):
  0.009
  ==== units-10.1 FAILED

  No failures from

    tclsh sak.tcl test units

  so there's a tcl_precision leak
  between test files that should be
  fixed, and the test should be
  robust against it anyway.


tkt_uuid: 1492630fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: Installer
priority: 5 Medium
foundin: None
title: Installer not creating tcllibc + related uuid issue
cmimetype: text/plain
submitter: juliannoble
assignee: andreas_kupries
comment:
  installer.tcl (on windows at least) doesn't create the 
  tcllibc module - nor does INSTALL.txt mention how to 
  build it.

  I found out about 'sak.tcl critcl' through a c.l.t 
  article where the original poster was complaining 
  about slow pure tcl implementations.

  A missing tcllibc module means that the uuid package 
  at least, will fallback to Tcl only mode even though 
  critcl is installed.

  for uuid without tcllibc - the faster version can be 
  accessed by first package requiring critcl..
  then directly calling the c proc.

  e.g on a machine without tcllibc installed.

  %package require critcl
  0.35
  %package require uuid
  1.0.1
  %uuid::tostring [uuid::generate_c]
  <some guid>
  %time {uuid::tostring [uuid::generate_c]} 100
  150.0 microseconds per iteration
  %time {uuid::uuid generate}
  51560 microseconds per iteration

  As you can see there's a huge performance difference 
  (due to exec call to ipconfig I guess) so it seems 
  that the fast critcl version is usable without 
  tcllibc - yet the default in this case is to still use 
  the pure Tcl version.

  Note that if critcl is 'package required' after uuid 
  then you just get:
  invalid command name "uuid::generate_c"

  I guess I'm suggesting that either uuid shouldn't 
  depend on tcllibc being present - just critcl... 
  and/or that tcllibc should be built by the tcllib 
  installer and documented, or at least just explained 
  in INSTALL.txt.


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

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

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


tkt_uuid: 2783215fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: ldap
priority: 5 Medium
foundin: None
title: search result is incorrect with multibyte characters
cmimetype: text/plain
submitter: zhangweiwu
assignee: mic42
closer: zhangweiwu
closedate: 2009-04-30T03:38:23
comment:
  This problem is best explained with the screenshot I attached.

  In my case all Chinese characters are broken, I think other multibyte UTF-8 string data should also be broken. Easily reproducible, we have this problem on Windows as well as Linux (where the screenshot was taken). The screenshot was taken from a system with UTF-8 locale setting.


tkt_uuid: 443619ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
foundin: None
title: pop3 doesn't handle empty mailbox!
cmimetype: text/plain
submitter: deery
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-02T16:24:34
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: 900041ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse does not supprt empty elements
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-09-29T18:19:18
comment:
  htmlparse 1.3 (as well as 2.0) does not support
  empty elements of the form:

  <e ... />

  I think this is supported in the HTML standard.

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

  The first case results in havoc for 2Tree.

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

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

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

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

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

  Any comments?

  Tony Grimm
  grimmt@agilent.com


tkt_uuid: 1011102fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: counter
priority: 9 Immediate
foundin: None
title: counter - dependent on ncgi & html, not in code, nor docs
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
comment:
  The HTML generation facilities of the counter package
  depend on the html and ncgi packages, but do not
  require them or check if they are present.

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


tkt_uuid: 1082061fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: ldap
priority: 5 Medium
foundin: None
title: ldap::search has no way to specify scope
cmimetype: text/plain
submitter: dossy
assignee: loewerj
closer: mic42
closedate: 2006-06-21T09:34:13
comment:
  ldap 1.2 (Tcllib 1.7)

  ldap::search has no way of specifying scope.  The
  "default" scope is subtree.  This makes searching from
  the base DN not possible, see:

  % package require ldap
  1.2
  % set l [ldap::connect localhost]
  ::ldap::ldapsock5
  % ldap::search $l {} (objectClass=*) namingContexts
  LDAP error noSuchObject:

  I propose adding an optional "args" option arg to the
  end of the call signature for [ldap::search], like so:

  % package require ldap
  1.3
  % set l [ldap::connect localhost]
  ::ldap::ldapsock5
  % ldap::search $l {} (objectClass=*) namingContexts
  -scope base
  {{} {namingContexts dc=panoptic,dc=com}}

  Attached is a patch to provide the functionality in the
  above example.  The currently only valid switch is
  "-scope" and valid  values are: base, one{level},
  sub{tree}, or any integer (0-2).


tkt_uuid: 477756ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: multiplexer
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: davidw
closedate: 2003-06-29T09:04:03
comment:
  Multiplexing server available at
  http://people.debian.org/~davidw/

  Maybe this is better as an application?


tkt_uuid: 983197ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: comm
priority: 5 Medium
foundin: None
title: bgerror not getting a chance
cmimetype: text/plain
submitter: puneet
assignee: andreas_kupries
closer: puneet
closedate: 2004-07-01T07:12:28
comment:
  I am sending a command form a tcl application (client)
  to another tcl application (server). If an error is
  caught on the server side, this is not getting handeled
  by the ::bgerror procedure on the server side. This
  used to be the behaviour in the tcllib1.4. Now the
  error is being thrown back to the client side.


tkt_uuid: 449521ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: control
priority: 5 Medium
foundin: None
title: Add waitForAny to control module
cmimetype: text/plain
submitter: kenstir
assignee: dgp
comment:
  Here is a new package for your consideration: control.  I would be happy with a different name, 
  but this is how it was originally named on the Wiki.

  For now, it contains only one method: waitForAny, which implements a [vwait] for multiple 
  variables.  It has been significantly enhanced over the version in the Wiki, in that it now returns a 
  list of the tokens waited for which have now changed, or "timeout" if a timeout occurs.  With this, 
  you can build a robust queue of multiple outstanding asynchronous events, e.g. http or SOAP 
  commands.

  If you consider this a worthy package, but lacking in an area or two, let me know and I'll be happy 
  to work on it further.  Here are some ideas for enhancement:

   * replace "magical" timeout value recognition with switch, e.g. '-timeout xxx'
   * add try_catch_finally.  I have seen and used the "trycatch" package, but I believe it is more 
  complicated than it needs to be.  The Wiki has a good one that we could use here.  When I need 
  it, I'll probably add it.

  Regards,
  Ken Cox


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

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


tkt_uuid: 2683544fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: tklib :: plotchart
priority: 5 Medium
severity: Minor
foundin: None
title: clipped x-labels due to font size
cmimetype: text/plain
submitter: vera_soft
assignee: arjenmarkus
closer: aku
closedate: 2456444.39531815
comment:
  I use in my application a bigger font with "font configure TkDefaultFont -size 11 -weight bold" and PlotChart 1.6.1. 
  In xy-plots the x-label is clipped, since there is a fixed size for the labels and tics (pymax), not a font-dependent size.


tkt_uuid: 1114498fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: fileutil
priority: 5 Medium
foundin: None
title: Change 'find' API to allow an error handler
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
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: 478818ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: date/time/calendar module for tcllib
cmimetype: text/plain
submitter: schwarzkopf
assignee: schwarzkopf
comment:
  Although the clock command accomplishes alot of
  date/time functionality, there are still some
  functionality that can be added. This module should add
  those new functionalities.


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

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


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


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

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

  # diff smtpd.tcl patched_smtpd.tcl

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


tkt_uuid: 1292966fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: Performance: connection timeout
cmimetype: text/plain
submitter: cdclercq
assignee: gwlester
comment:
  Hi,

  When I try to connect via (latest version 2.4.1):
  ftp::Open $some_ip anonymous "" -mode passive

  I takes sometimes more than a minut (sometimes a timeout).
  * We only have this when starting on Solaris connecting
  to Windows via a Fortigate 200 Antivirus Appl. and a
  firewall.
  * Windows to Windows via Fortigate and firewall works fine.
  * Solaris to whatever OS not via Fortigate and firewall
  works fine
  * When I test the connection via regular UNIX ftp
  command -->
  no problem

  The line of code slowing down is located in ftp.tcl
  proc ftp::OpenControlConn
  --> set peer [fconfigure $ftp(CtrlSock) -peername]

  This line is used only for a DisplayMsg. (I think this
  line should be in the if statement, but this is not the
  real issue).

  I found an old bug report on fconfigure -peername (tcl
  project):
  [ 533301 ] fconfigure -peername very slow

  Does somebody have an idea?

  Moving the fconfigure line into the 
  #    if { $VERBOSE } {

  block fixes my problem when VERBOSE mode is off.


tkt_uuid: 981545ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: better -exportselection behavior
cmimetype: text/plain
submitter: hobbs
assignee: damonc
closer: oehhar
closedate: 2009-06-11T09:18:43
comment:
  The following patch was sent to me as a recommendation
  for better behavior on unix.  It looks OK to me, but
  someone should double-check that it doesn't look too
  funky on unix (where is has more noticeable effect):

  I tried to turn off the -exportselection option for the
  ComboBox.  The result was the entry text was still
  selected, but now it did not deselect even if other
  places in the app grabbed the selection.  There appear
  to be now way to get rid of the selection after this.

  The following patch to ActiveTcl fixes this problem.

  --- lib/bwidget1.7/combobox.tcl.dist2004-05-26
  09:23:49.000000000 +0200
  +++ lib/bwidget1.7/combobox.tcl2004-05-26
  09:34:08.000000000 +0200
  @@ -599,7 +599,9 @@
           }
       }
       $path.e selection clear
  -    $path.e selection range 0 end
  +    if {[$path.e cget -exportselection]} {
  +        $path.e selection range 0 end
  +    }
   }


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

  I am using this test snipplet:


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

  and what I get is:

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


  This is on a Mac Show Leopard and Tcl 8.6.

  /Fredrik


tkt_uuid: 1323146fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 9 Immediate
foundin: None
title: dns: ip test fail on 64-bit systems
cmimetype: text/plain
submitter: dgp
assignee: aakhter
closer: andreas_kupries
closedate: 2005-10-18T17:53:05
comment:
  Did this testing with Tcl 8.4.11-cvs
  to avoid any question whether bignum
  bugs were at fault.

  These tests fails on a 64-bit system:

  ==== ::ip:maskToInt-2 dotted form FAILED
  ==== Contents of test case:

          ::ip::maskToInt 255.255.255.255
      
  ---- Result was:
  -1
  ---- Result should have been (exact matching):
  4294967295
  ==== ::ip:maskToInt-2 FAILED


  ==== ::ip:nextNet-7 1.1.1.1/32 -> 1.1.29.0 by 2 FAILED
  ==== Contents of test case:

          ip::nextNet 1.1.1.1 255.255.255.255 2
      
  ---- Result was:
  0xffffffff01010103
  ---- Result should have been (exact matching):
  0x01010103
  ==== ::ip:nextNet-7 FAILED


tkt_uuid: 1784843fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: Documentation
priority: 5 Medium
foundin: None
title: minor spelling corrections to devdocs files
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-30T17:31:21
comment:
  There may be content-oriented updates needed to these files ... this patch is not that.

  All I am doing here is correcting several typos I encountered while running ispell over the files.


tkt_uuid: 1021240fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Duplicate
subsystem: bwidget 1.x
priority: 5 Medium
severity: Minor
foundin: None
title: bwidget table of contents in doctools format
cmimetype: text/plain
submitter: lvirden
assignee: oehhar
closer: oehhar
closedate: 2456614.90275698
comment:
  I took a stab at converting the first of the bwidget
  files to doctools format.
  I don't have a lot of time - I would love to see all
  the bwidget pages reformatted.


tkt_uuid: 2082457fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: cursor
priority: 5 Medium
foundin: None
title: Cursor is not restored with mega-widgets
cmimetype: text/plain
submitter: relaxmike
assignee: hobbs
closer: hobbs
closedate: 2009-04-24T22:04:17
comment:
  Hi,

  Suppose that you want to manage the cursor of the megawidget ctext. The cursor is not correctly
  restored, because of the delegation of the
  configure on the sub-widgets.
  The fix consists in updating the tree of
  widgets, begining by the bottom,
  instead of begining by the top, as in the
  current implementation.
  A modified implementation is suggested,
  so that the previous versions are maintained.

  In the given test case, you first propagate the watch cursor over the
  widget tree, then restore back the original cursor.

      set mytext [ctext .mytext]
      set result {}
      lappend result [.mytext cget -cursor]
      ::cursor::propagate . watch
      lappend result [.mytext cget -cursor]
      ::cursor::restore .
      lappend result [.mytext cget -cursor]
      destroy $mytext
      set result $result

  The expected result would be "xterm watch xterm".
  The computed result is "xterm watch watch",
  that is, the cursor is not correctly restored
  on the ctext widget. The reason is the
  following.

  The widget .mytext cursor is backed up
  into the CURSOR variable, and the configure
  method is used to update the cursor :

  set CURSOR(.mytext) xterm
  .mytext config -cursor watch

  At that point the instance command in the
  ctext mega-widget delegates to the underlying
  text widget :

  .mytext._t configure -cursor watch

  The cursor package then propagates the configure
  down to the children widgets, begining
  by the linemap :

  set CURSOR(.mytext.l) xterm
  .mytext.l config -cursor watch

  When it comes to the underlying text, the
  backup variable is set to the wrong cursor value,
  because it has allready been updated to the
  "watch" state :

  set CURSOR(.mytext.t) watch
  .mytext.t config -cursor watch
  .mytext._t configure -cursor watch

  When the restore command is called, the
  widget .mytext is correctly updated :

  ::cursor::restore .mytext
  .mytext config -cursor xterm

  By delegation, it triggers the configure
  method on the .mytext._t sub-widget :

  .mytext._t configure -cursor xterm

  Instead, when it comes to the sub-widget directly,
  the watch cursor is configured :

  ::cursor::restore .mytext.t
  .mytext.t config -cursor watch
  .mytext._t configure -cursor watch

  The fix simply consists in restoring children first.
  This is done by implementing unpositionnal
  arguments and maintaining the previous interface
  with a special processing of options.

  See in the attachment for a test-case and
  a suggested modified version of cursor.tcl.

  Regards,

  Michaël


tkt_uuid: 3381002fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Tkchat announces wrong hash in XEP-0115 Entity Capabilities
cmimetype: text/plain
submitter: quantifier
assignee: patthoyts
closer: patthoyts
closedate: 2012-01-23T20:35:38
comment:
  Patch that fixes missing "<" :

  Index: tkchat.tcl
  ===================================================================
  RCS file: /cvsroot/tcllib/tclapps/apps/tkchat/tkchat.tcl,v
  retrieving revision 1.486
  diff -u -r1.486 tkchat.tcl
  --- tkchat.tcl  17 May 2011 23:27:19 -0000      1.486
  +++ tkchat.tcl  28 Jul 2011 12:37:38 -0000
  @@ -8475,7 +8475,7 @@
       # extended feature processing as well (order counts)
       append S "urn:xmpp:dataforms:softwareinfo<"
       append S "os<$tcl_platform(os)<"
  -    append S "os_version<$tcl_platform(osVersion)"
  +    append S "os_version<$tcl_platform(osVersion)<"
       append S "software<tkchat<software_version<$tkchatver<"
       return [base64::encode -maxlen 0 [sha1::sha1 -bin $S]]
   }


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

  CURRENT METHOD:
  rename myTree {}


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


  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


tkt_uuid: 478989ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: control
priority: 5 Medium
foundin: None
title: Test failure
cmimetype: text/plain
submitter: andreas_kupries
assignee: dgp
closer: dgp
closedate: 2001-11-07T05:32:13
comment:
  tcllib CVS head, configure, make test.

  Module: control
  modules/control/no-op.test
  modules/control/rswitch.test

  ==== rswitch-3.0 rswitch argument checking FAILED
  ==== Contents of test case:

      [list [catch {rswitch 1 \{} msg] $msg $::errorInfo

  ==== Test generated error:
  missing close-bracket
  ---- Result should have been:
  1 {unmatched open brace in list} {unmatched open brace
  in list
      while executing
  "rswitch 1 \{"}
  ==== rswitch-3.0 FAILED


tkt_uuid: 3090738fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: Minor doc typo in graphops manpage
cmimetype: text/plain
submitter: rich123
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-10-26T17:22:53
comment:
  The graphops manpage contains a small typo in several places.  The attached diff patches tcllib 1.12  graphops manpage to remove the typo.


tkt_uuid: 653266ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox Shift-extended selection fails
cmimetype: text/plain
submitter: ndwinton
assignee: hobbs
closer: hobbs
closedate: 2003-07-17T19:40:03
comment:
  Extending a selection using the shift key in a BWidget 
  ListBox causes a failure if the list item tags are not 
  integers (and maybe if they are too). It appears to 
  assume that the tags are numbers and applies "incr" to 
  them. I have attached a patch to fix this problem.


tkt_uuid: 3427030fffffffffffffffffffffffffffffffff
type: Bug
status: Pending
resolution: Invalid
subsystem: md5crypt
priority: 5 Medium
foundin: None
title: Memory leak in md5crypt::aprcrypt in tcllib 1.13
cmimetype: text/plain
submitter: rich123
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-11-10T22:41:52
comment:
  There is a memory leak somewhere in the md5crypt::aprcrypt implementation in tcllib
  1.13.

  Steps to repeat:

  $ tclsh 
  % parray tcl_platform
  tcl_platform(byteOrder)   = littleEndian
  tcl_platform(machine)     = i686
  tcl_platform(os)          = Linux
  tcl_platform(osVersion)   = 2.6.33
  tcl_platform(platform)    = unix
  tcl_platform(pointerSize) = 4
  tcl_platform(user)        = work
  tcl_platform(wordSize)    = 4
  % puts $tcl_patchLevel
  8.5.5
  % package require md5crypt
  1.1.0
  % for {set i 0} {$i < 1000000} {incr i} { ::md5crypt::aprcrypt blah [ ::md5crypt::salt ] }

  Watch memory usage of tclsh in top or another monitor.  It will grow over time as the for loop iterates.


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


tkt_uuid: 1695122fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Use pluginmgr to handle backends
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
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: 1267178fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 8
foundin: None
title: Aes module for tcllib
cmimetype: text/plain
submitter: fattobi
assignee: patthoyts
closer: patthoyts
closedate: 2005-08-31T11:18:34
comment:
  Hi,

  I've written a Tcl-Implementation of the Advanced
  Encryption Standard (AES) for my so-called "individual
  project" at university and thought it might be usefull
  for the tcllib.

  Since it's my first (real) program in Tcl, it may not
  be perfect, but I would be glad, if it would be
  considered helpful in some way.

  I've added a small manpage (in doctools format) and
  test-suite, but I'm not sure if I did it the way it is
  desired. So tell me if something is missing or can be
  improved.

  Thorsten 


tkt_uuid: 2807227fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ScrollableFrame issues
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-06-24T11:35:45
comment:
  There are some problems with ScrollableFrame. The following code demonstrates them:

  pack [panedwindow .pw -orient vertical] -fill both -expand 1
  .pw add [set f [frame .pw.f -relief sunken -bd 1]] -minsize 30
  .pw add [set d [frame .pw.d -relief sunken -bd 1]] -minsize 30

  grid\
      [ScrollableFrame $f.sf -height 300 -yscrollcommand [list $f.yscroll set]]\
      [scrollbar $f.yscroll -orient vertical -command [list $f.sf yview]]\
      -sticky news
  grid rowconfigure $f 0 -weight 1
  grid columnconfigure $f 0 -weight 1

  set g [$f.sf getframe]

  update

  pack\
      [button $g.a -text A -command [list destroy $g.a]]\
      [button $g.b -text B -command [list destroy $g.a $g.b]]\
      [button $g.c -text C -command [list destroy $g.a $g.b $g.c]]\
      [button $g.d -text D -command [list destroy $g.a $g.b $g.c $g.d]]\
      [button $g.e -text E -command [list destroy $g.a $g.b $g.c $g.d $g.e]]\
      [button $g.f -text F -command [list destroy $g.a $g.b $g.c $g.d $g.e $g.f]]

  Now resize the panes of the panedwindow with the mouse (just a little bit). You will see that the scrollbar becomes active even though there is no reason (yet) for it.

  A second issue can be triggered by resizing the upper pane until just 2 or 3 of the buttons are still visible. Next, move the scrollbar down such that the last buttons (E and F) are visible. Now click the E button. You will see that the ScrollableFrame misbehaves.

  The attached patch solves these issues.


tkt_uuid: 1542666fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: ldap
priority: 5 Medium
foundin: None
title: addition of ldap::modifyMulti
cmimetype: text/plain
submitter: pdav
assignee: mic42
closer: mic42
closedate: 2006-09-01T14:22:23
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: 1805192fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: linearalgebra
priority: 5 Medium
foundin: None
title: ::math::linearalgebra::eigenvectorsSVD does not work
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2007-12-23T09:34:56
comment:
  ::math::linearalgebra::eigenvectorsSVD does not work coz of a $matrix variable not defined.. maybe it should be the $A matrix instead 

  from danielfisico@gmail.com


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

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

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

  For example: 

      ::html::textInput foo width=40

  generates:

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

  Instead of:

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


tkt_uuid: 1559489fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Installer
priority: 7 High
foundin: None
title: GUI Installer writes error only to stdout
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-09-19T15:22:11
comment:
  The GUI mode installer.tcl terminates when it
  encounters a non writable install location. So far so
  good, but the error message only appears on stderr,
  which is not optimal on windows where someone might
  click on the installer.tcl file and start without
  stderr. The installer should open a message box and
  notify the user about the non writable location if in
  GUI mode.


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

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


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

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

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


tkt_uuid: 1005377fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: struct :: stack
priority: 9 Immediate
foundin: None
title: struct::stack name collisions
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
comment:
  The command ::struct::stack generates a new stack object with an 
  automatically generated name. If the automatically generated 
  name is the name of an existing command, ::struct::stack throws 
  an error instead of automatically generating a unique name.

  The only way to protect against this is to specify the name 
  explicitly, which works; however, it's an undocumented feature.


tkt_uuid: 1672340fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: snit
priority: 5 Medium
foundin: None
title: test expose-1.1 fails witch tcl 8.5a5
cmimetype: text/plain
submitter: rebum
assignee: duquette
closer: duquette
closedate: 2008-08-20T22:56:21
comment:
  The expose tests reports "expose" instead of ::snit::Comp.statement.expose.

  Tested on Linux and FreeBSD.
  See attached patch.


tkt_uuid: 1191854fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: profiler
priority: 5 Medium
foundin: None
title: profiler - No sense to clutter output when total calls = 0
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  This is a kind of enhancement.
  I changed my local version by moving the piece 
  if { !$callCount($name) } {
      append result "\n"
      continue
  }
  in ::profiler::print towards the beginning of foreach loop. 
  Of course I removed the line append result "\n"


tkt_uuid: 1774302fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: error in CommRunHook error handling
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-14T20:41:50
comment:
  In proc ::comm::CommRunHook there is a block of code that looks like this:

      if {<something> {
  set code [catch {interp eval $interp $cmd} res]
      } else {
  set code [catch {uplevel 1 $cmd} res]
      }

      switch -exact -- $code {
  0 {}
  1 {
      return -errorinfo $::errorInfo -errorcode $::errorCode -code error $result
  }
  3 {return}
  4 {}
  default {return -code $code $res}
      }


  Notice that the first few lines set the variable "res" as the result of the catch, but the "1" case in the switch tries to use the variable $result.


tkt_uuid: 1071339fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: tkchat requires unknown package jlib
cmimetype: text/plain
submitter: dkf
assignee: patthoyts
closer: patthoyts
closedate: 2004-11-29T12:55:57
comment:
  Latest tkchat *requires* a package jlib that is not
  supplied in either a standard tcl/tk distribution (up
  to and including activetcl) or tcllib.  This is against
  the policy of the tcllib project I believe; the tkchat
  authors should either code a replacement in pure tcl so
  they can reduce their package requirements to a
  reasonable level, or they should stop hosting tkchat
  within tcllib, so allowing them to require whatever
  third-party packages they want.


tkt_uuid: 3613725fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: rest
priority: 5 Medium
severity: Minor
foundin: None
title: ::rest::get & "format" config option...
cmimetype: text/plain
submitter: petasis
assignee: afaupell
closer: nobody
comment:
  (This is about the rest package)

  Hi all,

  I am reading the manual for the rest package in tcllib, and I get the impression that in ::rest::simple, the config directory should contain \"format\". In the rest of the manual, I got the impression that \"format\" and \"result\" are somehow synonyms.

  Looking in the code, I see that only \"result\" is checked in config, and I am not sure what happens in parse_opts (:format is specified).

  May be the documentation needs to mention only \"result\"? (And fix the option handling?)

  George


tkt_uuid: 1581453fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: unset ftp(state.data) error
cmimetype: text/plain
submitter: goodegod
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-20T19:36:30
comment:
  I added this comment to bug 1234831, but wasn't sure 
  if that comment was monitored.  

  If there is an error in any file transfer in passive 
  mode, this error will come up:

  can't unset ftp(state.data)

  I have been able to trace this problem down to 
  the ::ftp::CopyNext routine and the StateHandler 
  routine. 

  The CopyNext routine will always unset ftp
  (state.data) 
  once the transfer is complete or there is an error.  
  Then 
  the StateHandler routine in the put_sent switch arm, 
  will 
  try to unset it again if the return code is not 1 or 
  2, 
  and it's passive mode.  

  All that's needed to fix this is either a catch, or a 
  cleaner way would be something like:

  if [info exists ftp(state.data)] {unset ftp
  (state.data)} 
  in the StateHandler routine.


tkt_uuid: 458446ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget: faster ListBox inserts
cmimetype: text/plain
submitter: bach
assignee: hobbs
closer: hobbs
closedate: 2001-12-29T01:33:24
comment:
  Motivation:

  The BWidget ListBox insert command isn't a speed demon.
  This is not
  too noticable for small lists, but it gets rather slow
  for big ones
  E.g. inserting 500 entries with just -text and -image
  attributes set 
       takes approx. 1 second on a Pentium III 550MHz.

  Problem analysis:

  The bulk of the time in ListBox::insert gets eaten by a
  call to
  Widget::init. In Widget::init, most of the time is used
  by
  initializing and parsing from standard options
  database. The example
  from above uses ~1250msec for building up the std.
  options and
  ~250msec to apply specific options for the item.

  Proposed patch:

  Two functions to speed up inserts of many items that
  are all almost
  equal. 

  First, Widget::copyinit. This works almost like the
  normal init, but
  saves time by copying standard option initialization
  from a given
  template. It then applies specific item options (just
  like init).

  Second, ListBox::multipleinsert. This also works like
  its pendant
  ListBox::insert, but knows about the aforementioned
  Widget::copyinit
  function. I shortly thought of changing the original
  'insert', but the
  effects of a change there would not be backward
  compatible.

  Sideeffects:
  None to existing code. A widget function more to
  document for the user
  (ListBox::multipleinsert).

  Results:
  The speedup of using multipleinsert is a factor of 2
  when used almost
  exactly like a multiple call to insert.
  That is:

      set l
      foreach n {name1 name2 name3 ... namen} {
          lappend l $n "-text $n -image something.gif"
      }
      $list multipleinsert end $l

  is 2 times faster than its pendant

      foreach n {name1 name2 name3 ... namen} {
          $list insert end $n -text $n -image
  something.gif
      }

  Assuming that, e.g. all images used are the same (as in
  the example
  above, the speedup is factor 3 by using:
      set l
      foreach n {name1 name2 name3 ... namen} {
          if {[llength $l] == 0} {
              lappend l $n "-text $n -image
  something.gif"
  } else {
              lappend l $n "-text $n"
          }
      $list multipleinsert end $l


  Code:

  In listbox.tcl:

  # Bastien Chevreux (bach@mwgdna.com)
  # The multipleinsert command performs inserts several
  items at once into
  #  the list. It is faster than calling insert multiple
  times as it uses the
  #  Widget::copyinit command for initializing all items
  after the 1st. The 
  #  speedup factor is between 2 and 3 for typical usage,
  but could be higher
  #  for inserts with many options.
  #
  # Syntax: path and index are as in the insert command
  #         args is a list of even numbered elements
  where the 1st of each pair
  #          corresponds to the item of 'insert' and the
  second to args of 'insert'.
  #
  ------------------------------------------------------------------------------
  #  Command ListBox::multipleinsert
  #
  ------------------------------------------------------------------------------
  proc ListBox::multipleinsert { path index args } {
      variable $path
      upvar 0  $path data

      # If we got only one list as arg, take the first
  element as args
      # This enables callers to use 
      #   $list multipleinsert index $thelist
      # instead of
      #   eval $list multipleinsert index $thelist

      if {[llength $args] == 1} {
  set args [lindex $args 0]
      }

      set count 0
      foreach {item iargs} $args {
  if { [lsearch $data(items) $item] != -1 } {
      return -code error "item \"$item\" already exists"
  }

  if {$count==0} {
      Widget::init ListBox::Item $path.$item $iargs
      set firstpath $path.$item
  } else {
      Widget::copyinit ListBox::Item $firstpath
  $path.$item $iargs
  }

  if { ![string compare $index "end"] } {
      eval lappend data(items) $item
  } else {
      set data(items) [linsert $data(items) $index
  $item]
  }
  set data(upd,create,$item) $item

  incr count
      }

      _redraw_idle $path 2
      return $item
  }

         

  In widget.tcl:

  # Bastien Chevreux (bach@mwgdna.com)
  #
  # copyinit performs basically the same job as init, but
  it uses a
  #  existing template to initialize its values. So,
  first a perferct copy
  #  from the template is made just to be altered by any
  existing options
  #  afterwards.
  # But this still saves time as the first initialization
  parsing block is
  #  skipped.
  # As additional bonus, items that differ in just a few
  options can be
  #  initialized faster by leaving out the options that
  are equal.

  # This function is currently used only by
  ListBox::multipleinsert, but other
  #  calls should follow :)

  #
  ------------------------------------------------------------------------------
  #  Command Widget::copyinit
  #
  ------------------------------------------------------------------------------
  proc Widget::copyinit { class templatepath path options
  } {
      upvar 0 ${class}::opt classopt
      upvar 0 ${class}::$path:opt  pathopt
      upvar 0 ${class}::$path:mod  pathmod
      upvar 0 ${class}::$path:init pathinit

      upvar 0 ${class}::$templatepath:opt  
  templatepathopt
      upvar 0 ${class}::$templatepath:mod  
  templatepathmod
      upvar 0 ${class}::$templatepath:init 
  templatepathinit

      if { [info exists pathopt] } {
  unset pathopt
      }
      if { [info exists pathmod] } {
  unset pathmod
      }

      # We use the template widget for option db copying,
  but it has to exist!
      array set pathmod  [array get templatepathmod]
      array set pathopt  [array get templatepathopt]
      array set pathinit [array get templatepathinit]

      set Widget::_class($path) $class
      foreach {option value} $options {
          if { ![info exists classopt($option)] } {
              unset pathopt
              unset pathmod
              return -code error "unknown option
  \"$option\""
          }
          set optdesc $classopt($option)
          set type    [lindex $optdesc 0]
          if { ![string compare $type "Synonym"] } {
              set option  [lindex $optdesc 1]
              set optdesc $classopt($option)
              set type    [lindex $optdesc 0]
          }
          set pathopt($option)
  [$Widget::_optiontype($type) $option $value [lindex
  $optdesc 3]]
  set pathinit($option) $pathopt($option)
      }
  }


tkt_uuid: 461434ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: html
priority: 5 Medium
foundin: None
title: docs mention formatCode
cmimetype: text/plain
submitter: stevecassidy
assignee: welch
closer: jenglish
closedate: 2002-02-14T21:23:53
comment:
  The man page for html mentions the proc formatCode 
  which isn't implemented in the library.  It's only in 
  the proc list, not in the main body.  

  Fix: add it in (from Jeff's implementation?) or leave 
  out the doc mention.


tkt_uuid: 527710ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: doctools
priority: 5 Medium
foundin: None
title: backslashes aren't always handled well
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-04-23T23:17:38
comment:
  In my man page I have something like this:

  [example {
     example 1:
     foo bar \
        baz

     example 1:
     foo bar \\
        baz
  }]

  When I convert that to html, example1 has baz on the 
  same line as "foo bar", and example2 shows the double 
  backslashes. That seems inconsistent, and makes it 
  impossible to get a single backslash.

  When I convert to nroff and run it through man, the 
  first example has baz on the same line as "foo bar", 
  and the second has a single backslash, pretty much as 
  I would expect.

  So, there's a bug there somewhere. My guess is, the 
  html converter is broken.


tkt_uuid: 3085417fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Build System & Testing
priority: 5 Medium
foundin: None
title: nnsd not installed
cmimetype: text/plain
submitter: cwjolly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-10-26T17:17:23
comment:
  The nano name service daemon is not installed. This appears to have happened between tcllib versions1.11 and 1.12 . Thhe support/installation/modules.tcl  does not list nnsd as an application. Adding the line :

  Application nnsd 

  fixes this bug. Corrected file attached.


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

  Thanks

  Matthew


tkt_uuid: 1110076fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: 'jail' filenames
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-09T05:52:57
comment:
  One of the uses of commands such as stripPwd is as part
  of a system to 'jail' filenames in a certain directory.

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

  fileutil::jail /var/www/ $somefile

  and returns an absolute pathname within /var/www

  $somefile is turned into a nativename

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

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


tkt_uuid: 1720901fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: test suite enhancement - add tests for all modules
cmimetype: text/plain
submitter: lvirden
assignee: nobody
closer: patthoyts
closedate: 2008-01-27T00:41:04
comment:
  Right now, there are at least 12 modules which apparently have no tests: bench, ftp, ftpd, grammar_peg, http, irc, javascript, jpeg, nmea, nntp, page, pluginmgr . It seems like it would be worthwhile to have experts of these modules provide a few tests to begin the development of testing for these modules.


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


tkt_uuid: 1260174fffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: None
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: ip: various procs for ip package
cmimetype: text/plain
submitter: aakhter
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-08-15T19:31:13
comment:
  below is the current man page for the extension to the
  ip package.

  A review and changes to accomodate integration into the
  tcllib ip package is requested.



  ipExtension.tcl(l)                                    
       ipExtension.tcl(l)



  NAMEE
         ::ipExtension:: - an extension to tcllib ip library

  SSYYNNOOPPSSIISS
         package require ipExtension



  AAUUTTHHOORRSS
         Aamer Akhter / aakhter@cisco.com


  SSUUPPPPOORRTT
         aakhter@cisco.com


  DDEESSCCRRIIPPTTIIOONN
         A detailed description of the functionality
  provided by the library.


  RREEQQUUIIRREEMMEENNTTSS
         package require logger
         package require ip



  NNOOTTEESS
         1.



  PPRROOCCEEDDUURREESS
         ::ip::prefixToNative




                convert from dotted from to native (hex) form




                       prefixToNative <prefix>



                Options:



                       <prefix>
                           string in the <ipaddr>/<mask>
  format



                Return values:



                       <prefix> in native format {<hexip>
  <hexmask>}



                Examples:



                       % ip::prefixToNative 1.1.1.0/24
                       0x01010100 0xffffff00




         ::ip::nativeToPrefix




                convert from native (hex) form to dotted form




                       nativeToPrefix <native>



                Options:



                       <native>
                           tcllist in format {<hexip>
  <hexmask>}



                Return values:



                       <prefix> form of <native>, where
  prefix is string in the <ipaddr>/<mask> format



                Examples:



                       % ip::nativeToPrefix {0x01010100
  0xffffff00}
                       1.1.1.0/24




         ::ip::intToString




                convert from an integer/hex to dotted form




                       intToString <integer/hex>



                Options:



                       <integer>
                           ip address in integer form



                Return values:



                       ip address in dotted form



                Examples:



                       ip::intToString 4294967295
                       255.255.255.255




         ::ip::ToInteger




                convert dotted form ip to integer




                       ToInteger <ipaddr>



                Options:



                       <ipaddr>
                           decimal dotted from ip address



                Return values:



                       integer form of <ipaddr>



                Examples:



                       % ::ip::ToInteger 1.1.1.0
                       16843008




         ::ip::ToHex




                convert dotted form ip to hex




                       ToHex <ipaddr>



                Options:



                       <ipaddr>
                           decimal dotted from ip address



                Return values:



                       hex form of <ipaddr>



                Examples:



                       % ::ip::ToHex 1.1.1.0
                       0x01010100




         ::ip::MaskToInt




                convert mask to integer




                       MaskToInt <mask>



                Options:



                       <mask>
                           mask in either dotted form or
  mask length form (255.255.255.0 or 24)



                Return values:



                       integer form of mask



                Examples:



                       ::ip::MaskToInt 24
                       4294967040




         ::ip::broadcastAddress




                return broadcast address given prefix




                       broadcastAddress <prefix>



                Options:



                       <prefix>
                           route in the form of
  <ipaddr>/<mask> or native form {<hexip> <hexmask>}



                Return values:



                       ipaddress of broadcast



                Examples:



                       ::ip::broadcastAddress 1.1.1.0/24
                       1.1.1.255

                       ::ip::broadcastAddress {0x01010100
  0xffffff00}
                       0x010101ff




         ::ip::MaskToLength




                converts dotted or integer form of mask
  to length




                       MaskToLength
  <dottedMask>|<integerMask>|<hexMask>



                Options:



                       <dottedMask>
                       <integerMask>
                       <hexMask>
                           mask to convert to prefix
  length format (eg /24)



                Return values:



                       prefix length



                Examples:



                       ::ip::MaskToLength 0xffffff00
                       24

                       % ::ip::MaskToLength 255.255.255.0
                       24




         ::ip::LengthToMask




                converts mask length to dotted mask form




                       LengthToMask <maskLength>



                Options:



                       <maskLength>
                           mask length



                Return values:



                       mask in dotted form



                Examples:



                       ::ip::LengthToMask 24
                       255.255.255.0




         ::ip::nextNet




                returns next an ipaddress in same
  position in next network




                       nextNet <ipaddr> <mask> [<count>]



                Options:



                       <ipaddress>
                           in hex/integer/dotted format
                       <mask>
                           mask in
  hex/integer/dotted/maskLen format
                       <count>
                           number of nets to skip over
  (default is 1)



                Return values:



                       ipaddress in same position in next
  network in hex




         ::ip::isOverlap




                checks to see if prefixes overlap




                       isOverlap <prefix> <prefix1>
  <prefix2>...



                Options:



                       <prefix>
                           in form <ipaddr>/<mask> prefix
  to compare <prefixN> against
                       <prefixN>
                           in form <ipaddr>/<mask>
  prefixes to compare against



                Return values:



                       1 if there is an overlap



                Examples:



                       % ::ip::isOverlap 1.1.1.0/24
  2.1.0.1/32
                       0

                       ::ip::isOverlap 1.1.1.0/24
  2.1.0.1/32 1.1.1.1/32
                       1




         ::ip::isOverlapNative




                checks to see if prefixes overlap
  (optimized native form)




                       isOverlap <hexipaddr> <hexmask>
  {{<hexipaddr1> <hexmask1>} {<hexipaddr2> <hexmask2>...}



                Options:



                       -all
                           return all overlaps rather
  than the first one
                       -inline
                           rather than returning index
  values, return the actual overlap prefixes
                       <hexipaddr>
                           ipaddress in hex/integer form
                       <hexMask>
                           mask in hex/integer form



                isOverlapNative is avaliabel both as a C
  extension and in a native tcl form
                if the extension is loaded (tried
  automatically), isOverlapNative will be
                linked to isOverlapNativeC. If an
  extension is not loaded, then isOverlapNative
                will be linked to the native tcl proc:
  ipOverlapNativeTcl.

                Return values:



                       non-zero if there is an overlap,
  value is element # in list with overlap



                Examples:



                       % ::ip::isOverlapNative 0x01010100
  0xffffff00 {{0x02010001 0xffffffff}}
                       0

                       %::ip::isOverlapNative 0x01010100
  0xffffff00 {{0x02010001 0xffffffff} {0x01010101
  0xffffffff}}
                       2




         ::ip::IpToLayer2Multicast




                converts ipv4 address to a layer 2
  multicast address




                       IpToLayer2Multicast <ipaddr>



                Options:



                       <ipaddr>
                           ipaddress in dotted form



                Return values:



                       mac address in xx.xx.xx.xx.xx.xx form



                Examples:



                       % ::ip::IpToLayer2Multicast 224.0.0.2
                       01.00.5e.00.00.02




         ::ip::IpHostFromPrefix




                gives back a host address from a prefix




                       ::ip::IpHostFromPrefix <ipprefix>
  [-exclude <list of prefixes>]



                Options:



                       <ipprefix>
                           prefix is <ipaddr>/<masklen>
                       -exclude <list of ipprefixes>
                           list if ipprefixes that host
  should not be in



                Return values:



                       ip address



                Examples:



                       %::ip::IpHostFromPrefix  1.1.1.5/24
                       1.1.1.1

                       %::ip::IpHostFromPrefix  1.1.1.1/32
                       1.1.1.1




         ::ip::reduceToAggregates




                finds nets that overlap and filters out
  the more specifc nets




                       ::ip::reduceToAggregates <list of
  ipprefixes>



                Options:



                       <ipprefix>
                           prefix is <ipaddr>/<masklen>
  or native format



                Return values:



                       non-overlapping ip prefixes



                Examples:




                         % ::ip::reduceToAggregates
  {1.1.1.0/24 1.1.0.0/8  2.1.1.0/24 1.1.1.1/32 }
                         1.0.0.0/8 2.1.1.0/24




         ::ip::longestPrefixMatch




                given host IP finds longest prefix match
  from set of prefixes




                       ::ip::longestPrefixMatch <ipaddr>
  <list of ipprefixes>



                Options:



                       <ipprefix>
                           prefix is <ipaddr>/<masklen>
  or native format
                       <ipaddr>
                           ip address in <ipprefix>
  format, dotted form, or integer form



                Return values:



                       <ipprefix> that is the most
  specific match to <ipaddr>



                Examples:



                       % ::ip::longestPrefixMatch 1.1.1.1
  {1.1.1.0/24 1.0.0.0/8  2.1.1.0/24 1.1.1.0/28 }
                       1.1.1.0/28




         ::ip::cmpDotIP




                helper function for dotted ip address for
  use in lsort




                       ::ip::cmpDotIP <ipaddr1> <ipaddr2>



                Options:



                       <ipaddr1> <ipaddr2>
                           prefix is in dotted ip address
  format



                Return values:



                       -1 if ipaddr1 is less that ipaddr2
                        1 if ipaddr1 is more that ipaddr2
                        0 if ipaddr1 and ipaddr2 are equal



                Examples:



                       % lsort -command ip::cmpDotIP
  {1.0.0.0 2.2.0.0 128.0.0.0 3.3.3.3}
                       1.0.0.0 2.2.0.0 3.3.3.3 128.0.0.0








  ATS                                  Cisco            
       ipExtension.tcl(l)


tkt_uuid: 987305ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: uuid::compare should be uuid::equal
cmimetype: text/plain
submitter: jenglish
assignee: patthoyts
closer: patthoyts
closedate: 2004-07-08T22:30:27
comment:
  From the uuid manpage:

  | ::uuid::uuid compare id1 id2
  |                                                     
                             
  | Compares two uuids. If equal the result is 0 
  | otherwise the result will be either +1 or -1.

  It's almost never necessary to check if one UUID is
  less than or greater than another; UUIDs don't really
  have a natural ordering relation.  

  It's far more common to check UUIDs for equality.  I'd
  suggest that:

  | ::uuid::uuid equal $id1 $id2
  |  Returns 1 if $id1 and $id2 are equal, 0 otherwise.

  would be a more useful API.


tkt_uuid: 1541436fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 5 Medium
foundin: None
title: Problems on asn package
cmimetype: text/plain
submitter: effevi
assignee: nobody
closer: mic42
closedate: 2006-08-16T17:09:29
comment:
  The module asn.tcl contains errors that makes the 
  module ldap not working

  proc ::asn::asnGetApplication {data_var appNumber_var 
  {contet_var {}}} {


  should use content_var instead of contet_var and the 
  following test

  if {[string length content_var]} {

  shoud be

  if {[string length $content_var]} {


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


tkt_uuid: 936064ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: password:user@host.com not parsed
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-03T20:19:37
comment:
  URI does not handle RFC2396 mentioned http style with
  user:password included:

  % uri::split http://foo:bar@baz.com:80/bla/
  port {} path :bar@baz.tcl:80/ scheme http host foo query {}

  Regexps get it wrong...

  Michael


tkt_uuid: 1300795fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: struct :: prioqueue
priority: 5 Medium
foundin: None
title: fix for prioqueue binary serach
cmimetype: text/plain
submitter: nobody
assignee: mic42
closer: mic42
closedate: 2005-09-23T16:19:50
comment:
  === patch ===

  --- prioqueue.tclFri Sep 23 13:28:13 2005
  +++ new/prioqueue.tclFri Sep 23 13:28:21 2005
  @@ -417,6 +417,7 @@
              } elseif {$test > 0 } {
                   # search lower section
                   set upper $pivot
  +                set bound $upper
                   set pos -1
              } else {
                   # search upper section 

  === testcase ===

  ::struct::prioqueue -integer testI

  testI put 1 1
  testI put 2 5
  testI put 3 7
  testI put 4 6
  testI put 5 0

  puts "[testI get]   =   3"
  puts "[testI get]   =   4"
  puts "[testI get]   =   2"
  puts "[testI get]   =   1"
  puts "[testI get]   =   5"

  Submitted by:
  Krzysztof Ska&#322;ecki <krys@dacsystem.pl>
  Tomasz Kosiak <tk@dacsystem.pl>


tkt_uuid: 1266913fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: struct :: skiplist
priority: 1 Zero
foundin: None
title: skiplist - Walking through a range
cmimetype: text/plain
submitter: sarnold75
assignee: keithv
comment:
  To walk through the skiplist, we already have the
  [walk] subcommand.
  But wouldn't it be better if we could walk, for instance,
  from one key to another like in SQL :
  SELECT... WHERE ID>='BOB' AND ID<='SMALL'
  I think this would be valuable.


tkt_uuid: 2038217fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: irc
priority: 5 Medium
foundin: None
title: the irc package is misusing namespace variables
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-08-05T20:40:37
comment:
  The irc package neglects to use [variable] within the namespace eval to get the right scope in proc ::irc::connection.

  The following is an example:
  % set ::sock "I'm a global value"
  I'm a global value
  % source ./irc.tcl
  % set c [::irc::connection] 
  ::irc::irc0::network
  % set ::sock
  % 

  The following namespace variables should be used with [variable]:
  sock, dispatch, linedata, config, logger

  Right now this totally defeats the purpose of using a namespace.


  It also results in this interesting bug if the dispatch global variable exists.

  % set dispatch global
  % set c [irc::connection]
  can't array set "dispatch": variable isn't array

  You may want to check the bug tracker for similar bugs from existing globals that the irc package tries to overwrite.

  There may be more problems lurking in the irc package.


tkt_uuid: 2913700fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: mime
priority: 5 Medium
foundin: None
title: extra character in range [!..~]
cmimetype: text/plain
submitter: jeremy_c
assignee: eee
closer: eee
closedate: 2013-01-11T03:59:53
comment:
  When parsing email messages, I ran across 1 message of thousands that mime would not parse. It's a spam message, none the less, it should parse? The error is:

  expecting character in range [!..~]
      while executing
  "$state(encoding) -mode decode  -- $state(string)"
      (procedure "mime::getbody" line 104)
      invoked from within
  "mime::getbody $m"
      (procedure "_body" line 5)
      invoked from within
  "_body $m"
      (procedure "insert" line 55)
      invoked from within
  "insert $content"
      (procedure "import_file" line 17)
      invoked from within
  "import_file {*}$args"
      (procedure "::mailroom::message::import" line 5)
      invoked from within
  "::mailroom::message import -file $filename"
      ("foreach" body line 3)
      invoked from within
  "foreach filename $messages {
    puts "Importing $filename"
    ::mailroom::message import -file $filename
  }"
      (file "test.tcl" line 12)


tkt_uuid: 1445219fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget Notebook memory leak?
cmimetype: text/plain
submitter: erickb
assignee: damonc
closer: oehhar
closedate: 2009-06-26T15:19:06
comment:
  I'm using the BWidget NoteBook widget, and having a
  problem with memory. When I open a new tab, wish takes
  more memory (that's fine). But when I close the tab,
  wish also takes more memory. I would have expected it
  to release memory (or at least stay constant, although
  that's not desirable), but instead, the memory
  footprint grows.

  I'm working in Windows XP using ActiveTcl 8.4.10.1.
  [And I'm looking at the "virtual memory" size in the
  Task Manager (which gives a pretty reliable reading),
  and not "Memory Usage" (which is inaccurate). It seems
  to be a real effect, and not just a problem with the
  way Windows calculates memory use.]


tkt_uuid: 985568ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - better error messages
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-07-23T03:49:39
comment:
  The error messages generated by doctools are bad with
  regard to reporting the location they happen at. They
  should report not only what is wrong, but exactly where.


tkt_uuid: 410104ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 6
foundin: None
title: ::fileutil::find infinite recursion
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-03-26T17:02:58
comment:
  ::fileutil::find will go into an infinite recursion if
  it encounters a circular sequence of softlinks.


tkt_uuid: 1352422fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: jpeg
priority: 5 Medium
foundin: None
title: tcllib jpeg bugs
cmimetype: text/plain
submitter: nobody
assignee: afaupell
closer: afaupell
closedate: 2005-11-10T07:49:33
comment:
  2 bugs in tcllib jpeg 0.1 module

  1. ::jpeg::isJPEG : the return value is inverted. Here is
  the correct code:

  proc ::jpeg::isJPEG {file} {
      set is [catch {openJFIF $file} fh]
      catch {close $fh}
      return [expr {! $is}]
  }


  2. ::jpeg::dimensions : this code needs to find the SOF
  marker but only recognizes the SOF marker type byte
  of value c0 and misses c1, c2 and c3. The wiki page 
  http://wiki.tcl.tk/757 has more details.

  Here is the correct code:


  proc ::jpeg::dimensions {file} {
      set fh [openJFIF $file]
      set chunks [markers $fh]

      foreach SOFByte {0 1 2 3} {
          set sof [lsearch $chunks "c$SOFByte *"]
          if {$sof != -1} break
      }
      if {$sof == -1} { return -code error "cannot locate sof 
  marker" }
      seek $fh [lindex $chunks $sof 1] start
          
      binary scan [read $fh 5] cSS precision height width
      close $fh
      return [list $width $height]
  }


  Keith Vetter


tkt_uuid: 3066026fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Development Tools
priority: 5 Medium
foundin: None
title: testutilities.tcl presumes tcltest loaded
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-15T20:05:07
comment:
  From the definition and description of [testsNeedTcltest] in testutilities.tcl, it is clear that we want to allow for the case that the tcltest package has not yet been loaded; this procedure has a branch that does the necessary [package require].

  However, on line 145 one finds the command

  if {![package vsatisfies [package provide tcltest] 2.0]} {

  which errors out in that case, since [package provide tcltest] then returns the empty string. 

  Thus I get the following, if I try to source just a single .test file:

  lars% tclsh
  % source modules/math/math.test
  expected version number but got ""
  % set errorInfo
  expected version number but got ""
      while executing
  "package vsatisfies [package provide tcltest] 2.0"
      invoked from within
  "if {![package vsatisfies [package provide tcltest] 2.0]} {
      # Tcltest 2.0+ provides a documented public API to define and
      # initialize a test c..."
      (file "modules/devtools/testutilities.tcl" line 145)
      invoked from within
  "source [file join \
  [file dirname [file dirname [file join [pwd] [info script]]]] \
  devtools testutilities.tcl]"
      (file "modules/math/math.test" line 14)
      invoked from within
  "source modules/math/math.test"
  % 

  Running tests using sak.tcl only seems to provide module granularity, and e.g. math is a rather large module.


tkt_uuid: 1927092fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ncgi
priority: 1 Zero
foundin: None
title: ncgi documentation - confusing use of term 'session'
cmimetype: text/plain
submitter: juliannoble
assignee: welch
comment:
  The man page for ncgi appears to be using the word 'session' in a way that doesn't fit with the common concept of a session in web-application environments.

  e.g  
  "Set the query data and Content-Type for the current CGI session."

  "If url is specified, then it defines the URL for the current session"

  My suggestion is to replace the word 'session' with 'invocation'.


tkt_uuid: 1779424fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: Example Error ::struct::list filterfor
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-22T16:41:59
comment:
  Example in documentation for did not work.
  I remove the expr {..} layer and it worked as expected

  tcl_patchLevel 8.4.4
  % ::struct::list filterfor x {1 2 3 4 5} {expr {($x % 2) == 0}}
  syntax error in expression "expr {($x % 2) == 0}": variable references require preceding $
  % ::struct::list filterfor x {1 2 3 4 5} {($x % 2) == 0} 
  2 4


tkt_uuid: 1572867fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: mime tests fail in 1.9
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-08T21:26:28
comment:
  Building tcllib-1.9 on FreeBSD with Tcl 8.4.13 fail:

  ==== mime-2.2 Generate a multi-part MIME message FAILED
  ==== Contents of test case:

      set tok1 [initialize -canonical "Text/plain"
  -string "jack and jill"]
      set tok2 [initialize -canonical "Text/plain"
  -string "james"]
      set bigTok [mime::initialize -canonical
  Multipart/MyType  -param [list MyPar
  am foo]  -param [list boundary bndry]  -header [list
  Content-Description "Test M
  ultipart"]  -parts [list $tok1 $tok2]]
      set msg [mime::buildmessage $bigTok]

      # The generated message is predictable except for
  the Content-ID
      list [regexp "MIME-Version: 1.0\r
  Content-Description: Test Multipart\r
  Content-ID: \[^\n]+\r
  Content-Type: multipart/mytype;\r
                \[^\n]+;\r
                \[^\n]+\r
  \r
  --bndry\r
  MIME-Version: 1.0\r
  Content-ID: \[^\n]+\r
  Content-Type: text/plain\r
  \r
  jack and jill\r
  \r
  --bndry\r
  MIME-Version: 1.0\r
  Content-ID: \[^\n]+\r
  Content-Type: text/plain\r
  \r
  james\r
  \r
  --bndry--\r
  " $msg] [regexp "boundary=\"bndry\"" $msg] [regexp
  "myparam=\"foo\"" $msg]

  ---- Result was:
  0 1 1
  ---- Result should have been (exact matching):
  1 1 1
  ==== mime-2.2 FAILED

  ---
  ==== mime-3.4 Try to parse a MIME message with an
  invalid version FAILED
  ==== Contents of test case:

      set msg1 {MIME-Version: 2.0
  Content-Type: text/plain

  msg1}

      set tok [mime::initialize -string $msg1]
      catch {mime::getbody $tok} err1
      catch {mime::buildmessage $tok} err1a
      list $err1 $err1a

  ---- Result was:
  msg1 {MIME-Version: 2.0
  Content-Type: text/plain

  msg1}
  ---- Result should have been (exact matching):
  msg1 {MIME-Version: 2.0
  Content-Type: text/plain

  msg1
  }
  ==== mime-3.4 FAILED


  --
  ==== mime-3.6 Try to parse a MIME message with no MIME
  version and generate a ne
  w message from it FAILED
  ==== Contents of test case:


      # No MIME version
      set msg3 {Content-Type: text/plain

  foo}

      set tok [mime::initialize -string $msg3]
      catch {mime::getbody $tok} err3
      catch {mime::buildmessage $tok} err3a
      list $err3 $err3a

  ---- Result was:
  foo {MIME-Version: 1.0
  Content-Type: text/plain

  foo}
  ---- Result should have been (exact matching):
  foo {MIME-Version: 1.0
  Content-Type: text/plain

  foo
  }
  ==== mime-3.6 FAILED


tkt_uuid: 447042ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: Package versions and dependencies
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: dgp
closedate: 2001-08-05T00:34:49
comment:
  Here's a big patch that fixes many bugs dealing with
  what versions of what packages are in tcllib, and
  what versions of what packages they depend on.  Bugs
  fixed by this patch are:

  447038
  447035
  447033
  447013
  447012
  447011
  447010
  232017


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

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


  By pressing the button you get the following error 
  message:

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


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

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


tkt_uuid: 3425269fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tepam
priority: 5 Medium
foundin: None
title: Errors in tepam demo when TkCon not present
cmimetype: text/plain
submitter: stwo
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-11-09T05:58:16
comment:
  The tepam demo will generate an error when TkCon isn't present, due to an uninitialized variable.
  Another error will be generated because the variable "tcl_platform" is not scoped properly.
  Attached patch also applies the same "prologue" as used in all the other examples.


tkt_uuid: 1167797fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: tklib: ctext
priority: 5 Medium
foundin: None
title: 8.5 speed improvement via -all
cmimetype: text/plain
submitter: georgeps
assignee: georgeps
comment:
  Date: Thu, 10 Feb 2005 12:24:38 -0400
  From: Andrew Black <ablack@arva.net>
  To: GeorgePS@XMission.com
  Subject: ctext patch
  Parts/Attachments:
     1 Shown     14 lines  Text
     2   OK    ~7.4 KB     Text
  ----------------------------------------
  Hi George, Ive attached a patch to ctext.  It includes
  a highlight85 proc
  which uses the -all flag for searching (according to
  time I am seeing an
  average of 36% increase in speed)  And an overhaul of
  the linemap.  I did a full height widget with all
  linenumbers, and linked the yviews of the two text
  widgets.  There is also a change to use a tile frame if
  tile has been loaded.
   There were a couple of other minor tweaks, but they
  were purely personal, so review the patch carefully. 
  Mainly, I turned off quote matching and increased the
  flash time for bracematching.  Hope this helps.

  --
  Andrew J. Black
  Chief Engineer
  Automatic Rolls of Virginia
      [ Part 2, Text/X-PATCH (Name: "ctext.tcl.patch") 
  127 lines. ]

  ----
  The linemap changes may not handle images, or wrapping
  lines... -GPS


tkt_uuid: 2813069fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
severity: Minor
foundin: None
title: ftp client close hangs
cmimetype: text/plain
submitter: russellbell
assignee: andreas_kupries
closer: aku
closedate: 2456710.3831265
comment:
  I've found a bug in the ftp client library 2.4.8 that bites
  when a connection is closed.  When you call ::ftp::Close $handle
  you sometimes get a TCL exception (thrown in an event handler
  so a catch around ::ftp::Close doesn't help) and sometimes
  you get an endless loop.  Depends on the ftp server you're
  talk to and doesn't happen consistently, but enough to be
  annoying.

  The faulty code is about line 35 of ::ftp::StateHandler which
  does "set number [gets $sock bufline]".  This code reads
  a continuation line, so normally isn't called after the
  socket is closed, but sometimes it is and an exception is
  the result.  The fix is to wrap in a catch.

  But then the second bug bites - this code is in a loop and
  if the gets returns <= 0, the loop is infinite.  The fix is to
  break from the loop, and change the code structure a little
  to ensure "if { [eof $ftp(CtrlSock)] } ..." gets called
  in this case.

  I believe this is a separate issue to 1076923 found by Keith
  Vetter - that was the gets on line 16 of ::ftp::StateHandler.

  If it's helpful I can provide source for the fix.


tkt_uuid: 2999846fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: createHorizontalBarchart: wrong order of args
cmimetype: text/plain
submitter: obienert
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2010-05-11T12:39:25
comment:
  Call of createHorizontalBarchart:
  Help file says:
  ::Plotchart::createHorizontalBarchart w ylabels xaxis noseries
  However, the proc demands a different order:
  proc ::Plotchart::createHorizontalBarchart { w xscale ylabels noseries }

  Oliver


tkt_uuid: 1740573fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: html - documentation, examples needed
cmimetype: text/plain
submitter: escargo
assignee: nobody
closer: andreas_kupries
closedate: 2007-08-21T23:15:50
comment:
  The documentation for the html package has some errors and typographical errors.

  The synopsis lists the procedures in not quite alphabetical order.  The init procedure appears between refresh and row.

  The explanation for ::html::cell uses upper case tags whereas lower case tags are really used.

  The explanation for ::html::openTag lists the arguments as "tags args" when the code uses "tags param".  Using multiple args (implied by args) will fail.

  ::html::row should say that it does NOT used defaults for the td tag as defined in the ::html::init call.

  Examples would be very instructive.


tkt_uuid: 553980ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: struct
priority: 8
foundin: None
title: skiplist struct
cmimetype: text/plain
submitter: ericm
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-15T22:03:27
comment:
  Code for a skiplist implementation, from Keith Vetter:

  "I'd like to submit a module for tcllib to be part of
  the ::struct group. The module implements skip lists
  which a data structure similar to balanced trees but
  which are faster and simpler."


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

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

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

  -----
  package require md5

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

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

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

  Best regards
  Helmut Giese


tkt_uuid: 445675ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: Enhanced mainframe toolbar
cmimetype: text/plain
submitter: haneef
assignee: jenglish
closer: jenglish
closedate: 2001-09-24T19:18:56
comment:
  I pack many buttons on to the mainframe toolbar
  and one thing I wanted to do was to put a few select
  buttons right justified (they are MDI kind of buttons)

  To do this, I had to make one change to mainframe.tcl
  that effectively packed the toolbar with an expand
  set to "yes". This should be a fully backward compatible
  change and allows users to do have left and/or right
  justified buttons.

  I only modified one line but I have attached the
  entire file....


tkt_uuid: 3071973fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: add Kruskal-Wallis test to math::statistics
cmimetype: text/plain
submitter: treincke
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2010-09-22T07:08:06
comment:
  I have done an implementation of the Kruskal-Wallis test. Feel free to adapt this and tweak it for the needs of math::statistics. Personally, I would make two commands from this code (the names can be something else more descriptive of course):

  ::math::statistics::test-Kruskal-Wallis ?data ...?
  ::math::statistics::rank ?data ...?

  Find the implementation here: http://wiki.tcl.tk/27149


tkt_uuid: 1502400fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: None
subsystem: math
priority: 5 Medium
severity: Minor
foundin: None
title: add an option to math::statistics::histogram
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
comment:
  Hi,
  math::statistics::histogram groups datas in intervals
  according to this logical scheme :
  [x0,x1] ]x1,x2] ]x2,x3] ... ]xn-1,xn]
  I'd like to have the possibility of grouping the other
  way ie :
  [x0,x1[ [x1,x2[ [x2,x3[ ... [xn-1,xn]
  This is actually the grouping method commonly used in
  France (at least).

  Thank you, arjen :)

  dcobac@free.fr


tkt_uuid: 2346118fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tklib
priority: 7 High
foundin: None
title: canvas::sqmap limitations
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  The items used to show the images in their cells are currently visible to the user of the canvas::sqmap, allowing hacks and tricks, and possibly confusing things, like when finding nearest/overlapping items.
  Fix this before going v1. Basically have to inspect all methods taking and returning items and filter the internal items out. Ditto for tags, our tag for the image items should not be visible outside.


tkt_uuid: 1610965fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget 1.7/8 ComboBox getvalue cmd fails on identical items
cmimetype: text/plain
submitter: martinlemburg
assignee: damonc
closer: oehhar
closedate: 2009-06-25T16:44:34
comment:
  Hello,

  follwing code demonstrates the issue:

  % ComboBox .cb -values {a b c a b c}
  .cb
  % pack .cb
  % .cb configure -modifycmd {puts ".cb getvalue = [.cb getvalue]"}

  If now the user clicks on items of the dropped listbox, than then the ComboBox returns always the first found item index, where the contents of the ComboBox entry is identical to a listbox's item.

  This would be ok, if the user entered a value!

  But if the user selects a listbox item, than I expect to get the right result - the index of the selected listbox item.

  Best regards,

  Martin Lemburg


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

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

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


tkt_uuid: 1777399fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp cause memory leak
cmimetype: text/plain
submitter: fanwang
assignee: andreas_kupries
comment:
  Hi, I'v use ftp package for a long duration execution.
  And found there is memory leak. Following is the top infomation. STProxy is the script I used.
  pls also found it in attachment.

  [fwang@pc3-5 ~]$ top -d 5 -p 4036 -n 2 -b
  top - 10:29:10 up 51 min,  5 users,  load average: 0.00, 0.04, 0.06
  Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
  Cpu(s):  1.8% us,  0.9% sy,  0.0% ni, 95.5% id,  1.7% wa,  0.0% hi,  0.0% si
  Mem:    507224k total,   380992k used,   126232k free,    41192k buffers
  Swap:  1015800k total,        0k used,  1015800k free,   206452k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
   4036 fwang     16   0 17212 3728 1520 S  0.0  0.7   0:03.82 STProxy



  [fwang@pc3-5 ~]$ top -d 5 -p 4036 -n 2 -b
  top - 11:08:51 up  1:31,  6 users,  load average: 0.05, 0.19, 0.30
  Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
  Cpu(s):  2.8% us,  3.0% sy,  3.8% ni, 88.0% id,  2.3% wa,  0.1% hi,  0.0% si
  Mem:    507224k total,   482360k used,    24864k free,    45496k buffers
  Swap:  1015800k total,        0k used,  1015800k free,   278360k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
   4036 fwang     16   0 22736 9128 1520 S  0.0  2.4   0:35.18 STProxy


tkt_uuid: 507242ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: crc
priority: 5 Medium
foundin: None
title: test failed
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2002-01-23T21:44:45
comment:
  i got the following errors during \make test from crc:

  Module: crc
  modules/crc/cksum.test

  ==== cksum-4.0 cksum file option FAILED
  ==== Contents of test case:

      set r1 [crc::cksum -file $::argv0]
      set r2 [crc::cksum [crc::loaddata $::argv0]]
      if {$r1 != $r2} {
          set r "differing results: $r1 != $r2"
      } else {
          set r ok
      }

  ==== Test generated error:
  can't read "::argv0": no such variable
  ---- Result should have been:
  ok
  ==== cksum-4.0 FAILED

  modules/crc/crc32.test

  ==== crc32-4.0 crc32 file option FAILED
  ==== Contents of test case:

      set r1 [::crc::crc32 -file $::argv0]
      set r2 [::crc::crc32 [crc::loaddata $::argv0]]
      if {$r1 != $r2} {
          set r "differing results: $r1 != $r2"
      } else {
          set r ok
      }

  ==== Test generated error:
  can't read "::argv0": no such variable
  ---- Result should have been:
  ok
  ==== crc32-4.0 FAILED

  modules/crc/sum.test

  ==== sum-4.0 sum file option (BSD) FAILED
  ==== Contents of test case:

      set r1 [crc::sum -bsd -file $::argv0]
      set r2 [crc::sum -bsd [crc::loaddata $::argv0]]
      if {$r1 != $r2} {
          set r "differing results: $r1 != $r2"
      } else {
          set r ok
      }

  ==== Test generated error:
  can't read "::argv0": no such variable
  ---- Result should have been:
  ok
  ==== sum-4.0 FAILED


  ==== sum-4.1 sum file option (SysV) FAILED
  ==== Contents of test case:

      set r1 [crc::sum -sysv -file $::argv0]
      set r2 [crc::sum -sysv [crc::loaddata $::argv0]]
      if {$r1 != $r2} {
          set r "differing results: $r1 != $r2"
      } else {
          set r ok
      }

  ==== Test generated error:
  can't read "::argv0": no such variable
  ---- Result should have been:
  ok
  ==== sum-4.1 FAILED


  ********
  ******** solution?
  ********
  after, package require cksum in cksum.test, i added
  set ::argv0 [info script]

  that fixed it.


tkt_uuid: 1193581fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: profiler
priority: 5 Medium
foundin: None
title: Time consumed in C/C++ calbacks is not collected
cmimetype: text/plain
submitter: mcocosila
assignee: ericm
closer: ericm
closedate: 2005-05-02T17:43:50
comment:
  I tried to use the profiler included in the tcllib. It
  seems to be a very useful thing. Still, I would like to
  present my current situation and the related questions.

  We have a C/C++ server with tcl interpreters embedded.
  We developed a specific application with a part of the
  business rules implemented in tcl.
  Right now we want to improve the overall performance of
  the application (to have acceptable execution times for
  specific tasks - this means time consumed in C/C++ plus
  time consumed in tcl).

  As I noticed from using the profiler in the tcl
  standard library, it seems that only time spent in pure
  tcl code in collected. To get a good feeling on the
  overall performance we need to measure both time
  components: the one spent in C and the one spent in
  pure tcl.

  Let's consider a simple app skeleton as an example.

  Let Tcl1 be a higher level tcl proc.
  Let Tcl11 be a lower level tcl proc that is called by Tcl1.
  Let C1 be a C/C++ callback implemented in C and exposed
  to external tcl code. Tcl11 has minimal pure tcl inside
  and invokes C1.

  Running the profiler, I noticed that the time reported
  for Tcl11 is 0. The fact the time is 0 makes me think
  of two concurrent possible reasons: (1) the pure tcl
  code in Tcl11 runs too fast and is approximated as 0
  and (2) the C1 is not profiled. This is not too useful
  and I will show you a simple scenario for this.

  Let's consider that Tcl11 invokes C1 (possible a costly
  calculating operation) hundreds times instead of only
  once and then caching the result.
  By not collecting the time consumed in C1, I miss an
  opportunity to improve the Tcl11 proc. I hope you got
  my point.

  In conclusion, please tell me if there is some option
  to configure the existing tcl profiler to do what I
  need. Or, maybe, you can direct me somehow to reach my
  goal. Anyway, it seems a general need for others to enjoy.

  Thank you very much for your time and consideration.


tkt_uuid: 1122790fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: treeql
priority: 5 Medium
foundin: None
title: Scoping undefined for node set iterators
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T18:46:39
comment:
  The documentation states nothing about the scope the
  body of the varous node set iterators (foreach, with,
  and over) is executed in. Experiments indicate that it
  is neither global scope, nor the scope of the code
  performing the query the operator is part of, but some
  impementation defined internal scope. IMHO it should be
  defined to be the scope of the calling code.


tkt_uuid: 435097ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Keynavigation failed in Tree
cmimetype: text/plain
submitter: svogel
assignee: ericm
closer: ericm
closedate: 2001-06-22T01:57:32
comment:
  Having supplied open/close-commands for the tree-
  widget, they are not called when pressing the "Right"-
  Button or the "Left"-Button.

  This can be especially observed in the directory-tree-
  demo, where the subtree is build in the "open-
  callback"-command. Pressing the "Right"-Key doesn't 
  open the tree, because the "open-command" isn't called.

  The following could be inserted in tree.tcl for 
  proc Tree::_keynav {which win} {
   ...
    "right" {
    # On a right arrow, if the current node is closed, 
  open it.
    # If the current node is open, go to its first child
    if { [string equal $node ""] } {
      return
    }
    set open [$win itemcget $node -open]
    # patch begin -->
    if {!$open && [set cmd [Widget::getoption $win -
  opencmd]] != ""} {
      uplevel \#0 $cmd $node
     }
     # <-- patch end
     if { [llength [$win nodes $node]] } {
     ...


    "left" {
    # On a left arrow, if the current node is open, 
  close it.
    # If the current node is closed, go to its parent.
    if { [string equal $node ""] } {
      return
    }
    set open [$win itemcget $node -open]
    if { $open } {
      $win itemconfigure $node -open 0
      # patch begin -->
      if {[set cmd [Widget::getoption $win -closecmd]] !
  = ""} {
        # call close-callback
        uplevel \#0 $cmd $node
      }
      # <-- patch end
      return
    } else {
    ...



  Best regards
    Stefan


tkt_uuid: 3439693fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: pki
priority: 5 Medium
foundin: None
title: ::pki::x509::parse_cert error
cmimetype: text/plain
assignee: rkeene
closer: nobody
closedate: 2011-11-18T23:40:46
comment:
  While parsing a cert, a bug comes when reviving strings on the issuer and subject objects.  The problem comes in proc ::pki::x509::_dn_to_list as some certs has UTF8String instead of PrintableString.  My solution was to replace

  ::asn::asnGetPrintableString curr_part value

   by:

  set a $curr_part
  ::asn::asnPeekByte a b
  switch -- $b {
  19 {::asn::asnGetPrintableString curr_part value}
  12 {::asn::asnGetUTF8String curr_part value}
  default {::asn::asnGetPrintableString curr_part value}
  }

  Hope that helps

  Regards

  -=Raul=-


tkt_uuid: 1261101fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math :: bignum
priority: 5 Medium
foundin: None
title: Allow easy comparisons with 0 (zero)
cmimetype: text/plain
submitter: escargo
assignee: sarnold75
closer: sarnold75
closedate: 2005-08-30T16:33:12
comment:
  In ::math::bignum, most of the comparison functions
  (except for iszero) require two bignums as inputs.
  However, there are many cases where the comparison is
  between 0 and some number.

  Right now, you need to make a bignum of 0 to do the
  comparison. It should be possible to special case the
  comparisons so that the comparison is against the
  literal 0 would be permitted.

  Another possibility would be to predefine two useful
  numbers as bignum constants: 0 and 1. With those two
  predefined, a lot of tests would be able to avoid
  having to create them. (Other powers of two (2^1, 2^2,
  2^3, ...2^64) would be potentially useful as well, but
  perhaps less worth the overhead.)


tkt_uuid: 2935347fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: bug 2935339 (::ftpd::config)
cmimetype: text/plain
submitter: keithv
assignee: nobody
closer: andreas_kupries
closedate: 2010-01-20T18:15:59
comment:
  Here's a fix for bug 2935339 which is where calling ::ftpd::config a second time resets previously set values.The problem is that it uses cmdline::getoptions but supplies the application default values instead of the current values.


tkt_uuid: 1008455fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: online docs incorrectly hyperlink to other modules
cmimetype: text/plain
submitter: afaupell
assignee: jenglish
closer: jenglish
closedate: 2004-08-13T03:08:21
comment:
  for example in the struct::pool page at
  http://tcllib.sourceforge.net/doc/pool.html
  "clear" and "destroy" are linked to the stack module.


tkt_uuid: 1446320fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: tklib
priority: 5 Medium
foundin: None
title: widget::dialog -modal local option does not work
cmimetype: text/plain
submitter: apnadkarni
assignee: hobbs
closer: hobbs
closedate: 2007-10-31T19:42:29
comment:
  Specifying the "-modal local" option to a
  widget::dialog does not make the dialog modal. It
  actually would generate an error because of invalid
  -local option to grab but the offending line is under a
  catch so the error gets ignored.
  A patch to fix this is:

  195c195,201
  <           catch {grab -$option(-modal) $win}
  ---
  >           catch {
  >                 if {$options(-modal) eq "local"} {
  >                     grab $win
  >                 } else {
  >                     grab -$option(-modal) $win
  >                 }
  >             }

  /Ashok


tkt_uuid: 1826418fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: None
priority: 5 Medium
foundin: None
title: Various syntax errors
cmimetype: text/plain
submitter: eriklns
assignee: andreas_kupries
comment:
  Attached file tcllib.tar.gz holds the results of a procheck anaysis on all tcllib scripts.

  As you will undoubtedly notice, some errors are reported because my version of procheck is outdated. However, some of the errors are indeed syntax errors.

  It is easy to compensate for the procheck version mismatch by rerunning the script procheck.tcl with a recent version.

  Erik Leunissen

  Attached file: tcllib.tar.gz (containing: procheck.tcl, procheck.out, procheck.err)


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


tkt_uuid: 410100ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 6
foundin: None
title: Package mgmt woes during development
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-03-26T17:00:28
comment:
  Assume the current codebase, an installed fileutil 1.0
  and a new
  fileutil 1.1 under development. The initialization of
  the tests scans
  the package directories and finds fileutil 1.0. The
  module then adds
  itself to the auto_path and then requires fileutil
  (without
  version). Now fileutil 1.0 is found by the pkg
  management, it is
  acceptable according to the rules of require and thus
  used. The new
  version is not considered at all, as changing the
  auto_path does *not*
  enforce a rescan of package directories.

  It is possible to solve the problem by having the
  modules require
  themselves and request a specific version (1.1 in this
  case). But this
  would mean that in each module we have (at least) one
  more file
  containing the version number (all test files!) and we
  have to
  maintain this for every module. I rather propose the
  following changes
  to all.tcl:

  Adds the module path to the auto_path (the tested
  modules did it
  themselves before) and also move the setting of the
  auto_path in the
  slave before the first 'package require' (of tcltest).

  Now all paths are in order when the first scan happens,
  immediately
  picking up the development version (provided that is
  has a higher
  version number :).


tkt_uuid: 1316063fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tie
priority: 4
foundin: None
title: tie/tie_rarray_comm.test prints extra info
cmimetype: text/plain
submitter: techentin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-10T21:44:53
comment:
  tie_rarray_comm.test includes gratuitous puts commands,
  cluttering the log.  It prints something about "self @
  xxxx," waiting for spawned comm system to boot" etc.


tkt_uuid: 1657338fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: blowfish
priority: 5 Medium
foundin: None
title: Blowfish CFB mode
cmimetype: text/plain
submitter: tocobob
assignee: patthoyts
comment:
  Hi, 
  This patch enables CFB (Crypto Forward Block) stream encryption in the blowfish module.
  It has a simple test in the test suite, and I used it to decrypt data encrypted in a cryptofs (fuse userland encrypted filesystem) so I think it works.
  I'm no crypto expert...
  As far as I know, the limitation is that you can not call the encrypt/decrypt multipletimes if you don't use a full block, so ONLY the last block is allowed to be less than 64bits in size, which should not be a problem.

  Regards


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


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


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

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

  make install works smoothly.

  man.macros is in place.

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

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

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

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

  (see target install-doc).


tkt_uuid: 1582535fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: Infinite loop in StateHandler
cmimetype: text/plain
submitter: hofkensg
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-10-23T19:33:30
comment:
  Hello,

  I have discovered a series of events which cause the 
  StateHandler proc to be called in an infinite loop. A 
  possible scenario to trigger this is the following:
   - open a ftp connection and start a get
   - make sure the control connection times out because 
  of network errors
   - try the ftp::Close proc and notice the "infinite 
  number of loops" exception of tcl.

  The reason for this to happen is that the 
  StateHandler passes through the [eof $ftp(CtrlSock)] 
  branch, where it goes back to vwait in 'WaitComplete 
  $s 0', without taking away the cause of the event. 
  Meaning the ftp(CtrlSock) is still readable, and so 
  the StateHandler is called again, and again, ...

  I have added a patchfile for this against revision 
  1.43 of ftp.tcl.

  Greetings,
  Guy


tkt_uuid: 3167244fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: hook(n) man page renders incorrectly
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-02-23T18:14:28
comment:
  The hook man page renders incorrecty in the REFERENCE section. There is a staircase effect which sends output to the right.
  Attached is the result of "man n hook > hook.txt"
  Error messages on stderr are:
  $ man n hook > hook.txt
  <standard input>:385: warning: macro `CE:' not defined (probably missing space after `CE')
  <standard input>:424: warning: macro `CE,' not defined (probably missing space after `CE')
  <standard input>:437: warning: macro `CE,' not defined (probably missing space after `CE')
  <standard input>:449: warning: macro `CE.' not defined (probably missing space after `CE')
  <standard input>:543: warning: macro `CE,' not defined (probably missing space after `CE')


tkt_uuid: 1002936fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ftpd can't handle pathnames with spaces
cmimetype: text/plain
submitter: blacksqr
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-08-05T03:59:53
comment:
  ftpd 1.2+ tcl 8.4.6 and .7

  I start up ftpd on my win machine and use Windows
  Explorer to create a network shortcut.  The contents of
  my C:/ directory appear in Window Explorer as expected.
   I then double-click on "/Program Files" and get empty
  directory listing.  Log output from ftpd shows that
  ftpd tried to get list from "/Program" which is
  non-existent.

  Debugging shows that ::ftpd::command::CWD gets passed
  /Program Files/ as the value of list, then 

  set relativepath [lindex $list 0]

  results in relative path getting the value /Program. 
  The line should be 

  set relativepath [lindex [list $list] 0]

  All the other file access sub-commands seem to handle
  $list the same way.  Perhaps a switch statement in
  ::ftpd::read which properly quotes the value of $list
  in the call to the file access sub-commands would be
  better than fixing each individual command.


tkt_uuid: 1213527fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: mime
priority: 5 Medium
foundin: None
title: mime: Adds spurious CRLF to each item
cmimetype: text/plain
submitter: cc_benny
assignee: mrose
closer: andreas_kupries
closedate: 2006-10-03T16:30:25
comment:
  I've been trying to use the mime package for HTTP form 
  data (see <http://wiki.tcl.tk/FileUploadWithTclSHttp>). 
   
  One problem is that mime::buildmessage adds a CRLF at the 
  end of every item and than again before each boundary. This 
  is one CRLF to much. 
   
  This is mostly harmless with HTML or GIF parts in mails, 
  because the additional CRLF is at the end of the file data and 
  just ignored by most viewers.  But for servers parsing it as 
  HTTP form data it is parsed as a significant part of the data. 
   


tkt_uuid: 1043107fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: MainFrame: Accelerator Ctrl f does not work
cmimetype: text/plain
submitter: pointsman
assignee: pointsman
closer: pointsman
closedate: 2004-10-09T00:20:07
comment:
  A Ctrl f accelerator in a MainFrame menu definition
  does not work.

  Example script:

  package require BWidget

  set menuDef {
      "Datei" {} {} 0 {
          {command "E Entry" {} "" {Ctrl e} \
               -command  {puts "E Entry called"}}
          {command "F Entry" {} "" {Ctrl f} \
               -command  {puts "F Entry called"}}
          {command "G Entry" {} "" {Ctrl g} \
               -command  {puts "G Entry called"}}
      }
  }

  MainFrame .mf -menu $menuDef

  Control-e and Control-g fire, Control-f does not.

  The reason is in MainFrame::_parse_accelerator. The
  regexp {f[1]?[0-9]*} tries to select f1 etc, to
  capitalize the f, but unfortunately the regexp also
  match a single 'f'. This ends in the Binding
   <Control-Key-F> instead of the necessary <Control-Key-f>.


tkt_uuid: 533025ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: smtp
priority: 7 High
foundin: None
title: sendmessage: response too short
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: andreas_kupries
closedate: 2002-04-04T16:29:52
comment:
  smtp::sendmessage can return the error "response too 
  short" when sending through a mail server that 
  responds very quickly.
  This is due to smtp::readable not handling the "no 
  full-line available" condition.
  I have attached a fix that works for me, in the form 
  of a diff against smtp.tcl from tcllib0.6.1.

  Regards
  Simon Scott


tkt_uuid: 2941841fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: htmlparse crashes on really badly formed html
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-08-02T22:22:48
comment:
  % htmlparse::parse  "<a<a/>>" 
  extra characters after close-brace

  The string being parsed here is nonsense.  I'm not sure what a sane way to parse it would be.  Perhaps as a singleton tag named "a<a" followed by a naked ">".

  Erroring out is undesirable, because it doesn't attempt to do any partial parsing.


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

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

  One way to implement this is as follows:

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

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

  And add the following function:

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

  Here is a test that illustrates the operation:

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

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


tkt_uuid: 3439702fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
severity: Minor
foundin: None
title: ::html::js & ::html::css error
cmimetype: text/plain
assignee: andreas_kupries
closer: aku
closedate: 2456737.45128784
comment:
  Hi,

  When calling this 2 procs mentioned, it tries to set a namespace variable with a ::html::set instead of ::set.  However, even replacing "set" by "::set" on those 2 procs, it overrides the last value.

  What i did was just to replace "set page(js)" by "lappend page(js)".  same for css, as ::html::head calls those vars with a "foreach", meaning that they should be lists.  Now it works fine.

  Regards

  -=Raul=-


tkt_uuid: 222664ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 8
title: ftpd package does not handle binary files correctly
cmimetype: text/plain
submitter: tellcare
assignee: ericm
closer: ericm
closedate: 2000-11-22T17:27:38
comment:
  Software:
  ---------
  I am using TCL 3.3.2 and installed the latest tcllib0.8.
  Contained in this library is a new package "ftpd" whose current version
  is 1.1.

  Problem:
  --------
  I wrote the following 2 line test script in order to test an FTP server:
   
          package require ftpd
          ::ftp::server
   
  However when I used this server to down-load binary files they were
  either
  corrupted or incomplete.
  The FTP protocol between client and server correctly specifed binary
  transfer mode.
   
  Bug:
  ----
  The default file system procedure "::ftpd::fsFile::fs" returns a file
  handle
  representing the local file for the following sub-commands :
  append,retr,store
  However the logic does not check what the current transfer mode when
  opening the 
  file for reading/writing.

  Correction:
  -----------
  One solution is to correct the following procedures:

  1)
  ::ftpd::command::APPE
  ::ftpd::command::RETR
  ::ftpd::command::STOR
  ::ftpd::command::STOU

  When calling the procedure "::ftpd::FS" add an additional parameter
  $data(mode) indicating the current transfer mode.
  This can be done easily because the procedure has a variable number
  of arguments.

      if {![catch {::ftpd::Fs retr $path $data(mode)} f]} {

  2)
  ::ftpd::fsFile::fs

  The extra parameter is passed from "::ftpd::FS" and can be tested
  in the logic handling the sub-commands append,retr and store.

  If the mode is binary then configure the file handle for binary 
  operation.

           set fhandle [open $path r]
           if {[lindex $args 0] == "binary"} {
              fconfigure $fhandle -translation binary
           }
           return $fhandle


tkt_uuid: 522529ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: possible log file parsing bug
cmimetype: text/plain
submitter: lvirden
assignee: hartweg
closer: hartweg
closedate: 2002-04-19T16:03:15
comment:
  I have been seeing, during the past week or two, the
  following phenom:

  dkfI don't run the Tk test suite very often as it is
  much touchier than the Tcl test suite. In particular,
  some features (like focus handling and restacking
  timings) seem to be highly dependent on your window
  manager, and I also have problems because my Sun
  workstation has a lot more fonts than normal (I suspect
  that it is configured with extra font servers, but
  can't be bothered to check.)Sat Feb 23 14:33:54 2002
  217.118.43.2 [NEW USER] Bman  
  dan_kuchler.Sat Feb 23 19:46:49 2002 12.234.155.3 [NEW
  USER] ericm  
  dan_kuchlerhi there dude 


tkt_uuid: 1533868fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ldap
priority: 5 Medium
foundin: None
title: Connection not properly marked as unbound in ::ldap::unbind
cmimetype: text/plain
submitter: pdav
assignee: loewerj
closer: mic42
closedate: 2006-08-03T14:30:53
comment:
  The connection is not properly marked as unbound 
  in ::ldap::unbind.

  A local variable is modified, instead of the array 
  used to remember the connection parameters.


tkt_uuid: 1835240fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: Error from http package during login
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2008-01-08T14:19:38
comment:
  Got:

  can't read "state(status)": no such variable
  can't read "state(status)": no such variable
      while executing
  "if {$state(status) eq "error"} {
      # Something went wrong while trying to establish the connection.
      # Clean up after events and such, but DON'..."
      (procedure "http::geturl" line 255)
      invoked from within
  "http::geturl http://www.tcl.tk/cgi-bin/tct/tip/tclIndex.txt  -timeout 15000  -progress ::tkchat::Progress  -command [list [namespace origin fetchurldo..."
      (procedure "GetTipIndex" line 2)
      invoked from within
  "GetTipIndex"
      (procedure "::tkchat::LoadHistory" line 14)
      invoked from within
  "::tkchat::LoadHistory"
      ("after" script)

  Note that this is using a partially patched http package from 8.5. In my case the body of the http::status command is:
  % info body http::status

      if {![info exists $token]} { return "error" }    
      upvar 0 $token state
      return $state(status)


tkt_uuid: 1345967fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: graph serialize broken (easy fix)
cmimetype: text/plain
submitter: spotam
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-11-02T18:03:29
comment:
  Serialize does not work properly when arc name
  contains spaces.
  Fix: in modules/struct/graph.tcl line 2269 should
  become "set arc [list $a]" instead of "set arc $a"


tkt_uuid: 1798413fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: doctools
priority: 5 Medium
foundin: None
title: Documenting related commands on one man page
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
comment:
  It's difficult to write a man page about multiple commands. Here's an example:

  http://naviserver.sourceforge.net/n/naviserver/files/ns_memoize.html
  http://naviserver.cvs.sourceforge.net/naviserver/naviserver/doc/src/mann/ns_memoize.man?view=markup


  - Each command is given a numbered anchor, so to link to ns_memoize_flush the link is: .../ns_memoize.html#2. This will change if commands are added, removed or reordered.


  - If you use the [cmd ...] markup, the name of the command becomes a link but only if it has the same name as the page current page.

  In the example above, ns_memoize is a link to itself. However ns_memoize_flush is not a link at all. Neither is ns_cache_eval, which is documented on another page (named ns_cache).

  What would be useful is if each mention of a command would link to it's definition, i.e. .../ns_cache.html#ns_cache_eval


  - Some commands are in the form of subcommands, like Tcl's 'string'. It would be useful to be able to refer to  a subcommand like: [cmd "string is"] and have it parse the space and link to the correct place.


tkt_uuid: 1545306fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: sasl
priority: 9 Immediate
severity: Minor
foundin: None
title: nonce-count for DIGEST-MD5 handled incorrect
cmimetype: text/plain
submitter: mic42
comment:
  The RFC states that the nonce-count is to be used to
  guard against replay attacks, and has to be increased
  for each time the nonce is sent.

  But the current Tcllib SASL code increases the
  nonce-count for every request, which leads to
  increasing nonce-count values between different sasl
  contexts.

  Example:
  set ctx [SASL::new -mechanism DIGEST-MD5 ...]
  # send a request, which fails, maybe because the
  password is wrong
  SASL::cleanup $ctx
  # nonce-count is now 1

  set ctx [SASL::new -mechanism DIGEST-MD5 ...]
  # try again with correct password
  # this fails because the server complains about a
  nonce-count of 2, while his internal counter just reached 1

  Michael


tkt_uuid: 1743868fffffffffffffffffffffffffffffffff
type: Patch
status: Open
resolution: None
subsystem: pop3d
priority: 5 Medium
foundin: None
title: Fix extra line between message headers
cmimetype: text/plain
submitter: howell
assignee: andreas_kupries
comment:
  pop3d sends messages with a blank line between each header line. This causes Multipart Mime messages not to be recognized. In particular pop3 client fails to recognized a multipart message sent by pop3d.

  The error is caused by both the pop3d package and the mime package handling the network crlf standard. mime appends \r to all headers for mime::buildmessage and mime::copymessage. pop3d fconfigures the socket channel to crlf.

  This diff mods pop3d to follow the mime package convention; leaving the channel as translation lf and adding \r to strings where required.

  It has been tested for message sizes that can be sent as one segment.  The test suite was not run.


tkt_uuid: 1695128fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Add backend 'semantic'
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  Create a backend which extracts all words which have been markup up in same way, and how (constants, options, commands, terms, etc. pp.), and return a dictionary (markup -> list of words).


tkt_uuid: 2595296fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_fa
priority: 5 Medium
foundin: None
title: state rename bugs then state has transition to itself
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-02-13T23:18:41
comment:
  Executing:
  -----
  grammar::fa fa
  fa state add a
  fa next a {} --> a
  fa state rename a b
  -----

  Produces:
  -----
  can't read "order(a)": no such element in array
      while executing
  "upvar #0 ${selfns}::trans_$order($sin) jump"
      ("foreach" body line 3)
      invoked from within
  "foreach srcitem $transinv($snew) {
  struct::list assign $srcitem sin sym
  upvar #0 ${selfns}::trans_$order($sin) jump
  upvar 0 jump($sym) destin..."
      ("rename" arm line 35)
  ----- the rest is skipped -----


tkt_uuid: 1672347fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: struct :: set
priority: 5 Medium
foundin: None
title: test set-1.0 fails on tcl 8.5a5
cmimetype: text/plain
submitter: rebum
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T07:22:43
comment:
  The test set-1.0 reports "setop" instead of ::struct::set
  in tcl 8.5a5

  Tested on Linux and FreeBSD.
  See attached patch.


tkt_uuid: 1589111fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Wrong keysym in combobox code
cmimetype: text/plain
submitter: pointsman
assignee: damonc
closer: dev_null42a
closedate: 2006-11-10T21:57:02
comment:
  This part of the BWidget Combobox code does work as
  intended (if it does) only by bug:

  proc ComboBox::_auto_post { path key } {
      ...
      if {([string length $key] > 1 && [string tolower
  $key] != $key) && \
  [string equal $key "Backspace"] != 0 && \
  [string equal $key "Up"] != 0 && \
  [string equal $key "Down"] != 0} {
   return
      }
      ...
  }

  There isn't a keysym "Backspace", that is "BackSpace".


tkt_uuid: 1019052fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: bwidget listbox makes wrong key-bindings
cmimetype: text/plain
submitter: nobody
assignee: damonc
closer: hobbs
closedate: 2004-09-14T23:47:13
comment:
  versions: 1.6 and 1.7
  Tcl: TclKit 8.4.5 and Tcl/Tk 8.4.6
  OS: SuSE Linux 9.1 running KDE 3.2.1, verified in the 
  BWidget demo from ActiveTcl 8.4.5 (BWidget 1.7)

  The BWidget ListBox binds the <Key-Up> and <Key-
  Down> events to the class ListBox, which refers to the 
  frame. It should however be bound to the canvas inside 
  that frame.

  A quick hack for me was to add these two lines to the 
  end of ListBox::create:

  bind $path.c <Key-Up> \
  [list ListBox::_keyboard_navigation $path -1]
  bind $path.c <Key-Down> \
  [list ListBox::_keyboard_navigation $path 1]

  There is probably a nice way of doing this....


tkt_uuid: 952391ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 5 Medium
foundin: None
title: Add new optimisation and statistics procedures
cmimetype: text/plain
submitter: arjenmarkus
assignee: nobody
closer: arjenmarkus
closedate: 2005-10-04T06:54:05
comment:
  The work by myself and others as published on the Wiki
  should be added to the math module:
  - Optimisation procedures
  - Interpolation techniques
  - Cluster analysis
  - Discrete and Fast Fourier Transform
  - Linear regression (not on the Wiki yet)
  - Complex numbers 

  The work involved:
  - Clean up the code
  - Define clear test cases
  - Write up the documentation

  NOTE: This is just a reminder for myself, as I am 
  willing to prepare the addition.


tkt_uuid: 532783ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: matrix
priority: 6
foundin: None
title: Linked matrix not propagating changes
cmimetype: text/plain
submitter: kenj
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-03-25T18:55:11
comment:
  The documentation for the ::struct::matrix operation implies 
  that after linking, changes to the matrix object will be propagated 
  to the linked array variable. However, it isn't happening. Here's a 
  simple test case run interactively:

  % package require 
  struct
  1.2
  % ::struct::matrix test
  test
  % test add columns 
  4
  % test add row {1 2 3}
  % test link arr
  % array get arr
  0,0 1 1,0 2 
  2,0 3 3,0 {}
  % test add row {a b c d}
  % array get arr
  0,0 1 1,0 2 2,0 3 
  3,0 {}

  Line 1245 of the source looks suspiciously like it has a 
  typo of the variable name "data":

  trace variable date  w  [list 
  ::struct::matrix::MatTraceOut $variable $name]

  However, 
  changing "date" to "data" in this line didn't work:

  % package 
  require struct
  1.2
  % ::struct::matrix test
  test
  % test add 
  columns 4
  % test add row {1 2 3}
  % test link arr
  % array get 
  arr
  0,0 1 1,0 2 2,0 3 3,0 {}
  % test add row {a b c d}
  can't set 
  "data(0,1)": can't set "array(0,1)": bad row index 1, row does not 
  exist


tkt_uuid: 1091764fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tclbench
priority: 5 Medium
foundin: None
title: runbench.tcl does not run on windows w/ msys
cmimetype: text/plain
submitter: pointsman
assignee: hobbs
closer: hobbs
closedate: 2004-12-27T19:34:49
comment:
  runbench.tcl exec 'echo' in proc getInterps:

  if {[catch {exec echo "puts \[info patchlevel\] ;
  exit" | \
  $interp} patchlevel]} {...}

  This does not work with msys, because it doesn't come
  with an echo binary (but only an echo written in terms
  of a shell script, which obviously isn't recognized as
  executable in an exec call). runbench.tcl seems to
  expect a cygwin environment (which has an echo.exe).

  Though, since both cygwin and msys (and any unix
  anyway) have a sh, I propose to change that code in
  getInterps to:

  if {[catch {exec sh -c "echo puts \[info patchlevel\]
  ; exit" | \
  $interp} patchlevel]} {...}

  With only this change, runbench.tcl runs under msys or
  a windows console with the msys binariers in the PATH.


tkt_uuid: 447141ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: None
priority: 5 Medium
foundin: None
title: Corrections for INSTALL_ROOT
cmimetype: text/plain
submitter: rmax
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-20T22:31:26
comment:
  $(INSTALL_ROOT) should not only be prepended to prefix
  and exec_prefix, but also to libdir and mandir to
  provide a complete installation to a virtual location.


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

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


tkt_uuid: 1416746fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: A Category Is Missing
priority: 5 Medium
foundin: None
title: grammar_me: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T05:59:39
comment:
  with -debug 1:

  Module: grammar_me
  modules/grammar_me/me_tcl.test
  - tcllib::testutils 1.0
  * grammar::me::tcl 0.1
  test name 'mevmtcl-icl_get-2.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_me/me_tcl.test
  test name 'mevmtcl-icl_get-2.1' re-used; prior use in
  /local/src/tcllib/modules/grammar_me/me_tcl.test
  test name 'mevmtcl-icl_get-2.0' re-used; prior use in
  /local/src/tcllib/modules/grammar_me/me_tcl.test


tkt_uuid: 1078215fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: calculus
priority: 5 Medium
foundin: None
title: Possible bug in Runge-Kutta method
cmimetype: text/plain
submitter: arjenmarkus
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2006-04-25T12:32:36
comment:
  Mark Stucky reported this in c.l.t.:

  I think that I've found a small bug / typo within
  tcllib 
  (tcllib::math::calculus)
  rungeKuttaStep routine.

  Possibly I am just missing something here (it wouldn't
  be the first time), 
  but
  here is the routine (from tcllib-1.7) with my suggested
  fix :

   proc ::math::calculus::rungeKuttaStep { t tstep xvec
  func } {

     set funcq    [uplevel 1 namespace which -command
  $func]

     #
     # Four steps:
     # - k1 = tstep*func(t,x0)
     # - k2 = tstep*func(t+0.5*tstep,x0+0.5*k1)
     # - k3 = tstep*func(t+0.5*tstep,x0+0.5*k2)
     # - k4 = tstep*func(t+    tstep,x0+    k3)
     # - x1 = x0 + (k1+2*k2+2*k3+k4)/6
     #
     set tstep2   [expr {$tstep/2.0}]
     set tstep6   [expr {$tstep/6.0}]

     set xk1      [$funcq $t $xvec]
     set xvec2    {}
     foreach x1 $xvec xv $xk1 {
        lappend xvec2 [expr {$x1+$tstep2*$xv}]
     }

     set xk2      [$funcq [expr {$t+$tstep2}] $xvec2]
     set xvec3    {}
     foreach x1 $xvec xv $xk2 {
        lappend xvec3 [expr {$x1+$tstep2*$xv}]
     }

     set xk3      [$funcq [expr {$t+$tstep2}] $xvec3]
     set xvec4    {}
     foreach x1 $xvec xv $xk3 {
        lappend xvec4 [expr {$x1+$tstep2*$xv}]

  >********************************************************************************
  >  Here is the "bug" : $tstep2 in the above line should
  actually be $tstep
  >  From the description above
  >           # - k4 = tstep*func(t+    tstep,x0+    k3)
  >  tstep is used rather than tstep*0.5 (ie tstep2)
  >********************************************************************************

     }

     set xk4      [$funcq [expr {$t+$tstep}] $xvec4]
     set result   {}
     foreach x0 $xvec k1 $xk1 k2 $xk2 k3 $xk3 k4 $xk4 {
        set dx [expr {$k1+2.0*$k2+2.0*$k3+$k4}]
        lappend result [expr {$x0+$dx*$tstep6}]
     }

     return $result
  }


  --Mark 


tkt_uuid: 1267112fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: doctools
priority: 5 Medium
foundin: None
title: doctools - Add table support
cmimetype: text/plain
submitter: techentin
assignee: andreas_kupries
comment:
  When composing the units man page, I used [example] to
  format the tables of units, because that appeared
  similar to preformatted, and was the only way I saw to
  make a table.

  It would be better if doctools supported [table]
  commands.  The html, latex, and nroff engines could be
  extended to support table output.  Tmml and wiki
  formats don't support tables, so those engines would
  have to generate some equivalent, perhaps preformatted,
  output.


tkt_uuid: 1403452fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: mime
priority: 5 Medium
foundin: None
title: parsedatetime routine using clock format incorrectly
cmimetype: text/plain
submitter: clmcavaney
assignee: mrose
closer: andreas_kupries
closedate: 2006-01-12T00:11:45
comment:
  G'day,
  I have found a bug in the mime package (version 1.4.1)
  for the parsedatetime routine.

  The "%e" format option is being used in stead of "%m"
  for months.  This affects the selection of a short or
  long month from the MONTHS_SHORT and MONTHS_LONG arrays.

  I suggest the following changes:
  return [lindex $MONTHS_LONG [expr [clock format $clock
  -format %m] - 1]]

  in place of 
  return [lindex $MONTHS_LONG [clock format $clock
  -format %e]]

  and similar for the MONTHS_SHORT array.

  Christopher


tkt_uuid: 944995ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: xml content/type
cmimetype: text/plain
submitter: coldstore
assignee: welch
closer: welch
closedate: 2004-05-04T22:31:14
comment:
  Reported as tclhttpd bug '[ 698549 ] direct url getting
  xml content/type' at
  http://sourceforge.net/tracker/index.php?func=detail&aid=698549&group_id=12884&atid=112884

   when using in ie ActiveXObject("Microsoft.XMLHTTP");
  to get xml from a direct_url the is a server 500 error.
  the problem is the content-type:
  Unknown Content-Type: text/xml
  while executing
  "ncgi::nvlist"(procedure "ncgi::parse" line 8)


  this is because ncgi package does not reconize test/xml
  type.
  adding it to ncgi solves the problem:

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

  I'm handpassing this to you.


tkt_uuid: 3612465fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: inifile
priority: 5 Medium
severity: Minor
foundin: None
title: Spaces around section line specifications should be ignored
cmimetype: text/plain
submitter: takatsuki
assignee: aku
comment:
  When parsing a file, if a section line contains some leading or trailing spaces (outside the square brackets), it is not recognized. A sample ini file reproducing the error would be (please note the extra trailing in the section line: "[General]   "):

  [General]    
  key=value
  key2=value2


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

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


tkt_uuid: 546423ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Out of Date
subsystem: Documentation
priority: 5 Medium
foundin: None
title: tcllib manpage
cmimetype: text/plain
submitter: mgbacke
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-04-11T22:45:27
comment:
  tcllib should have its own manpage. I would have added
  it myself via cvs but wasn't sure where it should go,
  so I'll leave it to whomever is most in tune with the
  doc's.


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


tkt_uuid: 1477590fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: -vcmd option not supported in Tile version of tkchat
cmimetype: text/plain
submitter: treincke
assignee: patthoyts
closer: treincke
closedate: 2006-04-27T12:25:30
comment:
  Line 3729 of tkchat.tcl (Version 1.334) uses the option 
  -vcmd for an entry. While this is ok when tkchat is 
  used without Tile, this shorthand option is not 
  supported in Tile and thus the Tile version of tkchat 
  will throw an error here (Click on Preferences -> 
  Macros to see the error)

  This can be avoided by not using the shorthand here. 
  Using -validatecommand instead makes tk::entry and ttk
  ::entry happy (thanks to Reinhard Max for this 
  proposal!)


tkt_uuid: 2993200fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: base64
priority: 7 High
foundin: None
title: ascii85 encode/decode implementation in pure tcl
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-05-03T21:48:51
comment:
  When working with postscript files sometimes the need arises to work with ascii85 encoded strings as described in the Postscript Language Reference Manual.
  Here is an implementation on pure Tcl for inclusion on tcllib.


tkt_uuid: 1005948fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: LabelComboBox and LabelSpinBox
cmimetype: text/plain
submitter: oskin
assignee: nobody
closer: hobbs
closedate: 2004-09-14T20:04:38
comment:
  It was - convenient to have such widgets with
  properties ComboBox and SpinBox in the version 1.2.x.
  It is convenient and readable at writing a code, and
  for example the command "$w -state disbled" will effect
  (to change color) both on Label and on ComboBox.
  In fact is LabelEntry - why to not make LabelComboBox
  and LabelSpinBox? :)
  Itself would write and send - a patch, but it is not
  confident, that I can write a good code.


tkt_uuid: 1076923fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::close failing
cmimetype: text/plain
submitter: keithv
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-15T00:06:42
comment:
  I'm consistently getting an error while 
  calling ::ftp::close after downloading multiple files. The 
  error message reads 
    error reading "sock1868": connection reset by peer 
    while executing "gets $sock bufline" 
    (procedure "::ftp::StateHandler" line 16)


  I dug into this a bit and it appears to be a timing error.. 
  It occurs after a "QUIT" has been sent to the server 
  and ::ftp::StateHandler is trying to read the goodbye 
  lines but the connection gets reset before it can do so.

  The simplest solution two fold: first wrap the "gets" in a 
  catch and setting number to 0 when it fails. Second, in 
  the error handling code don't give error 
  message "Service not available" if $ftp(State) 
  eq "quit_sent". I've attached a file with the updated 
  procedure with the fix.

  An annoying aspect of this bug is that it occurs in a 
  background handler and there's a vwait that doesn't get 
  satisfied--effectively making this uncatchable.


tkt_uuid: 2807160fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox should use unmanaged scrollwindow
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-06-16T15:39:49
comment:
  When one of the values of a combobox contains a long string, not only the horizontal, but also the vertical scrollbar appears (even when there are only a few entries). It seems the window height is always [nr of entries]-1 in that case.

  Example:
    ComboBox .cb -textvariable v -values {a b somelooooooooooooooooooooooooongstring c d}
    pack .cb
  and click on the arrow button.

  The attached patch solves this.


tkt_uuid: 576873ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: add autoscroll to tklib
cmimetype: text/plain
submitter: lvirden
assignee: afaupell
closer: afaupell
closedate: 2003-07-28T06:40:05
comment:
  http://mini.net/tcl/950 is a package for Tk that turns
  display of a gridded scrollbar on or off, depending on
  whether it is needed or not.


tkt_uuid: 893259ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 8
foundin: None
title: Add simple plotting and charting package
cmimetype: text/plain
submitter: arjenmarkus
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-04-23T20:18:12
comment:
  I have written a simple package for drawing plots and
  charts:
  - xy-plots
  - piecharts
  - barcharts
  - polar plots

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

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

  The basic design criterium was:

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


tkt_uuid: 1800408fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: Extra spaces around link text
cmimetype: text/plain
submitter: sdeasey
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-09-25T21:21:28
comment:
  Using cvs HEAD, the following doctools markup:

    See [cmd ns_rollfile] for details...

  Produces this HTML output:

    See <b class='cmd'><a href="../ns_rollfile.html"> ns_rollfile </a></b> for details...


  There is extra space before and after 'ns_rollfile' within the anchor tag.

  In the above example it's not noticeable as runs of spaces are collapsed in HTML, but if there is anything other than a space surrounding the link, e.g. brackets, parentheses or question marks, the extra spaces break the formatting.


tkt_uuid: 601257ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: fix missing content boundary workaround
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: mrose
closedate: 2002-08-28T19:29:35
comment:
  In parsepart, the following code checks for end-of-
  content without a boundary marker. 

      while {$moreP} {
          if {$fileP} {
              if {$pos > $last} {
          #        error "termination string missing ...
                    set line "--$boundary--
              } else {
   
  Later tests on 'line' assume that 'x' contains [string 
  length $line].  If the above code sets line in this way, an 
  infinite loop occurs.

  Need to add
                    set x [string length $line]

  after 'set line'.

  Attached patch does this.


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


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

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


tkt_uuid: 943145ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 7 High
foundin: None
title: doctools - [namespace] markup request
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-05-04T22:10:44
comment:
  Please add a [namespace] markup command
  to the doctools format for marking a namespace
  name in the documentation.


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

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

  on would expect (in the generated html):

  <input ... size="20"> 

  but one gets:

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

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

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

  Michael


tkt_uuid: 2993029fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: aes
priority: 5 Medium
foundin: None
title: aes procedure gives an error _just_ with a given vector
cmimetype: text/plain
submitter: jmarro
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-07-06T19:41:09
comment:
  After some "test and error", I find out that the vector that I am trying to decrypt triggers an error !!! but with similar vector the error does not happen!!!
  I upload a file with the ok vectors, and the bad one.
  Please, give me some feedback asas. Thank yo very much.
  Josep


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

  Module: stooop
  modules/stooop/stooop.test
  - tcllib::testutils 1.0
  WARNING: cleanupTests deleting /local/src/tcllib/91...
  env array elements created:     STOOOPCHECKOBJECTS


tkt_uuid: 232017ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
priority: 5 Medium
title: "string" subcommands require at least Tcl8.1
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
comment:
  Usage of "string" subcommands: is, equal, map, repeat, replace, totitle
  are not implemented in tcl 8.0.

  tcllib modules should either "package require Tcl 8.1", or be made
  backwards compatible to tcl 8.0.

  The following tcllib source files are affected:
      base64.tcl, compare.tcl, typedCmdline.tcl, ftp.tcl, ftpd.tcl,
      html.tcl, mime.tcl, ncgi.tcl, pop3.tcl, profiler.tcl, graph.tcl,
      queue.tcl, stack.tcl, tree.tcl, uri.tcl


tkt_uuid: 1176295fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: tcllib: request for new module
priority: 5 Medium
foundin: None
title: memoize package
cmimetype: text/plain
submitter: nobody
assignee: nobody
comment:
  A package that can be used to cache, load and save the
  values of expensive pure function calls i.e function
  without side effects

  Implmentation: http://wiki.tcl.tk/memoize

  Perl has it as a default package  since 5.8.0
  http://perl.plover.com/Memoize/

  regards,,
  Detlef


tkt_uuid: 412932ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ftpd on win2000
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2001-10-31T13:29:18
comment:
  when running the server on a windows 2000 box
  the file transfers always fails, no errors are issued 
  but the downloaded file never downloads complete.and 
  ex. the pwd command does not work etc....

  i even tried it on a win98 with the same result.


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

  * rc4 1.1.0
  > pure Tcl - array based
  > pure Tcl - list based
  WARNING: cleanupTests deleting
  /local/src/tcllib/rc4test.data...
  WARNING: cleanupTests deleting
  /local/src/tcllib/rc4test2.data...


tkt_uuid: 3556779fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: tklib :: widget
priority: 5 Medium
foundin: None
title: No calendar in August
cmimetype: text/plain
submitter: klu
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-08-14T16:45:00
comment:
  I use widget_calendar with this command:
  widget::calendar .z5fd.app.frdia.date -dateformat "%Y-%m-%d" -language de -textvariable zAr_uiDia(exposureDate)  -command z5ui_selectedDate

  In July all works fine  ..  today, Index 08 = August ???
  Executing the script i get:

  bad index "08": must be integer?[+-]integer? or end?[+-]integer? (looks like invalid octal number)
  bad index "08": must be integer?[+-]integer? or end?[+-]integer? (looks like invalid octal number)
      while executing
  "lindex $LANGS(mn,$lang) $month"
      (procedure "::widget::calendar::Snit_methodformatMY" line 9)
      invoked from within
  "$self formatMY $data(month) $data(year)"
      (procedure "::widget::calendar::Snit_methodRefresh" line 42)
      invoked from within
  ".z5fd.app.frstor.date Refresh"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [linsert $args 0 $self]"
      invoked from within
  "::snit::RT.CallInstance ::widget::calendar::Snit_inst1 Refresh"
      ("after" script)
  bad index "08": must be integer?[+-]integer? or end?[+-]integer? (looks like invalid octal number)
  bad index "08": must be integer?[+-]integer? or end?[+-]integer? (looks like invalid octal number)
      while executing
  "lindex $LANGS(mn,$lang) $month"
      (procedure "::widget::calendar::Snit_methodformatMY" line 9)
      invoked from within
  "$self formatMY $data(month) $data(year)"
      (procedure "::widget::calendar::Snit_methodRefresh" line 42)
      invoked from within
  ".z5fd.app.frstor.date Refresh"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [linsert $args 0 $self]"
      invoked from within
  "::snit::RT.CallInstance ::widget::calendar::Snit_inst1 Refresh"
      ("after" script)

  I got this error both - on a linux-System and on win7, 
     active-tcl 8.5.11,  tklib 0.5

  well, i hope, you can help
  regards Bernd


tkt_uuid: 2928355fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ftpd
priority: 5 Medium
foundin: None
title: ftp::Rename causes ftpd to crash
cmimetype: text/plain
submitter: martinao
assignee: andreas_kupries
comment:
  Calling ftp::Rename as client causes the ftp-daemon into which I logged in to crash in proc ::ftpd::command::RNTO, because the variable sock is unknown. Including "upvar #0 ::ftpd::$sock data" - as used in the other procs - resolves the application error.


tkt_uuid: 672956ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: math
priority: 8
foundin: None
title: New submodule for math - optimisation
cmimetype: text/plain
submitter: arjenmarkus
assignee: kennykb
closer: andreas_kupries
closedate: 2003-04-14T07:32:07
comment:
  I would like to submit a first version of a new
  submodule, optimize.
  It contains two working procedures, to optimize a given
  function. Work is being carried out to add a linear
  program solver.

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


tkt_uuid: 553835ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: stooop
priority: 5 Medium
foundin: None
title: Use [uplevel 1].
cmimetype: text/plain
submitter: dgp
assignee: jfontain
closer: dgp
closedate: 2002-05-20T21:32:30
comment:
  The [uplevel] command is used a great deal throughout
  stooop, but in all examples I saw, the optional "level"
  argument is omitted.

  It will improve performance if an explicit [uplevel 1]
  is used, rather than depending on the default.

  When the level argument is omitted, [uplevel] spends
  time trying to convert its first argument to an
  integer -- wasted time.


tkt_uuid: 1693391fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Rejected
subsystem: bwidget
priority: 5 Medium
foundin: None
title: TitleFrame doesn't collapse after deleting all widgets
cmimetype: text/plain
submitter: schroedter
assignee: damonc
closer: oehhar
closedate: 2009-06-10T15:16:24
comment:
  I the following sample the TitleFrame reduces it's size, when the first widget $f.foo is deleted, but it doesn't collapse after deleting the last widget $f.bar:

  ##########
  package require BWidget
  TitleFrame .tf -text "title"
  grid .tf -sticky news

  set f [.tf getframe]
  label $f.foo -text "foo foo foo"
  label $f.bar -text "bar bar bar"
  grid $f.foo -sticky news
  grid $f.bar -sticky news

  after 3000 [list destroy $f.foo] 
  after 6000 [list destroy $f.bar] 
  ##########

  Rolf.


tkt_uuid: 1567320fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: sasl
priority: 5 Medium
foundin: None
title: hpux, testcase SASL-DIGESTMD5-4.0 starts and hangs
cmimetype: text/plain
submitter: andreas_kupries
assignee: patthoyts
closer: patthoyts
closedate: 2006-10-02T21:21:36
comment:
  Running the tcllib testsuite on a hpux-parisc machine
  the testcase mentioned in the subject hangs without any
  type of feedback.


tkt_uuid: 1115335fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
resolution: Not Applicable Here
subsystem: mclistbox
priority: 5 Medium
severity: Minor
foundin: None
title: mclistbox patch: select color
cmimetype: text/plain
submitter: koloska
assignee: afaupell
closer: aku
closedate: 2456444.39844721
comment:
  years ago, I have made a small change to mclistbox to
  get short options for -foreground and -background (-fg
  and -bg) and enable -selectforeground -selectbackground.

  Here it is now as diff to the current CVS.


tkt_uuid: 860753ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 5 Medium
foundin: None
title: plain justification does not work with hyphenation
cmimetype: text/plain
submitter: totschnig
assignee: vogeler
closer: andreas_kupries
closedate: 2004-03-07T07:57:18
comment:
  the script

  package require textutil

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

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

  generates the following error:

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

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


tkt_uuid: 772430ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: snit
priority: 5 Medium
foundin: None
title: snit: clean up error stacks, hide internals.
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
comment:
  From a mail by Will, author of snit:

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


tkt_uuid: 446584ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 1 Zero
foundin: None
title: Missing documentation
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-13T17:39:01
comment:
  The modules "cmdline", "base64", "fileutil" and "ftp" 
  neither have manpages nor other documentation.

  The modules "mime" and "smtp" have no manpages, but 
  HTML based documentation.


tkt_uuid: 1642050fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: PasswdDlg <Return> traversal wrong when -passwdstate disable
cmimetype: text/plain
submitter: cbascom
assignee: damonc
closer: oehhar
closedate: 2009-06-11T15:29:12
comment:
  Create a PasswdDlg with -passwdstate disabled.  Type in the login name and hit Return.  It should destroy the dialog and perform the login, but instead it sets focus to the disabled password entry field.

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


tkt_uuid: 1409083fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::find documentation improvement
cmimetype: text/plain
submitter: glennjnn
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-18T17:56:50
comment:
  1.  typo:  "loose" -> "lose"
  2. The man page does not indicate that the filtercmd
  should return a boolean value.  An example would be
  warranted.  Suggested text to be appended to what
  currently exists:
  =====
  The result of [arg filtercmd] is a boolean value that
  indicates if the current file should be included in the
  list of interesting files.  Example:

  # find tcl files
  package require fileutil
  proc is_tcl {name} {return [string match *.tcl $name]}
  set tcl_files [fileutil::find . is_tcl]
  =====


tkt_uuid: 440051ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 3 Low
foundin: None
title: latest sha1 test suite fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-20T20:36:52
comment:
  Note: I don't see sha1 listed in the sf tcllib project
  categories.

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

  when I run the test from the top level directory, I get
  this error.

  Module: sha1
  modules/sha1/sha1.test
  sha1 1.0 (pure Tcl)

  ==== sha1-1.0 sha1 FAILED
  ==== Contents of test case:

      catch {::sha1::sha1} result
      set result

  ---- Result was:
  wrong # args: should be "::sha1::sha1 msg"
  ---- Result should have been (exact matching):
  no value given for parameter "msg" to "::sha1::sha1"
  ==== sha1-1.0 FAILED

  ==== sha1-1.1 sha1 FAILED
  ==== Contents of test case:

      catch {::sha1::hmac} result
      set result

  ---- Result was:
  wrong # args: should be "::sha1::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "key" to "::sha1::hmac"
  ==== sha1-1.1 FAILED

  ==== sha1-1.2 sha1 FAILED
  ==== Contents of test case:

      catch {::sha1::hmac key} result
      set result

  ---- Result was:
  wrong # args: should be "::sha1::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "text" to "::sha1::hmac"
  ==== sha1-1.2 FAILED


tkt_uuid: 1518803fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget::write fails for NoteBook widget
cmimetype: text/plain
submitter: glennjnn
assignee: damonc
closer: dev_null42a
closedate: 2006-12-21T00:01:11
comment:
  The error message: 
    invalid command name "-classonly::use"

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

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

  The following context diff will fix it:

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


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

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


tkt_uuid: 1376323fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: smtp
priority: 5 Medium
foundin: None
title: large message size causes error
cmimetype: text/plain
submitter: nobody
assignee: mrose
closer: patthoyts
closedate: 2006-04-21T11:36:20
comment:
  I reported this issue to ActiveState. You can 
  reference it by going to 
  http://bugs.activestate.com/show_bug.cgi?id=42067

  Basically, when using a remote server, sending a 
  message that is greater than ~9000 bytes on a windows 
  XP pro platform causes the function to crash.

  Since I don't want to upload everything all over 
  again please get the info at ActiveState.

  This issue is really limiting what I'm trying to do.


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

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

    Problem: 

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

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

    the bug is in the code:

     [expr {$secs*1000}]

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

    to fix this problem i add some code:

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


  mfg

    aotto


tkt_uuid: 521386ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Dialog freezing on Windows (and patch)
cmimetype: text/plain
submitter: bach
assignee: hobbs
closer: hobbs
closedate: 2002-06-04T20:56:58
comment:
  The Dialog::draw routines freezes on Windows when the
  toplevel of the window is in state withdrawn, due to a
  tkwait visibility waiting forever.

  The supplied patch just skips over the visibility part
  if this is the case.

  Effects to existing code:
  Unknown, but improbable.


tkt_uuid: 1710644fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: treeql
priority: 5 Medium
foundin: None
title: No {expand} for you!
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-05-01T17:00:37
comment:
  The file treeql85.tcl uses the
  {expand} syntax which is no longer
  approved.  Migrate to the {*} replacement.


tkt_uuid: 2795699fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 5 Medium
foundin: None
title: does not work on TCL 8.4?
cmimetype: text/plain
submitter: al_chou
assignee: kanryu6
closer: kanryu6
closedate: 2009-05-24T03:28:43
comment:
  I tried copying the tcllib 1.11.1 yaml package into my ActiveTcl 8.4.19 lib and got "can't read data(current)" when I ran ::yaml::yaml2dict.  Looking at the yaml code, it looks like it relies on TCL 8.5 array behavior where "incr a(1)" is legal even if a(1) doesn't exist yet.  That wasn't legal in TCL 8.4, so despite the fact that dict was backported to 8.4 and yaml package requires dict if running on a TCL version < 8.5, it doesn't actually work in 8.4.

  I haven't gone through the code changing the incr calls on uninitialized data(current) because I was afraid there might be other TCL 8.4 incompatibilities beyond just those, but I may do that in the near future after my current project ships (until then I can't really justify a lot of yak shaving).


tkt_uuid: 2801896fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: jpeg
priority: 5 Medium
foundin: None
title: jpeg package: adds support for GPS Exif tags
cmimetype: text/plain
submitter: mdplumlee
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-06-05T20:01:50
comment:
  I needed something to interpret GPS tags in Exif headers, so I found the jpeg package and added it.  Nice job whoever wrote the _exif routine--it was very easy to extend.  I haven't done a patch before, so I'm probably doing it all wrong--I'm attaching the whole file I updated, and just put comments in the vicinity of my changes (I didn't comment the place where I added an optional argument...)--look for "mdp".


tkt_uuid: 521590ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 5 Medium
foundin: None
title: tabify2/untabify2 fails on empty string
cmimetype: text/plain
submitter: jenglish
assignee: andreas_kupries
closer: jenglish
closedate: 2002-02-26T23:36:20
comment:
  textutil::untabify2 and textutil::tabify2 both fail on
  the empty string, due to an uninitialized variable.  

  Attached patch fixes the bug and adds this test to the
  test suite.

  On an unrelated note: are 'tabify' and 'untabify'
  really needed?  They don't do anything useful (or that
  couldn't be accompished with [string map] or [regsub]
  in the unlikely event that someone does want this
  behaviour); they should probably be replaced with the
  tabify2/untabify2 implementations.


tkt_uuid: 3162548fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: tar
priority: 8
foundin: None
title: tar -- support existing/nonseekable channels
cmimetype: text/plain
submitter: ferrieux
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-01-20T19:46:14
comment:
  The attached patch adds a "-chan" option to [contents/stat/get/untar/create]  (but *not* [add/remove], foor good reasons), which interprets the first argument as a channel name instead of filename. This allows to pass already opened channels, seekable or not. One typical usage is the emulation of 'tar cf - | ...':

     ::tar::create  $pipe  $listoffiles -chan

  Which is typically useful for Wub, to serve content that is to be tarred on-the-fly, instead of (currently) using tempfiles.
  The same applies on input, where seek is emulated by repeated reads when the channel is not seekable; similarly a "tar tf -" can thus be done on any pipe or socket.

  Note that the responsibility for 'fconfigure -translation binary' is left to the caller; only raw IO are done on the provided channel, and it is left open on return. 

  I have not included the (needed) documentation update; I would appreciate a hand since I don't have the renderer handy ;-)


tkt_uuid: 1213646fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 2
foundin: None
title: French locale (fr) is blocking man pages making
cmimetype: text/plain
submitter: sarnold75
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-06-06T21:20:14
comment:
  I tried to install tcllib-1.7 from the tar.gz archive.
  On my computer (under WinME) the doc generation step
  throws an error that I could localize in
  'modules/doctools/mpformats/fr.msg'.
  mcset (from msgcat package) is used with an incorrect
  number of arguments :

  mcset fr "tag" "english desc" "french desc"

  All we need to fix this bug is to remove the "english
  desc" from all similar calls. And this is still present
  in the current CVS snapshot.
  May this be useful.
   Stephane


tkt_uuid: 1061100fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Works For Me
subsystem: dns
priority: 5 Medium
foundin: None
title: ip::equal should only look at significant bits
cmimetype: text/plain
submitter: crunchyoats
assignee: patthoyts
closer: patthoyts
closedate: 2007-10-08T11:44:22
comment:
  It seems that the comparison, the two must have identical bits in the 
  longest match, but I think what is actually wanted is identical bits in 
  the shortest match.  

  Both the first and second comparisons should match, but the
  first succeeds and the second doesn't.  The third succeeds
  when I make sure that the longest has the same bits as the
  shortest.

  The fourth example is what I would use this for most commonly (is 
  this address a part of this subnet - would it match a route in the
  routing table, eg)?  However it will always fail since the subnet
  doesn't have all the significant bits of the /32.  

  I hope this is a bug and not purposeful because I would really like the 
  other feature.  :)

  % ip::equal 129.12/16 129.12/24
  1
  % ip::equal 129.12/12 129.12/16
  0
  % ip::equal 129/12 129/16
  1

  % ip::equal 129.12/16 129.12.1.1/24        
  0

  % ip::equal 129.12/16 129.12.1.1
  0
  % ip::equal 129.12/16 129.12.0.1/24
  1
  % ip::equal 129.12/16 129.12.1.1/24        
  0


tkt_uuid: 681119ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: bwidget 1.x
priority: 5 Medium
severity: Minor
foundin: None
title: bwidget - Add percentage text to progressbar
cmimetype: text/plain
submitter: funkhouser
assignee: oehhar
closer: oehhar
closedate: 2456612.18788455
comment:
  Attached is a patch that shows the percentage of the 
  progressbar.  This new behavior is optional and by 
  default, it is disabled.


tkt_uuid: 2144802fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: snit
priority: 5 Medium
foundin: None
title: snit's from command underdocumented, and possible flaw
cmimetype: text/plain
submitter: andreas_kupries
assignee: duquette
comment:
  It is not documented that 'from argvName option ?default?' only finds the first occurence of the option.
  It is not documented that no attempt is made to resolve how to handle multiple occurences of the same option.

  The flaw: from is able to find an option name, even if it was actually the value for a different option and thus not really an option.

  set argv {-foo -bar -snarf 0}
  from argv -bar x
  => returns -snarf as value
  and argv changes to {-foo 0}

  Should have returned x, as -bar is not present as option, only as value to option -foo.


tkt_uuid: 520907ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Notebook tab color bug (and patch)
cmimetype: text/plain
submitter: bach
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T20:23:54
comment:
  Motivation:

  Using another color than the standard grey, I saw that
  the Notebokk tabs do not honor the chosen background
  color. The submitted patch goes a step further and adds
  a -tabbackground (similar to -activebackground) option
  to be able to specify another colour if wanted.

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


tkt_uuid: 1385688fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: pop3
priority: 5 Medium
foundin: None
title: pop3 - New retrieval method + minor performance improvement
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
comment:
  Attached is the entire pop3.tcl with the proposed 
  changes.  I took the liberty of bumping up the 
  version from 1.6.3 to 1.7.  Note that this code has 
  actually been in operation for almost two years.

  First a minor performance improvement in RetrFast - 
  don't spend time splitting potentially large message 
  if not doing any debug logging.

  Second is a new retrieval method - tofile.
  Since POP3 messages can be very large, with 
  attachments that may never need to be processed in 
  tcl, to minimize memory usage, it may be best to 
  write the retrieved message to a temp file and return 
  the temp filename instead of the entire message.

  # Alex Hisen (alex@am.net) 2005-12-18:
  # In order to provide support for the new tofile 
  retrieval method
  # we need a way to generate temporary file 
  paths/names.
  # We first try to use an AOLserver command if 
  available.
  # If not we try to see if our version of Tcl supports
  # the file tempfile subcommand (see TIP #210:
  # http://www.tcl.tk/cgi-bin/tct/tip/210.html )
  # Finally we fallback to the tcllib fileutil package.
  # Note that our package require fileutil is caught, 
  so even
  # if you don't have any of the three methods, this 
  package
  # will work fine as long as you don't use tofile 
  retrieval.
  #
  # The Tempfile proc we create in our namespace 
  operates
  # the way TIP #210 prescribes - it opens the file for 
  write,
  # returns the open file channel, and sets the 
  supplied variable
  # to the full path and name of the created temporary 
  file. 


tkt_uuid: 526404ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: tclbench
priority: 5 Medium
foundin: None
title: new [catch] benchmark: complex bodies
cmimetype: text/plain
submitter: msofer
assignee: msofer
closer: msofer
closedate: 2002-03-26T20:21:14
comment:
  On finding an error, [catch] scans all exceptionRanges
  of the bytecode. I am planning to patch
  GetExceptRangeForPc (in generic/tclExecute.c) with a
  faster algorithm (see Tcl-patch  #453709).

  I enclose here a patch which is necessary to illustrate
  the improvement, as it is only important when [catch]
  is part of a complex proc body, with many ranges and
  many nesting levels.

  Any comments before I commit?


tkt_uuid: 457489ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: httpd
cmimetype: text/plain
submitter: andreas_kupries
assignee: nobody
closer: andreas_kupries
closedate: 2001-11-13T06:04:41
comment:
  Add the kernel of an HTTP server as module.
  Just the core part, i.e. collection of incoming
  requests. Dispatch via a singe callback. Everything
  else can be grafted to this from there.

  Not a replacement for TclHTTPd, much more lightweight
  Could be used as part of TclHTTPd. See the ftpd
  module for an example (No storage access in the
  module itself, only hooks to delegate this to the
  sourrounding code).

  Jeff mentioned a micro server used in the testsuite
  of tcl. This could be a useful starting point.


tkt_uuid: 2418580fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: log
priority: 5 Medium
foundin: None
title: log debug level is suppressed by default
cmimetype: text/plain
submitter: jxmercog
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-12-12T02:57:53
comment:
  If you do a "package require log" then "log::lvIsSuppressed debug" the command returns a 1.  All the other levels return 0.  I placed a puts statement in the eval portion of log.tcl after the suppressed array is created and debug is set to 0 but once the package finished initializing it is a one. 
  I was able to duplicate this in tcl version 8.3 on HP-UX and with activestates windows install of 8.5.2.

  I found this while trying to turn on the verbose switch in the ftp package.  I ended up having to execute "::log::lvSuppress debug 0" before executing any ftp command to get the ftp package to print anything out.

  Thanks,

  John Mercogliano


tkt_uuid: 486547ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: struct :: graph
priority: 5 Medium
foundin: None
title: note for future struct::graph developmen
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  Perl has a number of modules dealing with graphs -
  perhaps some useful code could be garnered by looking
  at modules such as
  http://www.cpan.org//authors/id/N/NE/NEILB/ where the
  author has a collection of
  modules for reading and writing directed graphs in a
  variety of formats. 


tkt_uuid: 1951544fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: tcllib: request for new module
priority: 6
foundin: None
title: YAML module add
cmimetype: text/plain
submitter: kanryu6
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-05-22T19:08:23
comment:
  I impremented a load/dump library for YAML.

  Now, the library name is YAPT.(YAml Parser for Tcl)
  But according to the naming convention of tcllib, this library name might be 'yaml'?

  Although whichever of two names is satisfactory for me, I want to continue development by the determined name.

  Comments?


tkt_uuid: 1099581fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: doctools
priority: 5 Medium
foundin: None
title: New module submission: docstrip
cmimetype: text/plain
submitter: lars_h
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-15T00:59:14
comment:
  This is a suggested new module for tcllib, containing two 
  packages 'docstrip' and 'docstrip::util'.

  What the docstrip package provides is primarily the ability 
  to use source files that are not in the traditional "raw code" 
  form, but may contain also much other material (typically 
  documentation). Secondarily this makes it convenient to use 
  a form of literate programming that is very common in the 
  LaTeX community also for Tcl programs.

  (For an example, see
    http://cvs.sourceforge.net/viewcvs.py/alphatcl/Developer/
  Source/dialogs/dialogsNew.dtx?rev=HEAD&view=log   
  (source file)
  and
    http://cvs.sourceforge.net/viewcvs.py/alphatcl/Help/
  Dialogs%20Help.pdf?rev=HEAD&content-type=application/
  pdf   (typeset form of the above)
  .)

  The attached archive contains seven files.
    docstrip.tcl
    docstrip.man
    docstrip.test
    docstrip_util.tcl
    docstrip_util.man
  are the traditional .tcl sources, doctools-style 
  documentation, and test suite required a tcllib module. The 
  sixth file
    tcldocstrip.dtx
  is the _actual_ source for the entire module. The first five 
  files can be regenerated from it by LaTeXing the seventh file
    tcldocstrip.ins
  For what good would a source documentation system be if 
  one couldn't use it to document itself?


tkt_uuid: 2691870fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: determineScale with close numbers
cmimetype: text/plain
submitter: relaxmike
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-03-20T18:19:51
comment:
  Hi,
  With Plotchart 1.6.1, used in Tcl 8.4.

  % package require Plotchart
  1.6.1
  % Plotchart::determineScale 0.99999999999999911  1.0000000000000007
  integer value too large to represent

  The cause is in the computation of nicemin :

  set nicemin [expr {$step*$factor*int($xmin/$factor/$step)}]

  Here the value of the factor is very low :

  dx = 1.55431223448e-015
  expon = -14
  factor = 1e-014
  step = 0.2
  xmin = 0.99999999999999911

  so that the value $xmin/$factor/$step is not representable as a 32 bit integer, used in Tcl 8.4.
  In fact, the relative shift between the 
  two numbers is 1.e-15, very close to the 
  precision of double precision floating 
  point numbers.

  A possible fix is to compute the relative shift,
  and to modify the inputs so that at least 8 significant digits are different.
  The modified version gives the result :

  % catch {Plotchart::determineScale 0.99999999999999911  1.0000000000000007 0 8} errmsg ; set errmsg
  expon = -8
  factor = 1e-008
  step = 0.2
  xmin = 0.999999995
  0.999999994 1.000000006 2e-009

  The patched version is in attachment of the bug report.

  Best regards,

  Michael


tkt_uuid: 1272836fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: bignum :: float
priority: 5 Medium
foundin: None
title: math::bigfloat - failed tests with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: sarnold75
closer: sarnold75
closedate: 2005-08-30T16:31:22
comment:
  ==== bigfloat-round-1.0 eval : 'tostr [round [fromstr
  $x]]' FAILED
  ==== Contents of test case:
  uplevel 1 $code
  ---- Result was:
  1
  ---- Result should have been (exact matching):
  0
  ==== bigfloat-round-1.0 FAILED


  ==== bigfloat-round-1.0 eval : 'tostr [round [fromstr
  $x]]' FAILED
  ==== Contents of test case:
  uplevel 1 $code
  ---- Result was:
  -1
  ---- Result should have been (exact matching):
  0
  ==== bigfloat-round-1.0 FAILED


tkt_uuid: 2840180fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tar
priority: 8
severity: Severe
foundin: None
title: Incorrect prefix/name split?
cmimetype: text/plain
submitter: lars_h
assignee: aku
closer: aku
closedate: 2456701.77002792
comment:
  While digging around, I encountered a discrepancy between what the tar package does and how the tar file format is documented here:
  http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5&manpath=FreeBSD+8-current

  The problem is with how a filename is split between the name and prefix fields of the header, when the filename is longer than 100 characters. The tar package simply puts the last 100 characters in "name" and what comes before it in "prefix". That tar manpage rather says that the split _must happen at a slash_, and that a slash will be inserted between the prefix and name when joining the two up again.[Section "POSIX ustar Archives", description of "prefix"]

  I haven't been able to actually test what actual tar utilities do with name and prefix, however; some basic attempts (at tclsh prompt) of mine of making a tarfile with one item that has name "name" and prefix "prefix" just results in tar saying "This does not look like a tar archive" :-(


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

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

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


tkt_uuid: 470206ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: HTTP Redirect for TkChat
cmimetype: text/plain
submitter: patthoyts
assignee: patthoyts
closer: patthoyts
closedate: 2001-10-15T12:13:15
comment:
  This is two patches to the TkChat source because
  I can't disentangle them reliably and the cvs
  source has been changed since I posted my first
  patch and it'll clash now.

  So, patch 1 implements a Retrieve menu item for
  obtaining the current CVS file from the SourceForge
  repository via http.

  Patch 2 was induced by the recent loss of the
  mini.net domain and the subsequent use of purl.org
  for the Wiki. This patch provides HTTP Redirect
  following so that the chat program can be pointed
  at the PURL and dereference to the chat site.

  Pat Thoyts


tkt_uuid: 3106208fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: tree itemconfigure mishandling of node names
cmimetype: text/plain
submitter: andreas_kupries
assignee: oehhar
closer: oehhar
closedate: 2010-11-10T08:00:25
comment:
  The original description, as submitted to ActiveState:
  ========================================
  I am currently using version 1.8 of the BWidget library. I have found an  error (or lack of documentation) in the Tree library. I am using the tree structure in my software to display connections between devices. Each node in  my tree is named using the unique ID of the device which the tree node represents (these are integer values). When doing an "itemconfigure" in my code I run into an error. The error is caused by using integer values for node names. The error is described below.

  In the code section (below) taken from Tree::itemconfigure there exists a case when a node name is the same value as a flag value (in my system I had a node named 16 and a flag value that turned out to be 16). When doing the lsearch to find the idx of the node, the search finds the index of the flag value 16 (and assumes this is the node). When it does the incr to get the corresponding flag value it is really picking up a node name. In my system I also have node names that are strings. In my case the code was picking up a node name that was a string and when trying to set the flag it was doing an "|" with a flag value and a string (which causes Tcl to crash).

   if { $data(upd,level) < 3 && $flag } {
        if { [set idx [lsearch -exact $data(upd,nodes) $node]] == -1 } {
           lappend data(upd,nodes) $node $flag
        } else {
           incr idx
           set flag [expr {[lindex $data(upd,nodes) $idx] | $flag}]
           set data(upd,nodes) [lreplace $data(upd,nodes) $idx $idx $flag]
        }

  I do not see any documentation stating that node names cannot be integer values. As a result, I deem this to be a bug that should be addressed.
  If you are not the people who deal with Tcl bug, please pass this on to the people who fix bugs. Thanks.
  ========================================

  My fix for the problem is attached.


tkt_uuid: 3183064fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pt (parsetools)
priority: 5 Medium
foundin: None
title: package provide statement not correct.
cmimetype: text/plain
submitter: john-roll
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-02-16T21:55:55
comment:
  When generating a parser for snit or TclOO the final substitution of the parser package name is not correctly substituted into the package provide statement on the second to last line of the output.


tkt_uuid: 582828ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: exif
priority: 5 Medium
foundin: None
title: Patches exif.tcl for Digital IXUS
cmimetype: text/plain
submitter: lingnau
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-08-16T21:03:06
comment:
  I've been trying to use the tcllib Exif parser to process
  pictures taken with my Canon Digital IXUS camera.
  It turns out that the IXUS's image files contain a
  »makerNote« field which doesn't have various fields
  used by other Canon cameras. The attached patch
  upgrades the »makerNote« procedure to do some
  more checks for non-existing fields and such.


tkt_uuid: 1063774fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: textutil
priority: 5 Medium
foundin: None
title: [splitn string ?len=1?] split string in chunks of length len
cmimetype: text/plain
submitter: suetterlin
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-19T06:00:27
comment:
  Dear tcllib maintainers, 
   
  This is a patch against tcllib, adding a new procedure splitn to 
  split.tcl and in addition having relevant tests in split.test. 
   
  [splitn string ?len=1?] will split string into chunks of length $len.  
  These are returned in a list.  If the string length is not an entire 
  multiple of $len, the last chunk will be short.  With an empty 
  string the empty list is returned.  And a nonpositive len will result 
  in an error. 
   
  The implementation used for splitn is almost identical to code 
  submitted by Bryan Oakley in a ``contest'' I did on c.l.t ... as this 
  was the first submitted code that used more than one algorithm 
  depending on the string length, I asked B.O. if I could use it.  
  Unfortunately I got no reply sofar.  But my spare time is running 
  short, so I will submit this patch now.  Once I get B.O.'s reply I 
  will forward it to the tcllib project. 
   
  Except as stated above the code is in the public domain. 
   
  Best regards, Robert S. 


tkt_uuid: 1154619fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: tclapps :: tkchat
priority: 5 Medium
foundin: None
title: segfault in tkchat
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: patthoyts
closedate: 2005-03-04T01:35:56
comment:
  On Solaris 9, with Tcl/Tk 8.4.9,
  and tile 0.4, the tkchat.tcl
  program Revision 1.263
  segfaults at startup at line 4416

    catch {destroy $w}

  Upgrading to tile 0.5 corrects
  the problem.

  I recommend updating tkchat
  to [package require tile 0.5]


tkt_uuid: 548224ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
foundin: None
title: hpupdate status incorrectly displays
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-04-25T23:27:51
comment:
  The idea in this demo is that one will, on a
  regular basis, update a series of files and then upload
  them via ftp to an http server.

  It depends on a proc called Touch to update a file's
  update date , which then it uses to determine which
  files were changed since that date.

  On my SPARC Solaris 8, using Tcl/Tk 8.4, the Touch
  proc does NOT update the file.  This results in the
  demo program not functioning properly.

  The strange thing is that I don't see a reason for it
  to fail.  And in fact, no errors occur - but the file's
  date never changes.

  I will continue searching for a solution.


tkt_uuid: 1739359fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ip
priority: 5 Medium
foundin: None
title: "ip::version" is too permissive
cmimetype: text/plain
submitter: rkeene
assignee: patthoyts
closer: patthoyts
closedate: 2007-07-05T13:40:35
comment:
  ip::version 1.2.3.4.example.com  returns "4" when it should return 0.

  tcl>package require ip
  1.1.1
  tcl>ip::version 1.2.3.4.example.com
  4

  Additional arguments to support the theory that this is a bug and not intentional behaviour:

     ip::version only seems to accept dotted-quad notation for IPv4 addresses.  "1.2.3.4.example.com" is not in dotted-quad format.

     If you use the hostname "1.2.3.4.example.com" elsewhere in Tcl where an IP or hostname is accepted, it is treated as hostname (which will be resolved via the system resolver and may not have the IP address "1.2.3.4")


tkt_uuid: 1906274fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: pop3
priority: 7 High
foundin: None
title: pop3 module doesn't support pop3s
cmimetype: text/plain
submitter: egavilan
assignee: andreas_kupries
comment:
  The pop3 module doesn't support pop over ssl (pop3s).
  This patch adds support for a "-tls" option (must be boolean). The tls package should be present or it throws an error (I think this is the correct behaviour).
  Being there, also corrects a mispelled error message ("Too" instead of "To")


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

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

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


tkt_uuid: 2881739fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: math :: interpolate
priority: 5 Medium
foundin: None
title: Cubic spline interpolation is wrong
cmimetype: text/plain
submitter: jmsanche1977
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2009-10-22T18:24:32
comment:
  Hi,

  I have discovered that the cubic splines interpolation in math::interpolate returns wrong results.

  Check this little example of a cuadratic function (from the tests):

      set xcoord {1 2 3 4 5}
      set ycoord {1 4 9 16 25}
      set coeffs [::math::interpolate::prepare-cubic-splines $xcoord $ycoord]

  I see a strange behaviour when evaluating the function close to one of the interpolated points:
  ::math::interpolate::interp-cubic-splines $coeffs 2.0 -> Result: 4.0
  ::math::interpolate::interp-cubic-splines $coeffs 1.96 -> Result:3.847744 (Seems ok)
  ::math::interpolate::interp-cubic-splines $coeffs 2.04 -> Result:4.19061942857 (Seems slightly inaccurate...)

  ::math::interpolate::interp-cubic-splines $coeffs 2.96 -> Result:9.58423771429 (Fully wrong! It is even much higher than 3^2)
  ::math::interpolate::interp-cubic-splines $coeffs 3.0  -> Result: 9.0
  ::math::interpolate::interp-cubic-splines $coeffs 3.04 -> Result:9.26423771429

  From this results it also looks like there is a discontinuity at x=3.0, which can not be.
  ::math::interpolate::interp-cubic-splines $coeffs 2.9999 -> Result: 9.85645715143
  ::math::interpolate::interp-cubic-splines $coeffs 3.0001 -> Result: 9.00065715143

  I suggest that somebody should check the algorithm implementation.

  As a comparison and additional help, here are the results I get when I use a cubic spline interpolation algorithm coded in Fortran (also assuming zero second derivative at the extremes of the interpolated interval):
       1.9600000000000    3.8477440000000
       2.0000000000000    4.0000000000000
       2.0400000000000    4.1563337142857
  ...
       3.9600000000000    15.676333714286
       4.0000000000000    16.000000000000
       4.0400000000000    16.327744000000

  Best regards,
  JM


tkt_uuid: 3581373fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: base64
priority: 2
foundin: None
title: "::base64::encode -maxlen 0" not documented
cmimetype: text/plain
submitter: oehhar
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-08T22:47:43
comment:
  Documentation of tcllib command "::base64::encode"

  It should be explicitly documented, that a value of "0" of the parameter "-maxlen" would disable the insertion of wrap characters.


tkt_uuid: 3288977fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ftp
priority: 5 Medium
foundin: None
title: client hangs on bad multi-line server responses
cmimetype: text/plain
submitter: szinck
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-04-18T19:27:41
comment:
  If the server doesn't speak strict RFC-959 when it comes to multi-line responses, it can cause the client to hang.

  For example, this was causing Tcllib ftp code to have an infinite loop  and eat 100% cpu.

      RETR blah
      150 Opening BINARY mode data connection for blah (180 bytes).
      226 Transfer complete.
      QUIT
      221-You have transferred 180 bytes in 1 files.

      ^^^ notice no "221 Goodbye."

  Most likely the network I was using was dropping the last couple of packets after the client said QUIT, that included the "221 Goodbye" response that the code was waiting for.

  This is the same issue described in the latter half of 2813069. I couldn't upload files to it, so I created a new bug and have attached a patch.


tkt_uuid: 2169167fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: json
priority: 5 Medium
foundin: None
title: test failures
cmimetype: text/plain
submitter: dgp
assignee: hobbs
closer: kanryu6
closedate: 2009-04-17T23:41:56
comment:
  Running Tcl 8.4.19 with the
  package "dict 8.5.1", I see
  these test failures:

  ---- json-1.1 start

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

  ---- json-1.2 start

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

  ==== json-1.4 test JSON menu FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu)]
  ---- Result was:
  menu {popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick CloseDoc()}}} value File: id file unival 怡:}
  ---- Result should have been (exact matching):
  menu {id file value File: unival 怡: popup {menuitem {{value Open onclick OpenDoc()} {value Close onclick CloseDoc()}}}}
  ==== json-1.4 FAILED
  ==== json-1.8 test JSON menu2 FAILED
  ==== Contents of test case:
  set res [json::json2dict $JSON(menu2)]
  ---- Result was:
  menu {header Viewer items {{id Open} {label {Open New} id OpenNew} null {label {Zoom In} id ZoomIn} {label {Zoom Out} id ZoomOut} null {id Help} {label {About Viewer...} id About}}}
  ---- Result should have been (exact matching):
  menu {header Viewer items {{id Open} {id OpenNew label {Open New}} null {id ZoomIn label {Zoom In}} {id ZoomOut label {Zoom Out}} null {id Help} {id About label {About Viewer...}}}}
  ==== json-1.8 FAILED

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


tkt_uuid: 1725324fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: None
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split does not parse hosts with no dots (.) in them
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: nobody
comment:
  uri::split parses hosts with no dots (.) in them incorrectly:
  uri::split "http://3531454999:80/XXX/YYY"  returns an array with a "host" entry set to ""

  uri::split also fails with the following URIs:
  http://0xc9.0x02.0xdf.0x11:80/XXX/YYY
  http://0x5061bf3f/XXX/YYY


tkt_uuid: 1323295fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: sasl
priority: 9 Immediate
foundin: None
title: sasl test failure for Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: patthoyts
closer: patthoyts
closedate: 2005-10-11T14:25:08
comment:
  Create one then move this bug
  report to it:

  The following test fails against
  the curren Tcl HEAD on 32-bit
  platforms:

  ==== SASL-NTLM-1.1 NTLM client response FAILED
  ==== Contents of test case:

      list [catch {
          set ctx [SASL::new -mechanism NTLM -callback
  NTLMCallback]
          SASL::step $ctx ""
          SASL::step $ctx [base64::decode $Chk(2)]
          set response [SASL::response $ctx]
          SASL::cleanup $ctx
          base64::encode -maxlen 0 $response
      } res] $res

  ---- Result was:
  0
  TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAABAgAAAAAAAABEAE8ATQBBAEkATgB1AHMAZQByAFcATwBSAEsAUwBUAEEAVABJAE8ATsM3zVy9RPyXgqZnr21CfG3mfCDC0+d8VoLTftHx9ZaM2NlnEeJBCjvPm4ryx3aR4A==
  ---- Result should have been (exact matching):
  0
  TlRMTVNTUAADAAAAGAAYAGoAAAAYABgAggAAAAwADABAAAAACAAIAEwAAAAWABYAVAAAAJoAAAABAgAAAAAAAEQATwBNAEEASQBOAHUAcwBlAHIAVwBPAFIASwBTAFQAQQBUAEkATwBOAMM3zVy9RPyXgqZnr21CfG3mfCDC0+d8ViWpjBwx6BhHRmspst9GgPOZWPuMITqcxg==
  ==== SASL-NTLM-1.1 FAILED

  It's possible the actual bug is really in Tcl, but
  assistance of the sasl maintainers will be
  helpful to determine that.


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


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

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

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

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


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

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

  Questions?

  Dave Bigelow


tkt_uuid: 1969847fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: yaml
priority: 5 Medium
foundin: None
title: Testsuite failures
cmimetype: text/plain
submitter: andreas_kupries
assignee: kanryu6
closer: kanryu6
closedate: 2008-10-10T05:01:40
comment:
  Attached a quick run of the testsuite.

  It seems that a 'switch' command in yaml is not protected against the occurrence of '-' in its input, leading to misinterpretation as option.

  I.e. the code contains

      switch $ch

  and it should better be

     switch -- $ch


tkt_uuid: 638236ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: BWidget: Entry "-state disabled" doesn't gray
cmimetype: text/plain
submitter: schroedter
assignee: damonc
closer: damonc
closedate: 2003-10-20T23:16:02
comment:
  There is a difference between TK's entry and BWidget's
  Entry
  concerning the -state disabled option.

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

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

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

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

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


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

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


tkt_uuid: 2123397fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ip
priority: 5 Medium
foundin: None
title: bad [string first] in [::ip::version]
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-13T20:33:51
comment:
  In the proc ::ip::version, I see:

      if {[string first $addr :] < 0 && [IPv4? $addr]} {
          set version 4

  where the arguments to [string first]
  appear to be out of order.


tkt_uuid: 2829049fffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
resolution: Not Applicable Here
subsystem: tklib
priority: 5 Medium
severity: Minor
foundin: None
title: "failure" or missing feature in "getstring"
cmimetype: text/plain
submitter: martinlemburg
assignee: afaupell
closer: aku
closedate: 2456444.39473669
comment:
  Hello,

  I would really like to see the attached changes in the package "getstring".

  Just because the current implementation has one bug and one annoyance:
  1. "wm withdraw" is called after the "UI" is already built, instead of right after creating the toplevel
  2. a given variable to contain the result of "getstring" is simply overwritten, instead of using its contents inside the entry and changing it at the end

  Best regards,

  Martin


tkt_uuid: 556504ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: fileutil::cat won't read empty files
cmimetype: text/plain
submitter: cleverly
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-21T17:45:13
comment:
  fileutil::cat won't read non-empty "empty" files (where
  [file size] == 0, but the file isn't empty), as is the
  case with the files in the /proc filesystem on Linux.

  fileutil::cat /proc/[pid]/maps currently returns the
  empty string.  With the attached patch it returns the
  actual data as expected.


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


tkt_uuid: 3357765fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ftpd
priority: 5 Medium
foundin: None
title: Many commands assume a socket is established, may not be so.
cmimetype: text/plain
submitter: rkeene
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-09T20:18:55
comment:
  When using PASV the client may not connect to the server until after the command that needs the data connection is issued.  Currently Fs commands are just given the sock handle of "" when this happens.

  The FTP RFC indicates that it is acceptable for the client not to have connected to the port described by the result of the PASV command until after a command that needs it is issued.


tkt_uuid: 1081971fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: &ob; and &cb; don't seem to exist?
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: davidw
closedate: 2004-12-09T19:25:05
comment:
  The htmlparse::PrepareHtml procedure has this line:

      return [string map [list "\{" "&ob;" "\}" "&cb;"
  "\\" "&bsl;"] $html]

  I don't think &ob; and &cb; are really HTML for {}.  At
  least they don't work in my browser.  Best just to use
  the numeric versions, &#123; and &#125;.


tkt_uuid: 1272913fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: profiler
priority: 5 Medium
foundin: None
title: profiler - failed test with Tcl 8.5
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-09-27T16:40:34
comment:
  ==== profiler-7.2 sortFunctions FAILED
  ==== Contents of test case:

      set c [interp create]
      interp alias $c parentSet {} set
      set result [$c eval {
          set auto_path [parentSet auto_path]
          package require profiler
          profiler::init
          proc ::foo {} {
              set foobar 0
          }
          proc ::bar {} {
              set foobar 1
          }
          foo; foo; bar;
          profiler::sortFunctions calls
      }]
      interp delete $c
      set result

  ---- Result was:
  {::tcl::clock::scan 0} {::tcl::clock::format 0}
  {::tcl::clock::add 0} {::bar 1} {::foo 2}
  ---- Result should have been (exact matching):
  {::bar 1} {::foo 2}
  ==== profiler-7.2 FAILED


tkt_uuid: 740474ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: DropSite::register documenation error
cmimetype: text/plain
submitter: pointsman
assignee: hobbs
closer: dev_null42a
closedate: 2006-11-10T21:56:08
comment:
  The current DropSite HTML page says:

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

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

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

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

  Arguments passed to the command are:

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


tkt_uuid: 1708110fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: png
priority: 7 High
foundin: None
title: [png::removeComments] destroy a png file.
cmimetype: text/plain
submitter: nyademo
assignee: afaupell
closer: afaupell
closedate: 2007-04-28T19:29:16
comment:
  Hi.
  I noticed the bug that png::removeComments destroy a file.
  Version of png is CVS HEAD. It seems to me that the 
  cause is that output encoding isn't binary. 

  Please see attached patch.


tkt_uuid: 467835ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
resolution: Invalid
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: tkchat retrieve menu item
cmimetype: text/plain
submitter: patthoyts
assignee: nobody
closer: patthoyts
closedate: 2001-10-11T12:34:08
comment:
  This patch adds a Retrieve menu item to the debug menu
  which delegates to tkchat::Retrieve and obtains the
  current HEAD revision from the SourceForge CVS tree.
  The user may then re-source from the new version.

  Taken from tkcon and modified slightly for tkchat.


tkt_uuid: 3471182fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: Documentation
priority: 5 Medium
foundin: None
title: funny mistake in struct_tree manual
cmimetype: text/plain
submitter: mxmanghi
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2012-01-09T16:25:34
comment:
  A funny, yet harmless, mistake appears in the struct_tree manual page, where explanation for  subcommand 'exists' reads "Remove true if the specified node exists in the tree" instead "Returns true...."


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

  * csv 0.6
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out1.csv...
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out2.csv...
  WARNING: cleanupTests deleting
  /local/src/tcllib/eval-out3.csv...


tkt_uuid: 3504018fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: callback command gets called with varying arguments
cmimetype: text/plain
submitter: dvrsn
assignee: andreas_kupries
closer: dvrsn
closedate: 2012-03-14T16:47:27
comment:
  Another problem related to badly formed html, here I think the problem is an open tag inside an attribute value, combined with a xhtml-style null end tag.

  %  htmlparse::parse {<img src="x<y" /> <i></i>}
  ==> hmstart {} {} {}
  ==> img {} src=\"x
  ==> y\" {} {} {}
  ==> img / {} { <i} {}
  ==> i / {} {}
  ==> hmstart / {} {}

  The html is malformed, so parsing is a guessing game, but the parser should try to be as resilient as possible.  What happens in this case is that the callback command, documented as always being called with 4 arguments, is called with 3 and 5 arguments.  This causes an error if your callback command has formal arguments instead of "args".


tkt_uuid: 1507713fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Documentation error: -opencmd option for Tree widget
cmimetype: text/plain
submitter: arjenmarkus
assignee: damonc
closer: dev_null42a
closedate: 2006-08-21T20:56:35
comment:
  According to the documentation of the -opencmd option
  for he Tree widget the path to the tree widget and the
  node that was opened are both appended to the command.

  However, in the "current" implementation (1.7 as
  delivered with ActiveTcl 8.4.12) only the node is appended.

  It is probably best to adapt the documentation, not the
  code:
  - The value for -opencmd is a "command prefix" 
  - The node that was opened is appended
  - To get the tree widget use something like:
   
    -opencmd "mycmd .tree"


tkt_uuid: 898067ffffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp::NList error when directory empty
cmimetype: text/plain
submitter: cdclercq
assignee: gwlester
closer: andreas_kupries
closedate: 2004-02-26T01:13:43
comment:
  When executing ftp::NList on an empty directory
  follwing error message appears
  "error     error | E: Error getting directory listing!"

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

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

  This a non-blocking message ...

  Regards,

  Christophe De Clercq


tkt_uuid: 3004301fffffffffffffffffffffffffffffffff
type: Bug
status: Pending
resolution: Out of Date
subsystem: bwidget
priority: 5 Medium
severity: Minor
foundin: None
title: Bad images.tgz files in CVS
cmimetype: text/plain
submitter: andreas_kupries
closer: nobody
comment:
  The images.tgz files in the CVS seem to be corrupted. Maybe they were not marked as binary files to CVS ?

  % tar tvfz ./themes/keramik_alt/images.tgz
  drwxr-xr-x oberdo/catia      0 2009-08-04 16:37:48 images/
  tar: Skipping to next header

  gzip: stdin: invalid compressed data--crc error

  gzip: stdin: invalid compressed data--length error
  tar: Child returned status 1
  tar: Error exit delayed from previous errors

  % gzip -t ./themes/keramik_alt/images.tgz
  gzip: ./themes/keramik_alt/images.tgz: invalid compressed data--crc error
  gzip: ./themes/keramik_alt/images.tgz: invalid compressed data--length error


tkt_uuid: 481023ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: csv
priority: 5 Medium
foundin: None
title: read2matrix new functionality requested
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-11-12T22:24:27
comment:
  If the matrix being filled in has not had the number of
  columns set, I would like to request that this value be
  set based on the first record read - perhaps only if a
  special flag is present?


tkt_uuid: 1002143fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct
priority: 5 Medium
foundin: None
title: struct::set difference broken under >=Tcl 8.4
cmimetype: text/plain
submitter: maroc
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2004-08-05T05:44:49
comment:
  struct::set difference [list Maryland DC Virginia]
  [list DC Virginia]
  returns -> Maryland

  However,
  struct::set difference [list "Washington, DC (District
  of Columbia)" Maryland Virginia] [list "Washington, DC
  (District of Columbia)" Virginia]
  returns -> Maryland {Washington, DC }

  Any list element with parens seems to have the parens
  stripped. This doesn't happen under the alternate
  definition of "proc" for Tcl 8.[23]


tkt_uuid: 554475ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 6
foundin: None
title: tcllib 'build' warning msgs
cmimetype: text/plain
submitter: lvirden
assignee: jenglish
closer: jenglish
closedate: 2002-05-20T20:15:27
comment:
  the latest cvs head of tcllib, obtained from
  activestate's snapshot ftp site, generates the
  following warning during the tmml gen step:

  Gen (tmml):
  /vol/tclsrcsol/tcl84/tcllib/modules/html/html.man
  Warning: Cannot start context section dd li

  This occurs for quite a number of the man pages,
  including stoop, sha1, report, log, expander, smtpd,
  and more


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

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

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

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


tkt_uuid: 514494ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: uri
priority: 5 Medium
foundin: None
title: Information about uri schemes
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  The following place lists existing uri schemes
  and specifications.

  http://www.w3.org/Addressing/schemes


tkt_uuid: 415001ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: xpm2image/bwidget
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2001-12-29T01:26:36
comment:
  Hi,
  it seems that not all graphic programs produce the same
  XPM output.

  Here's the difference:

  a sample line by "pixmap"
  "#c #feb66c",

  a sample line by "Gimp"
  "# c #feb66c",

  The problem is that there is no tab between "#" and "c"
  with the line of Gimp and xpm2image fails

  Greets

  Simon


tkt_uuid: 492156ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: textutil
priority: 5 Medium
foundin: None
title: New expand method 'textcmd'
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-12-14T05:00:11
comment:
  Enclosed a patch which reintroduces 
  the 'raw_text_hook' known to the expand application in 
  the form of 'textcmd', a macro which is run for all 
  plain text encountered in a template.


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

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

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

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

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

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

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


tkt_uuid: 2814050fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: fix [notebook itemconfigure -helptext]
cmimetype: text/plain
submitter: danckaert
assignee: hobbs
closer: oehhar
closedate: 2009-07-01T14:34:12
comment:
  This is a small fix for notebooks. When calling [itemconfigure -helptext] on a notebook tab, the helptext is currently not updated.
  The _set_help proc already contains code for checking whether the helptext has changed, but it is not called from itemconfigure.


tkt_uuid: 2782256fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 5 Medium
foundin: None
title: two potential package bugs found
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-04-29T02:13:54
comment:
  When using the version of doctools provided by teapot, I see the following two errors:

  package require doctools::nroff::man.macros
  can't find package doctools::nroff::man.macros

  even though the file doctools/nroff/man.macros-0.1.tm appears to have been installed by teacup.

  Also, I am seeing

  package require doctools::paths
  conflicting versions provided for package "doctools::paths": 0.1, then 0


tkt_uuid: 1924065fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: tiff
priority: 5 Medium
foundin: None
title: tiff - addEntry doesn't overwrite
cmimetype: text/plain
submitter: andreas_kupries
assignee: afaupell
comment:
  The documentation of tiff::addEntry states that it does overwrite the data of a tag should that tag exist. This doesn't seem to happen.

  See tests tiff-23.*, in tiff.test, marked as knownBug.

  They first use addEntry to add a tag for 'Artist', and then addEntry again to overwrite 'Artist' with new data.
  The new data is not taken, per the inspection with 'getEntry'.


tkt_uuid: 1206499fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 5 Medium
foundin: None
title: struct::list flatten throws error for valid list
cmimetype: text/plain
submitter: yahalom
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-05-23T20:32:47
comment:
  this script throws error:
  %set a [list \[a\] \[b\]]
  {[a]} {[b]}
  %  struct::list flatten $a
  invalid command name "a"

  this is the errorInfo:
  invalid command name "a"
      while executing
  "a"
      invoked from within
  "::lappend result [a]"
      ("eval" body line 1)
      invoked from within
  "eval [::list ::lappend result] $item"
      (procedure "::struct::list::Lflatten" line 26)
      invoked from within
  "::struct::list::Lflatten {{[a]} {[b]}}"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 [linsert $args 0 ::struct::list::$sub]"
      (procedure "struct::list" line 15)
      invoked from within
  "struct::list flatten $a"


tkt_uuid: 621331ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Allow delete of selected Tree nodes
cmimetype: text/plain
submitter: decosterjos
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:27:41
comment:
  Hi,

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

  Jos.


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

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

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

  }
  pack .test.sc
  }

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


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

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


tkt_uuid: 534334ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: doctools
priority: 8
foundin: None
title: add tk-specific man page macro: tkoption
cmimetype: text/plain
submitter: boakley
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-10T07:00:36
comment:
  standard tk widget man pages have a section 
  named "Widget Specific Options" that has a format that 
  is tedious to code with the existing mpexpand formats. 
  Options are typically described like this:

  -----------------------
  Command-Line Name: -value
  Database Name: value
  Database Class: Value


  Specifies the value for the foo widget.
  -----------------------

  To mark this up with the existing man page markup one 
  needs to create a definitions list for the list of 
  option names, which is tedious. I suppose there are 
  other ways, too. 

  I propose a special keyword just for this construct. 
  I've written one for the html renderer as a prototype. 
  It is used like this:

  ------------------------
  [tkoption -value value Value "Specifies the value for 
  the foo widget."]
  ------------------------

  It takes four arguments: the command line name, the 
  database name, the database class, and a description. 
  The description could be left off of the API, since 
  normal paragraphs would work, too. In my prototype 
  implementation, if the db name or class is null, those 
  parts don't appear in the output. This, for 
  megawidgets that may not have option database support.

  I've attached my hacked version of fmt.html with the 
  proposed macro. To make it work, one also needs to add 
  the macro to a foreach command in mpexpand where it 
  makes interp aliases for each of the macros. I don't 
  know if this is the best implementation, but it's a 
  starting point...


tkt_uuid: 955187ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
resolution: Fixed
subsystem: ftp
priority: 5 Medium
severity: Minor
foundin: None
title: Unknown state "<whatever>_sent"
cmimetype: text/plain
submitter: mc_8
assignee: aku
closer: aku
closedate: 2456710.38607557
comment:
  Most of the time it's Unknown state "type_sent" ... but 
  this time it's pwd_sent .... -shrug-

  --[ Error as follows. ]--

  Unknown state "pwd_sent"
      while executing
  "error "Unknown state \"$ftp(State)\"""
      ("default" arm line 2)
      invoked from within
  "switch -regexp -- $ftp(State) {
          list {
              fileevent $sock readable [list [namespace 
  current]::HandleList $s $sock]
              set ft..."
      (procedure "::ftp::InitDataConn" line 27)
      invoked from within
  "::ftp::InitDataConn 0 sock6 <cut> 56721"


tkt_uuid: 1048995fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: ::fileutil::find filtercmd needs cwd
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-02-14T23:38:33
comment:
  ::fileutil::find should have been perfect for me to use in 
  traverse a directory with tens of thousands of files. The 
  problem is filtercmd only gets the rootname of the file 
  making it useless to do any processing. The alternative 
  of not using a filter and walking the resulting list is 
  unworkable due to the large number of files.

  I'd like to request either fully qualifying the filename or 
  passing in $cwd.


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

  Jos.


tkt_uuid: 3493711fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: amazon-s3
priority: 5 Medium
severity: Severe
foundin: None
private_contact: eb5a509309d4ff62bdd05009993eace4edd25f7e
title: S3: Fix wasteful string conversion of large binary object
cmimetype: text/plain
submitter: samoconnor
assignee: aku
comment:
  In our app S3::Get is used to download large binary objects from AWS (many hundreds of MB).
  The current code stores the downloaded object in "x" then does: S3::debug "Body: $x"
  This causes "x" to be converted to a string, and creates a second huge string "Body: .....".
  The patch below passes the large object directly from the binary network channel to the result dict entry.

  A small test program that downloads a 5MB file uses 24MB before the patch vs 9MB with the patch.

  --- /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-02-25 15:33:25.000000000 +1100
  @@ -580,9 +580,7 @@
   if {[dict exists $thunk orig outchan]} {
       fcopy $s3 [dict get $thunk orig outchan]
   } else {
  -    set x [read $s3]
  -    dict set thunk outbody $x
  -    S3::debug "Body: $x"
  +    dict set thunk outbody [read $s3]
   }
   return [S3::nextdo all_done $thunk readable]
       } else {


tkt_uuid: 446799ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: None
priority: 5 Medium
foundin: None
title: add suspend/resume API to profiler
cmimetype: text/plain
submitter: hemanglavana
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-21T23:36:59
comment:
  In addition to ::profiler::reset functionality, the
  profiler module should also contain ::profiler:suspend
  and ::profiler::resume API.

  I am attaching the patch for its implementation code as
  well as for the docs.

  Hemang.


tkt_uuid: 1656200fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: struct
priority: 5 Medium
foundin: None
title: struct man name inconsistencies
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
comment:
  It is confusing for some of the man pages, on Unix anyways, to be installed with a ''struct_'' prefix and the others not. It would be useful to at least install a linked version of the pages to all have the same prefix. If developers feel strongly about also having the man pages installed without the prefix, that is fine.

  Consistency of reference doc naming is important


tkt_uuid: 821126ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Fixed
subsystem: base64
priority: 7 High
foundin: None
title: uninitialized "$output" in ::base64::decode
cmimetype: text/plain
submitter: gionco
assignee: patthoyts
closer: andreas_kupries
closedate: 2003-10-24T17:47:22
comment:
  Bug: '$output' is not defined in some situations at the
  end of
  proc ::base64::decode

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

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

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


tkt_uuid: 1377937fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: bwidget
priority: 5 Medium
foundin: None
title: missing tcl.m4
cmimetype: text/plain
submitter: wart
assignee: damonc
closer: dev_null42a
closedate: 2006-11-10T21:28:37
comment:
  The bwidget 1.7.0 source tarball is missing tcl.m4,
  which is needed by autoconf in order to build the
  configure script.

  Please either include tcl.m4 or generate the configure
  script before making a source tarball.


tkt_uuid: 1897846fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: list
priority: 7 High
foundin: None
title: assign test 4.4 fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-02-28T06:57:06
comment:
  sparc solaris 9 sun c compiler, cvs head for tcl and tcllib.

  ---- 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


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

  - snit 0.93

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

      cleanup

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

          typeconstructor {
              option add *Myframe.foreground red
          }

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

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

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

      list $a $b

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


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

      cleanup

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

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

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

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


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

      cleanup

      widget dog { 
          widgetclass DogWidget

          typeconstructor {
              option add *DogWidget.background green
  widgetDefault
          }

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

      dog .dog
      
      set bg [.dog background]

      destroy .dog
      
      set bg

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


tkt_uuid: 443613ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: pop3
priority: 5 Medium
foundin: None
title: new binary translation breaks pop3::send
cmimetype: text/plain
submitter: deery
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-02T16:24:34
comment:
  Just downloaded ActiveTcl 8.3.3.2 and found pop3's new 
  binary translation mode breaks the send proc...

  Connecting to some of my email accounts now hangs my 
  email script (indefinitely?). Things worked fine with 
  the old tcllib 0.8...

  I believe the problem lies in the fact that the send 
  proc now (i.e. in the new binary mode) only appends LF-
  s to commands it "puts" to the POP3 server. If I'm not 
  mistaken the official line termination sequence for 
  POP3 is CRLF. And POP3 servers expecting this may 
  therefore wait awhile before sending anything back...

  A solution might be to change the channel translation 
  command (in ::pop3::open) into:

      fconfigure $chan -translation binary crlf

  I hope this helps.

  -- AH.


tkt_uuid: 3168761fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Themed widgets cause Tcl errors
cmimetype: text/plain
submitter: zoro2
assignee: oehhar
closer: oehhar
closedate: 2011-02-14T16:57:44
comment:
  Multiple widgets - including Entry, LabelFrame and LabelEntry cause errors when used after [Widget::theme 1] was called.

  Included are fixes I made against 1.9.4 release.


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


  How about a:

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

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

  For Example:

  myTree maxdepth root
  ---> 3

  myTree maxdepth 6
  ---> 3

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


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

  Any Questions?

  David Bigelow
  davidhbigelow@compuserve.com


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

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

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

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

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

  The pdf-poisson function has a very direct implementation.

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

  Thanks!
  Eric


tkt_uuid: 532791ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: struct :: matrix
priority: 5 Medium
foundin: None
title: Error unsetting element in linked matrix
cmimetype: text/plain
submitter: kenj
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-04-01T19:55:10
comment:
  Linked matrix objects don't correctly handle individual array 
  elements being unset. Here's a simple test case run 
  interactively:

  % package require struct
  1.2
  % 
  ::struct::matrix test
  test
  % test add columns 3
  % test add row 
  {1 2 3}
  % test add row {a b c}
  % test link arr
  % array get arr
  0,0 1 
  1,0 2 0,1 a 2,0 3 1,1 b 2,1 c
  % unset arr(0,0)
  % array get arr
  1,0 2 
  0,1 a 2,0 3 1,1 b 2,1 c
  % test get rect 0 0 end end
  {1 2 3} {a b 
  c}

  This bug also renders matrix objects unusable with a TkTable 
  widget (by linking to the same global array variable), as TkTable 
  makes extensive use of unsetting individual elements of a linked 
  array variable in its row and column manipulations.


tkt_uuid: 1778143fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: bench
priority: 5 Medium
foundin: None
title: Make bench usable to benchmark extensions.
cmimetype: text/plain
submitter: pointsman
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2007-08-21T20:08:41
comment:
  ATM, bench is only easy to use, if you want to benchmark different tcl core versions against a suite of bench files.

  To benchmark different versions of a tcl extension with a  tcl core version (or with different tcl core verions) need some nasty handwork.

  I propose another option to ::bench:run: -pkgdirs. If this option isn't given, ::bench::run behaves as it does now. 

  If the option is given, it expects a list of dirs as argument. Then every interpreter in the run is setup to have every dir out of the -pkgdirs list as first dir in the auto_path variable. Every combination of interpreters  and dirs out of the -pkgdirs list will be reportet side by side. The empty list ({} or [list]) as one element of the -pkgdirs list let the interpreters use the (respective) 'default', installed extensions versions.

  See the attached patch against tcllib head.

  The patch misses doc updates (and version increment). If the idea itself and the implementation is accepted, I'll offer an enhanced patch.


tkt_uuid: 744095ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: doctools
priority: 8
foundin: None
title: file output for dtp
cmimetype: text/plain
submitter: dzolli
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2003-11-23T03:29:09
comment:
  Would it be possible to add a subcommand for dtp, or to add an 
  arg to doc subcommand to switch output from stdout to a 
  file.

  For example :

  dtp doc html graph.man 
  graph.html

  or :

  dtp filedoc graph.man 
  ?graph.html?


tkt_uuid: 1897839fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: stringprep
priority: 5 Medium
foundin: None
title: stringprep test 2.3 fails
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2009-11-02T00:29:51
comment:
  sparc solaris 9, Sun C compiler, latest cvs head for tcl and tcllib.

  ---- stringprep-2.3 start

  ==== stringprep-2.3 stringprep: prohibited bidi FAILED
  ==== Contents of test case:

      catch {::stringprep::stringprep nameprep "\u0627\u0031"} result
      set result

  ---- Result was:
  can't read "first_ral": no such variable
  ---- Result should have been (exact matching):
  invalid_bidi
  ==== stringprep-2.3 FAILED


tkt_uuid: 1346298fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: tklib :: tkpiechart
priority: 2
foundin: None
title: tkpiechart demo.tcl should go into examples dir
cmimetype: text/plain
submitter: mic42
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-10T22:30:41
comment:
  Currently the tkchat tkpiechart module dir contains a
  file demo.tcl, which should probably be moved to the
  examples dir of the tklib, like the other examples.


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

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


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

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

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


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

  1) What does a manual page look like?

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


tkt_uuid: 1614860fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: smtp
priority: 5 Medium
foundin: None
title: Add a -client switch
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2007-01-25T01:09:56
comment:
  I would like to see a -client switch added to the SMTP library. Currently the SMTP library uses [info hostname] which can come back with a short name for the sending system and some MTA's might queue it and silently drop it.

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


tkt_uuid: 528929ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Dynamic balloonhelp bug (and patch)
cmimetype: text/plain
submitter: bach
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2002-05-09T21:01:51
comment:
  In some rare cases (race condition depending on
  balloonhelp configuration and user mousemovements), the
  procedure for destroying a balloonhelp interferes with
  the procedure still building the display, causing
  errors like:

  bad window path name ".help_shell"
      (procedure "DynamicHelp::_show_help" line 22)
      invoked from within
  "DynamicHelp::_show_help .bla.topf.tb0.bbox4.b1 329
  198"
      ("after" script)

  Hard to reproduce with a script, sorry.

  A quick resolution to this is to check if the targeted
  help window still exists in the ::_show_help procedure
  (see attached diff file, it's a twoline patch).


tkt_uuid: 557043ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: mime
priority: 5 Medium
foundin: None
title: badly formated mail causes infinite loop
cmimetype: text/plain
submitter: tcoram
assignee: andreas_kupries
closer: mrose
closedate: 2002-05-19T22:52:38
comment:
  In mime::parsepart, the following two lines cause me
  trouble:
   # error "termination string missing in $state(content)"
   set line "--$boundary--"                                        

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

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

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


tkt_uuid: 519214ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: bwidget 1.x
priority: 5 Medium
severity: Minor
foundin: None
title: bwidget - TitleFrame: patch for rounded corners
cmimetype: text/plain
submitter: bach
assignee: oehhar
closer: oehhar
closedate: 2456612.18708851
comment:
  I have added the possibility to make the corners of a
  TitleFrame look round, using photo images and computed
  color shades (see enclosed files old.jpg for the old
  look and newrc.jpg for the new look).

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

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

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

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

  I think that one can live with that.


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

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

  Problem:
  related to [Bug 599306].

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

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

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


tkt_uuid: 1779348fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: profiler
priority: 5 Medium
foundin: None
title: profiler test suite peculiar behavior
cmimetype: text/plain
submitter: lvirden
assignee: nobody
comment:
  I downloaded from activestate's ftp site today the latest tcl, tk, tcllib cvs head snapshot tars. On a sparc solaris 9 system, using sun's c compiler, I built the pieces and installed them. All this is being done within Sun's standard xterm window, running under GNOME, displaying back to Exceed X server running on Windows XP sp2.

  I then ran a make test for tcllib. Things went well until:
  [    ]  [8.5a7] pop3d       ~~       T   152 P   152 S     0 F     0
  [  * ]  [8.5a7] profiler    ---- profiler::leaveHandler::initialize_descendent_ti[  * ]  [8.5a7] profiler    PASS profiler::leaveHandler::initialize_descendent_ti[  * ]  [8.5a7] profiler    ---- profiler::leaveHandler::increment_descendent_tim[   *]  [8.5a7] profiler    PASS profiler::leaveHandler::increment_descendent_tim[   *]  [8.5a7] profiler    ---- profiler-4.1                                    [   *]  [8.5a7] profiler    PASS profiler-4.1                                    [   *]  [8.5a7] profiler    ---- profiler-5.1                                    [   *]  [8.5a7] profiler    PASS profiler-5.1                                    [  * ]  [8.5a7] profiler    ---- profiler-6.1                                    [  * ]  [8.5a7] profiler    PASS profiler-6.1                                    [  * ]  [8.5a7] profiler    ---- profiler-7.1                                    [  * ]  [8.5a7] profiler    PASS profiler-7.1                                    [  * ]  [8.5a7] profiler    SKIP profiler-7.2                                    [ *  ]  [8.5a7] profiler    ---- profiler-7.2-85                                 [ *  ]  [8.5a7] profiler    PASS profiler-7.2-85                                 [ *  ]  [8.5a7] profiler    ---- profiler-7.3                                    [ *  ]  [8.5a7] profiler    PASS profiler-7.3                                    [ *  ]  [8.5a7] profiler    ---- profiler-7.4                                    [*   ]  [8.5a7] profiler    PASS profiler-7.4                                    [*   ]  [8.5a7] profiler    ---- profiler-7.5                                    [*   ]  [8.5a7] profiler    PASS profiler-7.5                                    [*   ]  [8.5a7] profiler    ---- profiler-8.1                                    [*   ]  [8.5a7] profiler    PASS profiler-8.1                                    [ *  ]  [8.5a7] profiler    ---- profiler-8.2                                    [ *  ]  [8.5a7] profiler    PASS profiler-8.2                                    [ *  ]  [8.5a7] profiler    ---- profiler-9.1                                    [ *  ]  [8.5a7] profiler    PASS profiler-9.1                                    [    ]  [8.5a7] profiler    ~~       T    21 P    15 S     6 F     0               

  Notice that for some reason, profiler outputs each of its steps, instead of writing them on top of each other like the previous tests all did.

  This is a make test performed "interactively" with output going to stdout/stderr.

  I've seen this kind of thing happen with the test suite at other times. I understand that others may not be able to duplicate the problem. I am reporting it because there appears to be something weird going on in the test suite software itself, or perhaps in this particular test.


tkt_uuid: 1054636fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: general request
priority: 8
foundin: None
title: Enhance test suite to disable all accel pkgs even if present
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2005-09-30T19:03:44
comment:
  I think it would be useful for the tcllib test suite to
  either
  by default, or via some sort of extra makefile target, have
  the option of indicating that the user wishes the test
  suite
  to run only the tcl versions of modules through the test
  cases, rather than loading things like trf if present.

  Or maybe what is needed is a tcllib module option that
  allows the developer to do that very same thing when
  doing the package require?


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

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

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

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

  Bugs:
  None that I knew of.


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

  set parts [split $command]

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

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

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


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

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

     set state(readable) 0

  at the beginning of the loop

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

  best regards
  -- Beat Jucker


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

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

  Tom Krehbiel


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

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

  Jos.


tkt_uuid: 435471ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: paned window problem
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-01-16T02:08:09
comment:
  When adding a large widget to a pane of a paned window,
  the panes already present do no keep their relative
  sizes. Try the following example:

    package require BWidget

    wm geometry . 500x500
    update idletasks

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

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

    update idletasks
    after 1000

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

    update idletasks
    after 1000

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

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

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

  Kind regards, 

  Jos.


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

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

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


tkt_uuid: 577055ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: struct
priority: 5 Medium
foundin: None
title: Add struct::list
cmimetype: text/plain
submitter: dgp
assignee: nobody
closer: dgp
closedate: 2003-03-24T17:15:25
comment:
  Add a new command [::struct::list] to the struct package.

  This should be the extended subcommand [list] or "listx"
  that has been discussed so many times.

  Let's have an implementation of it in tcllib, so future
  discussions about are not theoretical.


tkt_uuid: 2831785fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: bwidget
priority: 5 Medium
foundin: None
title: NoteBook page delete with destroyframe 0 has problems
cmimetype: text/plain
submitter: kjnash
assignee: damonc
closer: oehhar
closedate: 2009-08-04T06:58:09
comment:
  Using BWidget v1.8 via ActiveState teapot
  data($page,realized) should not be deleted if $destroyframe is 0

   # ---------------------------------------------------------------------------
   #  notebook.tcl
   #  This file is part of Unifix BWidget Toolkit
  -#  $Id: notebook.tcl,v 1.23 2005/01/26 01:01:26 hobbs Exp $
  +#  $Id: notebook.tcl,v 1.25 2009/07/01 14:41:30 oehhar Exp $
   # ---------------------------------------------------------------------------
   #  Index of commands:
   #     - NoteBook::create
  @@ -304,6 +304,7 @@
           destroy $path.f$page
       }
       _redraw $path
  +    unset data($page,width) data($page,realized)
   }


tkt_uuid: 3091244fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: htmlparse
priority: 5 Medium
foundin: None
title: parsing doesn't respect pre tag & trims trailing whitespaces
cmimetype: text/plain
submitter: martinlemburg
assignee: andreas_kupries
comment:
  tcllib 1.11.1 - htmlparse 1.1.3:
  ========================

  Parsing of preformatted text in HTML data enclosed by the HTML tag "pre" leads to the loss of trailing whitespaces.

  The procedure 2treeCallback must be fixed for example like this:

      set  tag  [string tolower $tag]
      if {$tag ne "pre"} {
          set  textBehindTheTag [string trim $textBehindTheTag]
      }

  Perhaps there are still other tags to think over a specialized handling.


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

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

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


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


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

  The attached script demonstrates the problem.


tkt_uuid: 2694992fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: exif
priority: 5 Medium
foundin: None
title: exif reports "Unrecognized EXIF Tag"
cmimetype: text/plain
submitter: stwitt
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2009-03-19T20:20:44
comment:
  Hi!

  My e-mail is
  mailto:stefan@witt-netz.de

  I am currently using your EXIF package to scan fotos for creation dates. In some fotos obviously originating from some Olympus camera, the EXIF package reports an error.
  See command sequence below:

  % set f [lindex $fl 17]
  p4190019.jpg
  % package require exif
  1.1.2
  % exif::analyzeFile $f
  Unrecognized EXIF Tag: 34850 (0x8822)
  % set h [open $f r]
  file5
  % exif::analyze -sadads $h
  can not find channel named "-sadads"
  % exif::analyze $h
  Unrecognized EXIF Tag: 34850 (0x8822)

  Target system is a laptop running Fedora 9,
  tcl_version 8.5, wish as executable & the latest yum-available tcllib.

  In my opinion, you might either want to
   - silently ignore unkonwn tags and just return the   known ones with associated values

  -introduce a -nocomplain flag upon which exif::analyze shows the a.m. behavior


  If you wouldn't mind sharing your thoughts with me - great! I might even spare some time in the near future to help you look into the source & find a fix.

  SourceForge bounced this request in the first place when I tried to include the foto causing the trouble (for size reasons, sure). Well, I'd e-mail the foto to you if you'd just drop me a mail.

  Best regards,

  Stefan Witt


tkt_uuid: 3598183fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: irc
priority: 8
foundin: None
title: Missing default detection of EOF
cmimetype: text/plain
submitter: ferrieux
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2013-01-09T20:39:05
comment:
  The manpage says that only 3  kinds of events must be registered, and that 'defaultcmd' works as a catch-all.
  However, an EOF from the irc socket fails to trigger it, and there is no $dispatch(EOF) unless explicitly registered.
  As a consequence, a disconnection from the irc server is, by default, easily overlooked.
  (this happened to the KGB bot on core.tcl.tk when an IP change broke the connection)

  Maybe the proper fix is simply to document the fact, and promote EOF to the status of fourth mandatory callback.


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


tkt_uuid: 1047058fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: md5
priority: 5 Medium
foundin: None
title: document end of options switch -- for md5 2
cmimetype: text/plain
submitter: mic42
assignee: patthoyts
closer: patthoyts
closedate: 2005-02-17T14:47:44
comment:
  The md5 package has trouble with strings containing -
  as first character, so there is support for -- as end
  of options...

  example:

  # this errors
  md5::md5 -hex -flabber
  # this does not
  md5::md5 -hex -- -flabber

  So everything is fine, but the switch isn't documented....

  Optionally it could be an idea to just interpret the
  last argument as string if neither -file nor -channel
  is given and only one argument is left, would safe md5
  from the classical nuisance we have with switch...


  Michael


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

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

  thx


tkt_uuid: 1316233fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: struct :: tree
priority: 8
foundin: None
title: struct::tree - need more testcases - walk, deserialize
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
comment:
  For deserialize - handling of attributes for root node

  For walk - Handling of walks modifying the tree while
  they are running (move/delete/add of children,
  move/delete of parent, etc). The current behaviour is
  highly implementation defined, and likely  different
  between Tcl and critcl implementations.


tkt_uuid: 2680202fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: md5
priority: 5 Medium
foundin: None
title: memory leak
cmimetype: text/plain
submitter: mstrhh
assignee: patthoyts
comment:
  the problem is observed by repeatedly calculating the md5 sum on the files of a (preferrably well filled) directory in an interactive tcl shell and watching the mem size of the process:

  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}

  Tested on openSuse 11.0, tcl 8.5.5 md5 2.0.7 (TEA version).

  Current workaround: exec md5sum works well so far.

  Test session:
  strobel@s11:~> tclsh
  % package require md5
  2.0.7
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:00      0     3 24260  3716  0.0 tclsh
  %  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:04      0     3 30104  9656  0.2 tclsh
  % foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  % exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Rl+    0:08      0     3 36060 15632  0.3 tclsh
  %  foreach n [glob DOWNLOAD/*] {md5::md5 -hex -file $n}
  %  exec ps -p [pid] v
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
   5935 pts/1    Sl+    0:12      0     3 42136 21592  0.5 tclsh
  %


tkt_uuid: 1852685fffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: ip
priority: 5 Medium
foundin: None
title: ::ip::isOverlap should support IPv6
cmimetype: text/plain
submitter: rkeene
assignee: aakhter
comment:
  ::ip::isOverlap should support IPv6

  tcl>package require ip
  1.1.1
  tcl>::ip::isOverlap 10.35.1.0/24 10.35.1.5
  1
  tcl>::ip::isOverlap 2002:0a23:0100::/80 2002:0a23:0100::5 
  Error: expected integer but got "2002:0a23:0100::"


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


tkt_uuid: 1399030fffffffffffffffffffffffffffffffff
type: RFE
status: Deleted
subsystem: None
priority: 5 Medium
foundin: None
title: import mini-tclhttpd
cmimetype: text/plain
submitter: nobody
assignee: nobody
closer: nobody
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: 3235340fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: uri
priority: 5 Medium
foundin: None
title: uri::split mishandles fragment
cmimetype: text/plain
submitter: duquette
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-03-23T04:41:59
comment:
  The uri::split command mishandles the "fragment" of http:// URIs in two ways:

  1. If the URI includes a query, e.g., http://myserver.com/foo?bar=baz#quux, the fragment is treated as part of the query.
  2. The "fragment" key is only included in the dictionary returned by uri::split if a fragment is found.  All of the other optional URI components are included with an empty value when the component is omitted.


tkt_uuid: 3609183fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: oo::util
priority: 5 Medium
foundin: None
title: ooutil::singleton not working when it is used as mixin class
cmimetype: text/plain
submitter: kbokng
assignee: andreas_kupries
comment:
  Example of how to use ooutil::singleton at http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/ooutil/ooutil.html is not working.
  Below is the extract of the example from the mentioned website:

  oo::class create example {
     self mixin singleton
     method foo {} {self}
  }

  puts [[example new] foo]
  puts [[example new] foo]


  I tried it and the return does not shown as the same object reference.


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

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


tkt_uuid: 511700ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
resolution: None
subsystem: apps : tkchat
priority: 5 Medium
severity: Minor
foundin: None
title: Chat window enhancement?
cmimetype: text/plain
submitter: lvirden
comment:
  It would be wonderful if i could :

  split the chat window

  run a search or read history in one window while
  watching the existing discussion in the other


tkt_uuid: 3325112fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Accepted
subsystem: ftp
priority: 5 Medium
foundin: None
title: ftp -- too enthusiastic use of reverse DNS
cmimetype: text/plain
submitter: ferrieux
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-09T20:05:03
comment:
  The calls to [fconfigure -peer/sockname], which incur reverse DNS lookups, are not ideally placed in the code. This matters when the reverse DNS lookup is likely to fail slowly (with a timeout). TYpical are ill-configured resolvers. Especially the lookup on the client's own IP is likely to fail when it's NATted. See https://groups.google.com/group/comp.lang.tcl/browse_frm/thread/65b6637a503f4966?hl=fr# .

   (1) [fconfigure -peername] is called unconditionally, but uses the result only in the VERBOSE case (!)

   (2) [fconfigure -sockname] is called unconditionally for the data connection, though it is only useful in active mode.


tkt_uuid: 1877643fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: tklib :: plotchart
priority: 5 Medium
foundin: None
title: pkgIndex.tcl and plotchart.tcl indicate different versions
cmimetype: text/plain
submitter: cbascom
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2008-01-25T07:40:50
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: 1060460fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: dns
priority: 5 Medium
foundin: None
title: ip::normalize & ipv6 rfc3513 sect 2.2.3 addressing
cmimetype: text/plain
submitter: nobody
assignee: patthoyts
closer: patthoyts
closedate: 2004-11-06T02:25:03
comment:
  Hi there,

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

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

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

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

  Thanks,

  Selina


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


tkt_uuid: 714211ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ncgi
priority: 5 Medium
foundin: None
title: test failure: ncgi module
cmimetype: text/plain
submitter: patthoyts
assignee: welch
closer: andreas_kupries
closedate: 2003-04-28T22:35:04
comment:
  Test platform: tcl 8.4.2, intel Windows 2000

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


tkt_uuid: 1154867fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: apps : tkchat
priority: 5 Medium
foundin: None
title: Add a bookmark when unseen chat happens
cmimetype: text/plain
submitter: ephaeton
assignee: wildcard_25
closer: wildcard_25
closedate: 2005-10-15T18:13:30
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: 507929ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Wont Fix
subsystem: bwidget
priority: 5 Medium
foundin: None
title: Error in TitleFrame using Tk 8.3.0
cmimetype: text/plain
submitter: nobody
assignee: hobbs
closer: hobbs
closedate: 2002-10-14T19:46:37
comment:
  BWidget requires Tk 8.1.1 according to its
  pkgIndex.tcl file.

  However, when using BWidget 1.3.1 with Tk 8.3.0,
  the following script results in an Error:

  % TitleFrame .title
  unknown option "-state"
      while executing
  "$foo configure $realopt"
      (procedure "Widget::declare" line 80)
      invoked from within
  "Widget::declare TitleFrame {
          {-relief      TkResource groove 0 frame}
          {-borderwidth TkResource 2      0 frame}
          {-font        T..."
      (in namespace eval "::TitleFrame" script line 2)
  [cut]

  This seems a mere versioning problem, as it is
  gone when using Tk 8.3.4. But if so, BWidget should
  request the higher version.


tkt_uuid: 505468ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Invalid
subsystem: None
priority: 5 Medium
foundin: None
title: missing MainFrame menu accelerator line
cmimetype: text/plain
submitter: norganos
assignee: nobody
closer: hobbs
closedate: 2002-01-22T20:52:44
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: 1196567fffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Accepted
subsystem: app: tkchat
priority: 5 Medium
foundin: None
title: Automatic clean-up of the NickList
cmimetype: text/plain
submitter: wildcard_25
assignee: wildcard_25
closer: wildcard_25
closedate: 2005-05-17T09:18:47
comment:
  This adds automatic removal of old nicks and 
  associated data (ie Color and Visibility) from the 
  resource file.
  Old nicks are removed after 30 days of non-usage, 
  except for your own. This is done through the 
  addition of a time stamp to the nick in the NickList.

  The 30 days is hard-coded but it should be easy 
  enough to make it into a configurable menu option.

  Old resource files are automatically updated to the 
  new format.


tkt_uuid: 460230ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: struct
priority: 5 Medium
foundin: None
title: there should be an 'exists -key xyz'
cmimetype: text/plain
submitter: davidw
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-09-14T18:14:55
comment:
  There is no way to tell whether a node's key exists or
  not.  If you try and get it and it doesn't exist, it
  fails with an error.  There ought to be a command that
  you can use to see if it exists or not.


tkt_uuid: 1804388fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: uevent
priority: 7 High
foundin: None
title: uevent::get - feature request
cmimetype: text/plain
submitter: cniemira
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2008-03-23T06:33:58
comment:
  I'd like to see a "uevent::get" and/or a "uevent::list" command implemented. It would be nice to be able to query tag/event pairs for a list of tokens or commands bound to them.


tkt_uuid: 3497592fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ListBox problem (at least with V1.9.5)
cmimetype: text/plain
submitter: wkechel
assignee: oehhar
closer: oehhar
closedate: 2012-03-06T14:24:02
comment:
  The options selectfill and autofocus are read-only, This should be documented or modified to support write access after widget creation.


tkt_uuid: 3325229fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: ftpd
priority: 5 Medium
foundin: None
title: RNTO calls callback "rename" with wrong number of args
cmimetype: text/plain
submitter: rkeene
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-08-09T20:41:56
comment:
  According to the documentation for the "rename" callback, it takes 3 args:
          fsCmd rename path newpath channel

  However, RNTO actually only calls it with 2 args:
          if {![catch {::ftpd::Fs rename $data(renameFrom) $path} msg]} {


tkt_uuid: 1416817fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: textutil
priority: 5 Medium
foundin: None
title: textutil: test suite bugs
cmimetype: text/plain
submitter: dgp
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2006-01-29T00:31:00
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: 440046ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: None
priority: 3 Low
foundin: None
title: latest md5 test suite fails
cmimetype: text/plain
submitter: lvirden
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-08-20T20:36:11
comment:
  Note that the category list is missing the md5 module.

  I downloaded the nightly cvs snapshot on the scriptics
  ftp site on July 10, 2001 around 9:30 AM EDT.

  When I am in the top level of the tcllib directory and
  do a make test I get this error for the md5 library:

  Module: md5
  modules/md5/md5.test
  md5 1.4 (pure Tcl)

  ==== md5-1.0 md5 FAILED
  ==== Contents of test case:

      catch {::md5::md5} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::md5 msg"
  ---- Result should have been (exact matching):
  no value given for parameter "msg" to "::md5::md5"
  ==== md5-1.0 FAILED

  ==== md5-1.1 md5 FAILED
  ==== Contents of test case:

      catch {::md5::hmac} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "key" to "::md5::hmac"
  ==== md5-1.1 FAILED

  ==== md5-1.2 md5 FAILED
  ==== Contents of test case:

      catch {::md5::hmac key} result
      set result

  ---- Result was:
  wrong # args: should be "::md5::hmac key text"
  ---- Result should have been (exact matching):
  no value given for parameter "text" to "::md5::hmac"
  ==== md5-1.2 FAILED


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

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

  I have a simple implementation against Tcllib 1.9 ready.

  Thanks,
  Bogdan.
  rftghost@gmail.com


tkt_uuid: 1151935fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: None
subsystem: math :: statistics
priority: 5 Medium
foundin: None
title: math::stats divide by zero error
cmimetype: text/plain
submitter: nobody
assignee: arjenmarkus
closer: arjenmarkus
closedate: 2006-01-30T13:28:44
comment:
  If the sum of the numbers sent to math::stats is zero
  there will be a divide by zero error when it goes to
  calculate the coefficient of variation.


tkt_uuid: 2972571fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: comm
priority: 5 Medium
foundin: None
title: comm send fails when the command ends in a backslash
cmimetype: text/plain
submitter: tomkiti
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2010-09-15T19:50:04
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: 3513263fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: bwidget
priority: 5 Medium
foundin: None
title: ComboBox does not work themed
cmimetype: text/plain
submitter: wkechel
assignee: oehhar
closer: oehhar
closedate: 2012-04-02T09:55:50
comment:
  Tk 8.5.9 with bwidget 1.9.5 gives the following error:

  package require BWidget
  Widget::theme 1
  toplevel .t
  ComboBox .t.c -bwlistbox 1 -hottrack 1 -values {1 2 3 4 5 6 7 8 9 10 11 12 13 14}
  .t.c
  .t.c configure
  unknown option "-highlightbackground"


  I guess the problem is in ComboBox and Entry since they use some resources not present when theming is active.


tkt_uuid: 558132ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
resolution: Duplicate
subsystem: smtp
priority: 5 Medium
foundin: None
title: smtp::sendmessage -maxsecs
cmimetype: text/plain
submitter: tcoram
assignee: mrose
closer: mrose
closedate: 2002-05-23T18:18:26
comment:
  A patch to workaround bug #557040. 

  This patch supercedes patch #557520 (adds: if timeout is 
  less than 0, set it to 0).

  557520: Rather than automatically calculate a timeout for SMTP
  acknowledging acceptance of message body (DATA), 
  allow the user to specify a timeout (default 120 seconds).


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


tkt_uuid: 1567155fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: blowfish
priority: 5 Medium
foundin: None
title: blowfish appending extra NULL chars
cmimetype: text/plain
submitter: asilver789
assignee: patthoyts
closer: patthoyts
closedate: 2006-10-02T20:53:37
comment:
  It appears blowfish is appending some NULL characters 
  at the end of a string when decrypting a string.  I 
  noticed this when I couldn’t get a simple 
  encrypt/decrypt script to work.  Visually, the 
  strings do match but there are “hidden” NULL 
  characters appended to the decrypted string.  I was 
  able to tell that by writing out the string to a file 
  and then performing an octal dump.  Here is this 
  simple script and the result when I run it.


  Thanks

  Al Silverstein
  asilver@net-sense.com


  #!/usr/local/ActiveTcl/bin/tclsh

  package require blowfish
  package require base64

  set KEY abc

  set clear_text secret

  set enc_string [::blowfish::blowfish -dir encrypt -
  mode cbc -iv 12345678  -key $KEY $clear_text]

  set decr_string [::blowfish::blowfish  -dir decrypt -
  mode cbc -iv 12345678  -key $KEY $enc_string]


  puts "Encrypted String is <$enc_string>"

  if { "$clear_text" == "$decr_string" } {
          puts "Success"
  } else {
          puts "clear_text <$clear_text> is NOT equal 
  to decr_string <$decr_string>"
  }

  set aa [open clear_text.txt "w"]
  set bb [open decr_string.txt "w"]

  puts $aa $clear_text
  puts $bb $decr_string

  close $aa
  close $bb


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

  Here is what happens when I run the script:


  asilver@sys-1:~/tcl2> ./blowfish_test2.tcl

  Encrypted String is <Ã½Ã
  clear_text <secret> is NOT equal to decr_string 
  <secret>
  asilver@sys-1:~/tcl2>



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

  Here is the octal dump:

  asilver@sys-1:~/tcl2> od -h clear_text.txt
  0000000 6573 7263 7465 000a
  0000007

  asilver@sys-1:~/tcl2> od -h decr_string.txt
  0000000 6573 7263 7465 0000 000a
  0000011
  asilver@sys-1:~/tcl2>


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


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


tkt_uuid: 1494597fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: spits out invalid <meta> tag
cmimetype: text/plain
submitter: robert_hicks
assignee: welch
closer: mic42
closedate: 2006-06-29T16:06:59
comment:
  The html package currently spits out a <meta> tag in
  the following format:

  <meta name="keywords" value="Tcl, TclHttpd, Tcl/Tk, Tcl
  Web Server, Web Server">

  The spec for <meta> tags reads "content=" not "value=".
  So the correct tag should be:

  <meta name="keywords" content="Tcl, TclHttpd, Tcl/Tk,
  Tcl Web Server, Web Server">

  I have verified this on the W3C site:

  http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.2

  and in my O'Reilly "HTML & XHTML" book.

  Robert Hicks

  P.S. I tested this using the tclhttpd server during my
  investigation about adding more tag support for this
  package.


tkt_uuid: 434202ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Duplicate
subsystem: None
priority: 5 Medium
foundin: None
title: Static checker results
cmimetype: text/plain
submitter: andreas_kupries
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2001-06-20T23:34:42
comment:
  The static checkers "frink" and "procheck" were run
  over the scripts in tcllib (not Bwidgets nor tklib).
  The found problems were fixed (or suppressed if not
  actually a problem). The enclosed patch details the
  changes. (ftp[d] is not checked yet).


tkt_uuid: 596000ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: html
priority: 5 Medium
foundin: None
title: html display depends on ncgi
cmimetype: text/plain
submitter: mic42
assignee: gwlester
closer: gwlester
closedate: 2002-11-25T02:42:56
comment:
  The html display function needs the ncgi package from
  tcllib, but this isn't properly package required.

  Solution:

  Add [package require ncgi] to counter.

  Michael Schlenker


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

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


tkt_uuid: 1225870fffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: control
priority: 5 Medium
foundin: None
title: [try] command
cmimetype: text/plain
submitter: dkf
assignee: dgp
closer: andreas_kupries
closedate: 2005-07-05T16:10:30
comment:
  Here's a [try] command using the features of TIP#90,
  perhaps for adding to the control package. I'm
  perfectly happy with the code being published under the
  normal tcllib license.

  proc try {script args} {
      upvar 1 try___msg msg try___opts opts
      if {[llength $args]!=0 && [llength $args]!=2} {
  return -code error "wrong \# args: should be \"try
  script ?finally script?\""
      }
      if {[llength $args] == 2} {
  if {[lindex $args 0] ne "finally"} {
      return -code error "mis-spelt \"finally\" keyword"
  }
      }
      set code [uplevel 1 [list catch $script try___msg
  try___opts]]
      if {[llength $args] == 2} {
  uplevel 1 [lindex $args 1]
      }
      if {$code} {
  dict incr opts -level 1
  return -options $opts $msg
      }
      return $msg
  }


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


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

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


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

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

  Keith Vetter


tkt_uuid: 1037636fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: fileutil
priority: 5 Medium
foundin: None
title: TempFile does not generate random names on fast computers
cmimetype: text/plain
submitter: nobody
assignee: andreas_kupries
closer: techentin
closedate: 2004-12-01T22:26:54
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: 1709566fffffffffffffffffffffffffffffffff
type: Bug
status: Open
resolution: None
subsystem: ftp
priority: 5 Medium
foundin: None
title: crash during ftp::Get
cmimetype: text/plain
submitter: hofkensg
assignee: andreas_kupries
comment:
  I sometimes see the following crash during a ftp::Get :

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


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


tkt_uuid: 3163541fffffffffffffffffffffffffffffffff
type: Bug
status: Closed
resolution: Fixed
subsystem: grammar_peg
priority: 5 Medium
foundin: None
title: Possibly wrong call of ict_match_token
cmimetype: text/plain
submitter: igorstravinski
assignee: andreas_kupries
closer: andreas_kupries
closedate: 2011-01-25T06:40:20
comment:
   in line 116 of grammar_peg/peg_interp.tcl:
              ict_match_token "Expected $ch"
  should read
              ict_match_token $ch "Expected $ch"

  See, e.g. <http://wiki.tcl.tk/15512> for more details


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

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

  Some concrete possibilities for how to improve things:

  1. In the Description:

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

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

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

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

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


