diff options
author | Ian Roxborough <irox@redhat.com> | 2001-09-10 00:22:29 +0000 |
---|---|---|
committer | Ian Roxborough <irox@redhat.com> | 2001-09-10 00:22:29 +0000 |
commit | ee7709783c85577eba6af30cd711e17e403befed (patch) | |
tree | 74233a880ee1f7e13c7ded61d093318e8c6e7d5c /tk/mac/tkMacHLEvents.c | |
parent | a850c17c374d03259483e799b09326d255e17487 (diff) | |
download | gdb-TK_8_3.tar.gz |
Tk 8.3 upgradeTK_8_3
Diffstat (limited to 'tk/mac/tkMacHLEvents.c')
-rw-r--r-- | tk/mac/tkMacHLEvents.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/tk/mac/tkMacHLEvents.c b/tk/mac/tkMacHLEvents.c index 02708c0d634..69d1610ab33 100644 --- a/tk/mac/tkMacHLEvents.c +++ b/tk/mac/tkMacHLEvents.c @@ -228,13 +228,11 @@ OdocHandler( } Tcl_DStringInit(&command); - Tcl_DStringInit(&pathName); Tcl_DStringAppend(&command, "tkOpenDocument", -1); for (index = 1; index <= count; index++) { int length; Handle fullPath; - Tcl_DStringSetLength(&pathName, 0); err = AEGetNthPtr(&fileSpecList, index, typeFSS, &keyword, &type, (Ptr) &file, sizeof(FSSpec), &actual); if ( err != noErr ) { @@ -243,17 +241,17 @@ OdocHandler( err = FSpPathFromLocation(&file, &length, &fullPath); HLock(fullPath); - Tcl_DStringAppend(&pathName, *fullPath, length); + Tcl_ExternalToUtfDString(NULL, *fullPath, length, &pathName); HUnlock(fullPath); DisposeHandle(fullPath); - Tcl_DStringAppendElement(&command, pathName.string); + Tcl_DStringAppendElement(&command, Tcl_DStringValue(&pathName)); + Tcl_DStringFree(&pathName); } - Tcl_GlobalEval(interp, command.string); + Tcl_GlobalEval(interp, Tcl_DStringValue(&command)); Tcl_DStringFree(&command); - Tcl_DStringFree(&pathName); return noErr; } @@ -312,6 +310,7 @@ ScriptHandler( theErr = -1771; } else { if (theDesc.descriptorType == (DescType)'TEXT') { + Tcl_DString encodedText; short length, i; length = GetHandleSize(theDesc.dataHandle); @@ -324,7 +323,10 @@ ScriptHandler( } HLock(theDesc.dataHandle); - tclErr = Tcl_GlobalEval(interp, *theDesc.dataHandle); + Tcl_ExternalToUtfDString(NULL, *theDesc.dataHandle, length, + &encodedText); + tclErr = Tcl_GlobalEval(interp, Tcl_DStringValue(&encodedText)); + Tcl_DStringFree(&encodedText); HUnlock(theDesc.dataHandle); } else if (theDesc.descriptorType == (DescType)'alis') { Boolean dummy; @@ -361,10 +363,12 @@ ScriptHandler( if (tclErr >= 0) { if (tclErr == TCL_OK) { AEPutParamPtr(reply, keyDirectObject, typeChar, - interp->result, strlen(interp->result)); + Tcl_GetStringResult(interp), + strlen(Tcl_GetStringResult(interp))); } else { AEPutParamPtr(reply, keyErrorString, typeChar, - interp->result, strlen(interp->result)); + Tcl_GetStringResult(interp), + strlen(Tcl_GetStringResult(interp))); AEPutParamPtr(reply, keyErrorNumber, typeInteger, (Ptr) &tclErr, sizeof(int)); } @@ -435,3 +439,4 @@ MissedAnyParameters( return (err != errAEDescNotFound); } + |