#263 Fix for bug #219293 (and #219155)

Pat Thoyts

This is a fix for bug #219293.


  • Pat Thoyts

    Pat Thoyts - 2003-03-11

    Logged In: YES

    I am uploading an enhanced version of the -unique patch for
    tclWinDde.c. This addresses concerns about locking the tcl
    application in the event of badly behaved windows applications.

    What I have done here is to factor out the implementation of
    dde services into a separate function
    DdeGetServicesList(interp, appname, topicname). This builds
    the services list and returns the list as the interp's result.

    Secondly I've reimplemented this function in terms of raw
    DDE calls using SendMessageTimeout. I have left the original
    code in for reference #ifdef'd out which also helps to
    bracket the collection of functions required to implement
    the new functionality.

    The new services function will ignore servers that are not
    processing messages. It also fixes bug #219155 as dde
    services {} $topic works as described.

    The new code is only accessed from the services command -
    and from the servername command unless -exact is specified.

    Following on from this in the future, I could see a case for
    reimplementing the remainder of the Dde package in raw dde
    and putting it onto a secondary thread. This would mean that
    tclsh using dde would be a 'well behaved' windows
    application - at least for dde. I do not know if it's
    sufficiently worth it though. Having all dde calls using
    SendMessageTimeout is a pretty significant plus though.

  • Pat Thoyts

    Pat Thoyts - 2003-03-11
    • summary: Fix for bug #219293 --> Fix for bug #219293 (and #219155)
  • Pat Thoyts

    Pat Thoyts - 2003-03-11

    Logged In: YES

    Crap - attaching the patch file this time :)

  • Kevin B KENNY

    Kevin B KENNY - 2003-03-23
    • assigned_to: kennykb --> patthoyts
  • Pat Thoyts

    Pat Thoyts - 2003-05-16
    • status: open --> closed-accepted
  • Pat Thoyts

    Pat Thoyts - 2003-05-16

    Logged In: YES

    TIP #130 passed. Patch applied


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks