diff options
| author | das <das> | 2002-04-08 09:04:31 (GMT) |
|---|---|---|
| committer | das <das> | 2002-04-08 09:04:31 (GMT) |
| commit | 2024eae67e8a0249d280bd2f8423ecd91033040b (patch) | |
| tree | 388b7f23b6b3cafb2c20243044e6b0a315a7ec0f | |
| parent | edf6ae717ffa12d49b2c5163c7d44c7fa3693020 (diff) | |
| download | tk-2024eae67e8a0249d280bd2f8423ecd91033040b.zip tk-2024eae67e8a0249d280bd2f8423ecd91033040b.tar.gz tk-2024eae67e8a0249d280bd2f8423ecd91033040b.tar.bz2 | |
2002-04-08 Daniel Steffen <das@users.sourceforge.net>
* mac/tkMacProjects.sea.hqx: added tkPanedWindow.c to projects
* mac/tkMacAppInit.c: fixes to MSL stdin/stdout hookup to the
TkConsole when using shared MSL libraries; fix for crashing
bug on exit: writing to stdin/sterr when console has already
been destroyed. (both fixes need support in MSL, see
'CW Pro6 changes' in tcl/mac/tcltkMacBuildSupport.sea.hqx)
* mac/tkMacDialog.c: fixes to Navigation Services Dialog filter.
* mac/tkMacDraw.c: add panic for overwide TkImages that would
crash Tk on mac otherwise.
| -rw-r--r-- | ChangeLog | 12 | ||||
| -rw-r--r-- | mac/tkMacAppInit.c | 52 | ||||
| -rw-r--r-- | mac/tkMacDialog.c | 9 | ||||
| -rw-r--r-- | mac/tkMacDraw.c | 5 | ||||
| -rw-r--r-- | mac/tkMacProjects.sea.hqx | 6973 |
5 files changed, 3522 insertions, 3529 deletions
@@ -1,3 +1,15 @@ +2002-04-08 Daniel Steffen <das@users.sourceforge.net> + + * mac/tkMacProjects.sea.hqx: added tkPanedWindow.c to projects + * mac/tkMacAppInit.c: fixes to MSL stdin/stdout hookup to the + TkConsole when using shared MSL libraries; fix for crashing + bug on exit: writing to stdin/sterr when console has already + been destroyed. (both fixes need support in MSL, see + 'CW Pro6 changes' in tcl/mac/tcltkMacBuildSupport.sea.hqx) + * mac/tkMacDialog.c: fixes to Navigation Services Dialog filter. + * mac/tkMacDraw.c: add panic for overwide TkImages that would + crash Tk on mac otherwise. + 2002-04-05 Jeff Hobbs <jeffh@ActiveState.com> * mac/tkMacXStubs.c: added Tk_SetCaretPos stub (does nothing). diff --git a/mac/tkMacAppInit.c b/mac/tkMacAppInit.c index c625609..50f6156 100644 --- a/mac/tkMacAppInit.c +++ b/mac/tkMacAppInit.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacAppInit.c,v 1.13 2002/01/15 20:48:30 dgp Exp $ + * RCS: @(#) $Id: tkMacAppInit.c,v 1.14 2002/04/08 09:04:34 das Exp $ */ #include <Gestalt.h> @@ -25,6 +25,7 @@ #include "tkMacInt.h" #include "tclInt.h" #include "tclMac.h" +#include "tclMacInt.h" #ifdef TK_TEST extern int Tktest_Init _ANSI_ARGS_((Tcl_Interp *interp)); @@ -49,6 +50,9 @@ void RemoveConsole _ANSI_ARGS_((void)); long WriteCharsToConsole _ANSI_ARGS_((char *buff, long n)); long ReadCharsFromConsole _ANSI_ARGS_((char *buff, long n)); extern char * __ttyname _ANSI_ARGS_((long fildes)); +int kbhit _ANSI_ARGS_((void)); +int getch _ANSI_ARGS_((void)); +void clrscr _ANSI_ARGS_((void)); short SIOUXHandleOneEvent _ANSI_ARGS_((EventRecord *event)); /* @@ -57,6 +61,10 @@ short SIOUXHandleOneEvent _ANSI_ARGS_((EventRecord *event)); static int MacintoshInit _ANSI_ARGS_((void)); static int SetupMainInterp _ANSI_ARGS_((Tcl_Interp *interp)); +static void SetupSIOUX _ANSI_ARGS_((void)); + +static int inMacExit = 0; +static pascal void NoMoreOutput() { inMacExit = 1; } /* *---------------------------------------------------------------------- @@ -319,6 +327,8 @@ SetupMainInterp( if (Tk_CreateConsoleWindow(interp) == TCL_ERROR) { goto error; } + SetupSIOUX(); + TclMacInstallExitToShellPatch(NoMoreOutput); } /* @@ -368,8 +378,15 @@ RemoveConsole(void) long WriteCharsToConsole(char *buffer, long n) { - TkConsolePrint(gStdoutInterp, TCL_STDOUT, buffer, n); - return n; + if (!inMacExit) { + Tcl_DString ds; + Tcl_ExternalToUtfDString(NULL, buffer, n, &ds); + TkConsolePrint(gStdoutInterp, TCL_STDOUT, Tcl_DStringValue(&ds), Tcl_DStringLength(&ds)); + Tcl_DStringFree(&ds); + return n; + } else { + return 0; + } } long @@ -390,8 +407,37 @@ __ttyname(long fildes) return (0L); } +int kbhit(void) +{ + return 0; +} + +int getch(void) +{ + return 0; +} + +void clrscr(void) +{ + return; +} + short SIOUXHandleOneEvent(EventRecord *event) { return 0; } +static void SetupSIOUX(void) { +#ifndef STATIC_BUILD + extern DLLIMPORT void SetupConsolePlugins(void*, void*, void*, void*, + void*, void*, void*, void*); + SetupConsolePlugins( &InstallConsole, + &RemoveConsole, + &WriteCharsToConsole, + &ReadCharsFromConsole, + &__ttyname, + &kbhit, + &getch, + &clrscr); +#endif +} diff --git a/mac/tkMacDialog.c b/mac/tkMacDialog.c index 03fb495..8719782 100644 --- a/mac/tkMacDialog.c +++ b/mac/tkMacDialog.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacDialog.c,v 1.8 2002/01/18 03:24:24 das Exp $ + * RCS: @(#) $Id: tkMacDialog.c,v 1.9 2002/04/08 09:04:38 das Exp $ */ #include <Gestalt.h> @@ -1050,17 +1050,10 @@ OpenEventProc( { NavMenuItemSpec *chosenItem; OpenFileData *ofd = (OpenFileData *) callBackUD; - static SInt32 otherEvent = ~(kNavCBCustomize|kNavCBStart|kNavCBTerminate - |kNavCBNewLocation|kNavCBShowDesktop|kNavCBSelectEntry|kNavCBAccept - |kNavCBCancel|kNavCBAdjustPreview); if (callBackSelector == kNavCBPopupMenuSelect) { chosenItem = (NavMenuItemSpec *) callBackParams->eventData.eventDataParms.param; ofd->curType = chosenItem->menuType; - } else if ( callBackSelector & otherEvent != 0) { - while (Tcl_DoOneEvent(TCL_IDLE_EVENTS|TCL_DONT_WAIT|TCL_WINDOW_EVENTS)) { - /* Empty Body */ - } } else if (callBackSelector == kNavCBEvent) { if (callBackParams->eventData.eventDataParms.event->what == updateEvt) { if (TkMacConvertEvent( callBackParams->eventData.eventDataParms.event)) { diff --git a/mac/tkMacDraw.c b/mac/tkMacDraw.c index f684976..f3af2fc 100644 --- a/mac/tkMacDraw.c +++ b/mac/tkMacDraw.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacDraw.c,v 1.8 1999/12/14 06:52:56 hobbs Exp $ + * RCS: @(#) $Id: tkMacDraw.c,v 1.9 2002/04/08 09:04:43 das Exp $ */ #include "tkInt.h" @@ -370,6 +370,9 @@ TkPutImage( pixmap.pmTable = NULL; pixmap.pmReserved = 0; pixmap.baseAddr = image->data; + if (image->bytes_per_line >= 0x4000) { + panic("TkImage too wide!"); + } pixmap.rowBytes = image->bytes_per_line | 0x8000; CopyBits((BitMap *) &pixmap, &((GrafPtr) destPort)->portBits, diff --git a/mac/tkMacProjects.sea.hqx b/mac/tkMacProjects.sea.hqx index 403eda6..209db47 100644 --- a/mac/tkMacProjects.sea.hqx +++ b/mac/tkMacProjects.sea.hqx @@ -1,10 +1,10 @@ (This file must be converted with BinHex 4.0) -:%A4V6@&M8(*[DQ9MG(-ZFf9K!%&38%aKGA0d)3!!!52U!!'Se@H#8h4eCQC*G#! -SBbNa16Nh,6%j16JJ3@aKC'4TEL"6HA0dC@ec,#"*EQ-Z,#"SG(4`1Lm[Gj!$,Q& -XB@4ND@jcHA-ZBfpY,e0dG@CQ5A3[$3SD!!83!!%MkJ#3!h)!!3#3!h+8r!fPT9* -PFf9bGQ9NTD8!TC!%!3!!1!"%Y[&1mlEa6e`!N!d)iZ3!N!21!#T'#!!")a`!!Ld +:%A4V6@&M8(*[DQ9MG(-ZFf9K!%&38%aKGA0d)3!!!55`!!'FbmEa8h4eCQC*G#! +SBbNa16Nh,6)`-$%J3@aKC'4TEL"6HA0dC@ec,#"*EQ-Z,#"SG(4`1Lm[Gj!$,Q& +XB@4ND@jcHA-ZBfpY,e0dG@CQ5A3[$3SD!!83!!%NX!#3!h)!!3#3!h*$LJfPT9* +PFf9bGQ9NTD8!TC!%!3!!1!"%Y[&1mlEa6e`!N!d)([`!N!21!#T5+!!")q)!!Ld q)%*eD@aN!!#6j`"h!!-"K3)M!F$rN!3$([rirr$,4!!!J!#3"k@3"!%!!$8!4,3 -GFA1i)pb9!*!$FJ!")Y-!N!0b!!836`!!!5F!+N3L!!%KV!!',6iJG'X!!&%D!(d +GFA1ieiZ4!*!$FJ!")jN!N!0b!!A&[!!!!5F!+P"#!!%LFJ!',6iJG'X!!&%D!(d !%!(C!IS"`2q3"!)HrrMrm-Y!!!#!!*!(TC!%!3!!1J#!Y+(T3,G0'[)!N!21!!! 0p`#3!mi!#TmI!!#ULJ!!$()!N!32!&4VAde%48BZci!!!%#b68e3FN0A588"!2q 3"!#3#S"`!*!'3X(8V`#MIfe6h,C[6F[BU8PkVQmm&A9!cS#KIR"DLBeM9H,PPS9 @@ -157,3495 +157,3434 @@ M8Yr5c8Qc#mjeQM5B-Br!%0QP6kE5c*ME@Q"HN!$MA$aQLkf6'@Yj%kL`)Vbi,6# CB$dUpE6@FAP614b)9)08G0HbCXb3!,HrT,%F!1N5dkEq@i)b))mN'bRJd4KUXYr #cNU`&-!Cc"XU+he@PR5rbQK,9hrLDH8rB3XYpY)Blm#I*L!&''VDGf6!MJ2Ml[E c"(hYXh8YZJ3raeM-PQ-9USfdij2lI3TZ30'PE%'3!#519jQba!SN@A!1K"PJchi -5"6%hBD,TBP32lPBkr%L&kPZJkaIRkAZMBBrM!+@3"!%!!$i!J,5KkFDhfk"B!!! -0p`!!G3F!N!21!!kPa`!(VHF!!&Er!*!%$`"8DdaTBR*KFQPPFbl2J!!!3,*069" -b3eG*43%!rj!%!*!+J(!!N!C#`G6H#A*'`qFAP'bER8VP`Id"C@dq%6Ae`M-PcC5 -92qNQkh2iJcD3!&%jpFiej`'9j,Al4d),d[KXS8*)+0r##)pGGm5N'1K9Q0Sjk(E -Lld)fH5qL2020%2%!F1DeZ!NYphVS'Y6N"JjbE1)3PB"rkG"'kaK(L0A-583ISki -HPr)&CHHVeJEGXr0eVA#Ek%VfGemFAUL%G0K&CSm6!PRd,H%+,VkclM@G262[U3* -5UhG`+Abdbd@hrpI2cD,d&r,V!E)S)crS0`9%QB!0j+IJ,p&8Ik40[MV`S#&*$8X -jI(md'iEUA,M0'&m6&,jE(pae0+aGe[`F@0BG&Dd)6hNH2`!l2"#TF!8m%PT49,f -J9h"3&aZY6mUUR&5`KUGCI+!U88ci&@bj)$bUQLTYh*DT(9k+Xe+)TXf-MNBD#jC -%4+Ra5caVNIbTKCb-!+m1A6USf92"EAVDS%1F$(cDm63Pa4JaaB(N'3i(!e4jN3Q -136RBPVMH5GE`0'T8K0m9%EeZT2h)AhA'&I(RdT%K+MVJ`II5FZQ9J#pmQ`mZeN0 -fEiiKD)`BMNJ4U`+BI'*kFLhaMAA`d(ak+G6lQh'HK1!50i,NH1CKPY!A@I$c"p( -K+j-YHm`A"-+T9mVejE8C1ebj!6(rd1U0(Q4EK&Rr,hi93BZf,&a+N!!'&$%f8I( -Im-Lj40daF5qD[dAGQ5&armFDjH-94!ip%9'F5L#3!$cHk3hf[a!bqcDII0R[YK@ -kVPDESImj#mjBVhm9!-YPQM#$hrNX`*1aA`3h$-3aejNVf92D!hmmTlZR`5I-1ME -$IE+#J"'H83%,YXXEAXI1MI)`AP4XrS,6RiKLRLCDKT4`0E0rDcTR-Cf*#3rlb4a -J!echh1J!DI,Ge&45R$f4cS3hDGB#0T,"Q)DE56IV+1Mr4*`-Q@(Q(r*J"6J#b!' -K6L-+flb6!rj,(hB`hS3dY)`mbr$6JflhS%4ml"d#9YccES1b"1"@L53!9"kZF3M -Ed04%jM)[8`AVqU&MX4*2Jr9Nlie$p1SeGG+$$SK6*D@KFB*AU4'0f$TSBIm$Fm# -UpUf)$ie)D[(&M!%qII"!E2YpUJ"%jlT3YVEM@Cj4l39Q2'Q0Qcm-N`'J(&k0a6E -*5`3VqhBTjq*iqefLi6Jl9XZd02YDV[[!c@Yd!HZlJPb*A%kBqA3YQ%5YrS2YEUa -),CkS*Uc3YDfpipVU2bf2Drfe@''(@Z1mdLX1NX'JJ[mVAe!SNR&j9r[iXF5M-'1 -@HFB1MFD+3&)l#)`r*,2jY3d2m%P%IU2qj4me-aY1Ijef"'i&jF32E+$lFZ#X"d& --fHS)U[EhUS*+$E5FH('I!86dQG33hNRk)"5qa1556&pk-lE0fHQBb#8LUBCYXL[ -d%i9%$,*%Gq4X1j&!%eLaU8Vk%ZR9jYeFL$1JGq5VL*c@+jhVZ#fN(8Y8m*YZ"Zl -i$%Cd'QV-[S2XJp&Y'`9P[1pZJc[a!5p'4CFJ(*LeU&LG$D%iR[Mr&,U#DZCQ#ij -CF&`aVU2Rdd0-)BGGNMRe'-P!9S!Ddh`ThjBK*@mG-Ge#KFfqZ4"CE9'be$qSc6[ -q$pTS+Z[3GY2fhla9Dcc4#B+aGK3a3'8#l6Vp`)8D[ED&FEF'3',beIXrlA3S#eT -b9%%r--`jFEAp6%KlIV$K*m+C[RjY88cFjC!!SDAQcD"F9K58R@S#N!!5$3f,ei" -"ZL8i"*AKBQ[1qqhb#VBC-d"99LE8(e'EcB#S8kGNPp#Fj84@))3&LVCVfReVY@+ -8QTakMPS4#B%Nd3UQM569AqRJ0-fkdl"((JA+RPXmIFi,cJl2JMLrE+H)G6qfKPq -5qlh)lU`&mUF@'6$+EBpdRlU!4%ZG&1YcdPlRE6qfS8fqGPTQ+DZJf9Sf2JS-KQl -XFJXU+E"NTYekj'IFK!V)GS@lb!XMmm("&qYZlc*"@JR,EekhLE5NIA2V6'fpS8T -)AEm,Hf00*r$FXU"jVdLH@rR5XeCDE#8AGB84mlAX41()2S2RRT*E*,`'fcme+"k -Qc+-FA$*pe`UB#&Rq[j!!H00Qr'XE5eV!IKr'q0a"IS+A`19EL@mV@jF0I"kCC&" -LF#114kEK"83Z-Rpji6ZXrR&1BmFJfJJ!([adLi-a!S$K9fqKe4A$KF90A1"##X3 -#Q)pL2m6V9@pC'elR)AEmZheTF0"mKSi5BhqK-ACV-!(*fm9S,`3%VDJ`@PdTV#@ -Sq$LV#Ze5!hX1Fj-%$HPKH$F&