Version 12 of tkoutline

Updated 2002-11-11 23:16:47

tkoutline - http://tkoutline.sourceforge.net/ is an outline editor. It is distributed as a starkit, a win32 starpack, and as a standard tar distributed source tree.

Version 0.84 released on 10-Nov-02

Tkoutline uses a modified wikit as its website. The date at the bottom of each page is a link to the same page with the its most recent changes highlighted. Also, the Contents link at the bottom of each page provides the functionality I posted at Wiki heirarchical table of contents.


Scott Gamon - I had a little problem running tkoutline 8.4 without the Starkit. I'm using Tcl 8.4.1 on Win XP Pro. When I ran bin/main.tcl it errored out as follows:

 permission denied
    invoked from within
 "source {$p(:40:)/struct/struct.tcl}"
    ("package ifneeded" script)
    invoked from within
 "package require struct"
    invoked from within
 "safeInterp eval package require struct"
    invoked from within
 "if {[catch {::safe::interpCreate safeInterp -accessPath {}}]} {
    # Creation of a safe interpreter fails for older versions of
    # tclkit that don..."

Examining main.tcl, the error occurs in:

 # Create a safe interpreter to read in the outline "data" files (since
 # the data files are actually Tcl source.  Give the interpreter the
 # same access to packages as the main interpreter has.
 if {[catch {::safe::interpCreate safeInterp -accessPath {}}]} {
    # Creation of a safe interpreter fails for older versions of
    # tclkit that don't have the vfs-in-core functionality of Tcl 8.4
    # (As of 02/2002 this is all versions of tclkit, except for
    # bleeding-edge preview releases).  Revert to an unsafe interpreter
    ::safe::interpDelete safeInterp
    interp create safeInterp
    safeInterp eval set tcl_library [list [set tcl_library]]
    safeInterp eval {source [file join $tcl_library/init.tcl]}
    safeInterp eval set auto_path [list [set auto_path]]
    safeInterp eval package require struct
    interp hide safeInterp source
 } else {
    safeInterp eval package require struct
 }

I was able to get main.tcl running by replacing that section with:

    interp create safeInterp
    safeInterp eval set tcl_library [list [set tcl_library]]
    safeInterp eval {source [file join $tcl_library/init.tcl]}
    safeInterp eval set auto_path [list [set auto_path]]
    safeInterp eval package require struct
    interp hide safeInterp source

Brian Theado - Thanks for the feedback. This is some code that needed cleaned up even when it worked. I will get this problem fixed in the distribution.


Category Application