On 6/22/08, Stephen McCamant <[EMAIL PROTECTED]> wrote:
>
>  When I try to run transcriber, which uses tcLex, under a version 8.5
>  Tcl/Tk wish, it segfaults. If a file is specified on the command line,
>  it crashes immediately; otherwise it opens a file chooser and then
>  crashes after you choose a file. (I suspect that this is the same
>  failure behind transcriber bug #484738, though it's hard to be sure
>  because there aren't any details of the failure in that report.)

The problem is likely caused by the differences in TclRegexp structure
for Tcl 8.4 and Tcl 8.5 (this structure is internal though used by
tcLex).

In Tcl 8.4 (/usr/include/tcl8.4/tcl-private/generic/tclRegexp.h):

typedef struct TclRegexp {
    int flags;
    regex_t re;
    CONST char *string;
    Tcl_Obj *objPtr;
    regmatch_t *matches;
    rm_detail_t details;
    int refCount;
} TclRegexp;

In Tcl 8.5 (/usr/include/tcl8.5/tcl-private/generic/tclRegexp.h):

typedef struct TclRegexp {
    int flags;
    regex_t re;
    CONST char *string;
    Tcl_Obj *objPtr;
    Tcl_Obj *globObjPtr; /* This field is new */
    regmatch_t *matches;
    rm_detail_t details;
    int refCount;
} TclRegexp;

So, tcLex won't work for both 8.4 and 8.5. I think the best I can do
(while Tcl 8.4 is the default) is to check for 8.5 and refuse loading.

-- 
Sergei Golovan



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to