home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Information / Digests / THINK C Digest / 1990 / 90-12 < prev   
Encoding:
Text File  |  1994-05-04  |  90.5 KB  |  2,098 lines  |  [TEXT/R*ch]

  1. 
  2. Path: ucivax!gateway
  3. From: nagel@ICS.UCI.EDU (Mark Nagel)
  4. Subject: ARCHIVE: Exception Handler
  5. Message-ID: <25660.660009606@ics.uci.edu>
  6. Newsgroups: fa.think-c
  7. Reply-To: nagel@ICS.UCI.EDU
  8. Organization: University of California, Irvine - Dept of ICS
  9. Lines: 47
  10. Date: 1 Dec 90 00:02:16 GMT
  11. Phone: (714) 856-5039
  12.  
  13. Date:    Fri, 30 Nov 1990 18:24 EST
  14. From:    "R. Mark Fleming" <FLEMINGM@qucdn.queensu.ca>
  15. Subject: Exception Handler
  16.  
  17. ExceptionHandler.sit is a set of routine to enable Think C users to
  18. compile ande shading; hidden line, surface, and
  19. object removal; matrix data plotting functions; PICT input and output;
  20. offscreen and animation facilities; grid backdrops and text labels in 3d
  21. space; and lots more. The documentation is good, and you *DO* get souce
  22. code. There is a HyperCard XCMD/XFNC version as well. HOWEVER, I have
  23. not used it extensively, and you may find the data types not to your
  24. liking. There are no liscencing/royalty fees, etc.
  25. If I recall correctly, there is a demo file on CompuServe, probably on
  26. Symantec forum, or Mac Programming forum. Anyway, if interested, give
  27. the guy a call, as he's really nice, and he can tell you better than me
  28. whether this is a worthwhile thing.
  29.  
  30. Just thought you might like to know that there is an option.
  31.  
  32. Cheers,
  33.  
  34. David McCormick
  35. MIT-EAPS Geology
  36. Cambridge, MA 02139
  37. dmac@athena.mit.edu
  38. 
  39. 
  40. Path: ucivax!gateway
  41. From: nagel@ICS.UCI.EDU (Mark Nagel)
  42. Subject: ARCHIVE: CAfterDark
  43. Message-ID: <23187.660259806@ics.uci.edu>
  44. Newsgroups: fa.think-c
  45. Reply-To: nagel@ICS.UCI.EDU
  46. Organization: University of California, Irvine - Dept of ICS
  47. Lines: 74
  48. Date: 3 Dec 90 21:34:11 GMT
  49. Phone: (714) 856-5039
  50.  
  51. Date: Mon, 3 Dec 90 01:50:12 -0600
  52. From: Jeff Francis <jfrancis@umaxc.weeg.uiowa.EDU>
  53. Subject: CAfterDark 2.0 - It's all here!
  54.  
  55.                                CAfterDark 2.0
  56.                        (c) Copyright Jeff Francis 1990
  57.  
  58.  
  59. Introduction
  60.  -----------
  61. CAfterDark is a base class that allows you to write graphics modules
  62. for Berkeley Systems' After Dark in terms of an object based
  63. abstraction.  The base class, CAfterDark, provides the default behavior
  64. for a graphics module by simply blanking the screen.  Subclasses can
  65. then add or change this basic behaviour.  CAfterDark 2.0 now supports
  66. After Dark 2.0.  This version has been tested on a SE and a IIfx with
  67. a 8.24GC card.
  68.  
  69.  
  70. Disclaimer and Copyright Notice (i.e., # of Lawyers >> # of Programmers!)
  71.  ------------------------------------------------------------------------
  72. The software and accompanying instructions for use are provided
  73. "as is" without warranty of any kind.  Further, Jeff Francis, does
  74. not warrant, guarantee, or make any representation regarding the use
  75. of the software or accompanying instructions in terms of correctness,
  76. accuracy, currentness, or otherwise.
  77.  
  78. (c) Copyright Jeff Francis 1990.  Permission is granted to make and
  79. distribute copies of this software, provided this disclaimer and
  80. copyright notice are preserved on all copies.  The software may not,
  81. however, be sold or distributed for profit, or included with other
  82. software which is sold or distributed for profit, without the
  83. permission of the author.
  84.  
  85. CAfterDark is free.  There is no shareware fee.
  86.  
  87.  
  88. Files
  89.  ----
  90. ADGMTypes.h - Enumerations, typedefs and defines for an 'ADgm'
  91. code resource.
  92.  
  93. GlueCode.[ch] - Glues the regular "main" interface to our class
  94. based interface.  You will need to change GlueCode.h so that it
  95. creates an instance of your subclass.  See GlueCode.h for more
  96. information.
  97.  
  98. CAfterDark.[ch] - The base class for all graphics modules
  99.  
  100. CProjectile.* - An example subclass
  101.  
  102.  
  103. Other Work in Progress
  104.  ---------------------
  105. I'm currently developing what I call "Screen Saver Physics" graphics
  106. modules.  These savers provide simple animated physical systems.  Two
  107. of the classes, CAnimator and CAnimatedObject, provide a simple animation
  108. facility.  Also, some of the CAnimatedObject subclasses may be reusable.
  109. I'll make all of this stuff available when I'm finished.
  110.  
  111. FYI - The base class, CAfterDark, was never meant to be very useful
  112. on its own.  My hope is to develop a general set of CAfterDark
  113. subclasses that can be subclassed and composed to build bigger and
  114. better After Dark graphics modules with minimal effort.
  115.  
  116.  
  117. Contact Me At
  118.  ------------
  119. Jeff Francis
  120. CS Student, University of Iowa
  121. jfrancis@umaxc.weeg.uiowa.edu
  122. (319) 354-0765
  123.  
  124. [saved as: /mac/think-c/classes/cafterdark-20.hqx; 19K]
  125. 
  126. 
  127. Path: ucivax!gateway
  128. From: nick@lfcs.edinburgh.ac.UK (Nick Rothwell)
  129. Subject: CPreferences (again)
  130. Message-ID: <1583.9012031644@subnode.lfcs.ed.ac.uk>
  131. Newsgroups: fa.think-c
  132. Lass.
  133.  
  134. Also, note that the class creates a floating window so it
  135. is properly displayed.  Thanks to someone on this list
  136. (Greg Dow?) for the recommendation.
  137.  
  138. Finally, the initializing method shows how to cobble up a window
  139. without an attached document.
  140.  
  141. The programs are copyrighted in case I work up a MacTutor article
  142. around them.  Otherwise, you have my permission to use them in
  143. your programs without further notice.  Documentation is still a little
  144. shoddy; my apologies.
  145.  
  146. Comments and criticisms to me, please.
  147.  
  148. Martin Minow
  149. minow@bolt.enet.dec.com
  150.  
  151. (This file must be converted with BinHex 4.0)
  152. :&&4SCA*YEfePG'9b3faKFh-ZFfPd!&0*9#&6593K!!!!!"Gm!!!!!2bM8dP8)3!
  153. %!!!AI(*-BA8"!!!!!!!!!!!#%&0`E'PdFd&LEh9d3Qpi,Q0j)%0[EfYLEfpV!!!
  154. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&4,38K-!3#MEeF
  155. 8ShkTkJ!!!!!!!"8"!!!!!!!!#f!!!"k'!!!!!!!!e(3[9$3!S3,%&$KXdY#C%d6
  156. -QcTdK,c"-e"&JLPei*54-iC0Q$PcG)!B3L50R$*Mk,b4ik,Lb$G`mXK*F`B0(4#
  157. T3-6)N3-'L#CKj0"*iqBRd6GhA)!!%B30'a"5D0UF!lA-R)efbT!!D8R3*48dC8$
  158. -3IJ4MGJa*mZi83V#b4XkC865!3ZLidHU#FA)#CS(a*d`EKDk9!Q#c"X3#UQ5fAZ
  159. (k"R%4HH',C-e-!JfEf#HS&S&$TN`F%&39NZ(Dm%lBGf-PJ2L6*QEK!'$b2Jjp'M
  160. ,Gm!@43hLC"Jb)#5l0*1'64N@BJrc0K0Q69M*K4Nl&NZRMKNc)-#H02fL3B-4DFb
  161. 3!#Q$RFL6)9@D&(&#*3L9*%qFH"p+ahL#L`J60h`BF@+$14PYC"G)#C!!C"*++XR
  162. aAaeL$(M9(!QimBCUhY8a4aLZHCH!(@qN!Ga5)#k9a%%*,E3I4",KJ8)$p`d4""c
  163. jM3&D'K-QS%)B''NNKaeTc,%5#b`Q-!FD+p&aA`*KA%'8BAFN33D,+H`3C"*Z+*4
  164. ''!RT-H1%E#@@)eBpVJ6#3cA"GTJBci%9C"J`*L6M8&b+H"-C2C+9"eA30HB'Ni@
  165. 44j4@))L4ajT+lSQ8Nfb4U*p$+%i8h%a@"AFB@Q@!&PBB3Bla"QDXkFNR#QC!9-G
  166. *fB8aaKU1TG$5I5abk1&p*BheaP8SZ%T'P%'ffL%Cpdha'K4b[(('55!e3443+JD
  167. *Q4YRh"H'X9@f88FE30khE,0))TZ'Y'e!+@@[V`9(eel-K[8'GY"**NFEEl6afNC
  168. X'5&Q'AL%d3C#C35C`,Ah5@C%F@8`SGBCFhh,kT&j2#3(PA"!p+pa,IK`a'X#-cX
  169. A#[i#A$("D1#+X-)RpSG(a,l5!Db`a-i",E)S`)"FaXCY2"HZZVjkd@X2Pq'%[@@
  170. XH"m88p!a%l21jVbcZpi'@E+iB4&R(!KZm!`#()$&T@r#SiDF)XNi!hadcffB1S8
  171. 48T5"8"i4Qr'ea`IE#LiG90",Kmm*!#fdBrIjk'lFH0#4p(e8FZLFZ$f#i1jFE`#
  172. AQeUVJB"eEj8#&mCPIijT4T!!F280JKR"YX%dC!hIj(3CUlDpkpXR$f[9(&CJ@8I
  173. 2bNk)E4LYXr(kh`N%rXEJFa9q1*'+kpEiilj*6VPUPQ-ZpqDGIdj8k*X$V)1qr#B
  174. J'45c@MQK`3PFV6$$$J-FmF4d!#A('LLBF(hfF,V"GJ*Bbk(e4&bE(+cU)0Aq1XC
  175. JB6q(pZk68J2%8)Fcc)&&ApR)T8LPYl#J)5KND%&M6J)F0d`,6A+JLRC)Yj3TV%3
  176. 1H@K*!m)!%5)T+!(Q'dT4S)88lfJU*M-T%iZ'!"1C518Q1GP*6hi5&"8D48**@8T
  177. 6RK+9-P'PE&ICN9C@p4fed1Pbhb&+4qS`(K#)3&%,F3%D4""&0dbaLPI-MiNB*6)
  178. YFK%mAV4G&AP`"-b)!8YDp%%A[aJ@(MaK#N-!bkRQ%-FjUV'1*,(+'P3#KckLNBi
  179. Ji%%J0E@A""P5LRp-j""Sb+P#-DQ2haN2FC!!&`3K2+%+92J#&BU!K9!D)6j8F&D
  180. Ej"@B62U*Nji%T5K*'8SN&#%*4d"#+R2JRB#iK%T@`P)Dp*!!TV#%$!3TiNi$E08
  181. !,$+%M#R5J3j'*-CRmLG&+`T4J9i8Sbd9*83JZY'AGK3Q13"*Qd-UdT'3!'6*3cd
  182. T4#PS`"k#9,D8(-P65%Q4`HTTT(jTKehk$&)kKA+Nc)N-#@@iSF&B53FUQH%0phP
  183. SB"ck"S-&b8!R5FP+T*Q%NQ3d35M!8B$)k5-jX#dm)%$"'C!!m"&+VL3+G8M$U4B
  184. 6KMZN!!6c2&*LfRN(%23!DQ@i!`SQZDQ9m24p+"LU5qA!8i,FG+G,3NS+)TD%TI+
  185. 8EXlLUC1UG53U5+%+4@$"1Zm6%"!B!6-cBTCISRU()kQJ1qXm!a%%58LZqV0(qQ*
  186. E(i*8"MCF"DIkJUUKH[T6e3Ke#%IPRQ#C40@VkSZGE0hUBld+9V'1YDaRI80D(i2
  187. 2YYlRVBq9+eeKBPIVS3'[4p*VN!"%bdM3V#4L3b$04Ukk@+NDV,Ch'0pVAV54kT`
  188. NICe0%GYmH4q#J-"r!2cFk+!Q0B01V@UP)`KF%j!!'+0*VE""43(I6&De+*'e)%U
  189. `d%h83LDcR!X%NaX#&+TQSqP@efXmSqTfekXD&+bcV*++6Nh45jfKB3Zd1Pd)6qh
  190. DZcRBY6&NZ&K`*j)#ZmC!"JGQDc+0B`Bk4(L`bDbV[[kRKb)`)3K6H-m3l-TK)b3
  191. "#d8J!K@H!)8JRA3KeR9Aa03JATm'T`cKR3-GBKZBM4L-Z!N`,R,EpcPeXHY`m!U
  192. 5G$(hccHNb-B,aS2"U(391[!cI8CfmN53!)2JLf9CZ#"iJ8jXJ"`BX1d*ekRbPGA
  193. Aj"59'6NY3!&BEXLrM3#8`@%HF`VBpZ@*Z)#3!$EZ-ajFi"!kU-4c,G#*$'klN!$
  194. 8TBbqBF'Z8"fp1NLrH!k8"JQNUCTT6&F0UlJPm'N0V+mZSk(1kp)b(KUXVcQA#G9
  195. hAV@SlDaU&e$B`[S5p*p*Zq&KHKM%)LEa-%f-BL+%Z+T,b)+,Ibb3!1)@4!JaC30
  196. `S%-ej-d&0'YeLPL)e&2S,2FML,P*iCi(NHJ#Q,S#CQ[%J'@fS26-Zpm&!IRdUkI
  197. (U)9(`A+$Z`,6hL"YPk%Sk13R3cR+8RlKP1aKfhDR--bH#9b@"DrP,A0*"ED4Mk%
  198. 86Cp%'qU'KekD#Ap#k!eY[('+ZZ!MBb$0BqqcJXe0L1-2GF&ijT!!mPD103%Y,hR
  199. (hf$Vb$R'B!C0NFM,C'0Af`3&8BlR@*H5D+226G"+AbI6`cd(N!#VCZJffF'4bRU
  200. %1N!3[Eljl(5$2K'Xhq3&2df-eFYJGUh('bL$8`KrFl1T-[5lAh)6HN+*VS+d,f6
  201. YEGpk3D"f`BeBlRK@Z6Zkjl"G'aYfU*CQ012PaZP2"cEGJa9eMb+Fi&-RRF"j,r[
  202. HEA*K*NfB2,LqTi6p$1L@ai$-[Hl`KimpiYJ61m8VE[&pf&Db6ZZ[CfCfqhd,%LX
  203. lLEd"HehQVTTCcIRK3CV&Rp@lj4NNSQK()9U"ITfNM`*F*GqAaJfDGG"&Pq9'c9f
  204. 3!#&-BTkV'Q8bdjR1PfE*BJblR`A0[d@$,p)5%-qF*S#I"38@4V!AlQ*4pr&Ha[%
  205. epE0`Gm-X)89rPmC6khB5920EI#D!""KT9%GrDC1"NXH"2N!%M)&S!34"X5F0'h
  206. JX#N$3N`B15d8KS'$"S5C0h*!`%'SN!"K5M)SCBE*if)LL#"Qk'48k5B0R64Kf+6
  207. 4%qEU'cFX3)c*bJB%(63dIl*KmqC1'MGR3,3TFrB0Q6Nk5%kKfq4YNc"i8)6T@l9
  208. 0R6CK"`1'H6M&$Ved$bCFf&#`PDaebMLHq+,"#$*Pc,bPq3A*&mP&'iD811,Y'$C
  209. e3)-3!4*L'4GS4(Kf$9XfE5&e&SDT-dC19pbk'mbK)iFi(B0%+6Zd$8)(L0S43Ha
  210. TN!#!c*XkBQBQ''pe$Q('E4jhrakqc2J%jIrL3DrH1hMaj1R-Z3blM(VZGVb4"KR
  211. [*B'DG+ZK`0e(9U44aKh[U3"4%@kmpXBF`CA"`S*$!#FFFFE4-Ck%&Q%NKadS!EA
  212. KH(1J!C5)ii9aaB"RVCK!Lbqq&`B5CD4a"KTdf)LM($!QX#1&V`RT)T%k@S%N'cC
  213. 1XG9ECc`"KeGZ')Q%P(T3'H@8F&Q*TC&@F%NPGjXP%1#!ia'4e)9PS,!Q'@R1f@C
  214. 5(18KTi"dlT!!3%!J%'(F(5#id9B))hDQ*TpY$UVJH&+8-8D4%JU(TRTf9X5AAi!
  215. pZYjplX9iRQ'),@KIHcV+KpkP!$+U+4hmCHETUIL4LCP%#@c@af-0!-'G!!!:
  216. 
  217. 
  218. Path: ucivax!gateway
  219. From: cohen@excalibur.itd.nrl.navy.MIL (Neil Cohen)
  220. Subject: Beginner's programming question...
  221. Message-ID: <9012041829.AA01264@constellation.arpa>
  222. Newsgroups: fa.think-c
  223. Lines: 45
  224. Date: 4 Dec 90 18:36:50 GMT
  225.  
  226. Hi,
  227.  
  228. I'm an experienced (Unix) C/C++ programmer, with limited Mac programming,
  229. and almost no experience in the graphics area. I could use a 'jump-start'
  230. on the problem I'm currently trying to solve.
  231.  
  232. The problem is basically simple. I need to draw a directed graph in a window.
  233. Circles or squares for the nodes, straight lines for the arcs connecting
  234. the nodes. Eventually, I'll need to be able to scroll larger graphs that won't
  235. fit in a window, and click on nodes to bring up information about them, but
  236. for now, just getting the graph displayed would be fine.
  237.  
  238. My hope is to try to learn to use the Think Class Library in the process
  239. of building this program.
  240.  
  241. Questions:
  242.  
  243. 1) Is the TCL likely to help or get in my way for something like this?
  244. 2) a) Should I use QuickDraw to create the circles?
  245.    b) Do I want the nodes (circles) to be a resource?
  246.        If so, how do I access/display it?
  247.  
  248. 3) I'd like to be able to put an identifier (number)
  249. inside the circles too - what is the best way to do that?
  250.  
  251. I'm swamped with documentation - more than I can assimilate quickly.
  252. This includes Inside Mac, Mac Revealed, the Think manuals etc.
  253. Pointers to the right parts of the documents to read, or
  254. any other help (including sample code fragments) would be appreciated.
  255.  
  256. Please email responses. I'll pass along anything I learn to anyone who
  257. requests it.
  258.  
  259. Thanks in advance,
  260.  
  261. nbc
  262.  
  263. NAME:   Neil B. Cohen (Tracor Applied Sciences)
  264. PHONE:  703-444-4610
  265. DOMAIN: nbc@excalibur.itd.nrl.navy.mil
  266. *************************************************************
  267. * Murphy's Philosophy: Smile - tomorrow will be worse...    *
  268. *                                                           *
  269. * O'Tooles Commentary: Murphy was an optimist!              *
  270. *************************************************************
  271. 
  272. 
  273. Path: ucivax!gateway
  274. From: dmitri@bolvan.ph.utexas.edu (Dmitri Linde)
  275. Subject: Writing resources to a file
  276. Message-ID: <9012050446.AA15969@bolvan.ph.utexas.edu.ph.utexas.edu.>
  277. Posted-Date: Tue, 4 Dec 90 22:46:54 CST
  278. Newsgroups: fa.think-c
  279. Lines: 29
  280. Date: 5 Dec 90 18:02:53 GMT
  281.  
  282. Hello!
  283.  
  284.    Here is another problem, solution for which may be interesting to many people in this list, just like all problems posted here...
  285.  
  286.    My program needs to write a resource to a file, when saving.  I made a class identical to CDocument, but I declared itsFile as CResFile (is in More Classes).  Then I used that class with Starter project to make CStarterDoc subclass of the class, instead of CDocument.
  287.  
  288.    I then changed the following code in DoSaveAs method:
  289.  
  290.     itsFile = new(CResFile);
  291.     itsFile->IResFile();
  292.     itsFile->SFSpecify(macSFReply);
  293.     itsFile->CreateNew(gSignature, 'INIT');
  294.     gError->CheckOSError(itsFile->Open(fsRdWrPerm));
  295.  
  296.   I always get OSError ID -39    I can't find the definition of -39 in InsideMac DA and in Think C headers, maybe it is documeneted in Inside Mac?
  297.  
  298. So:
  299.  
  300. 1)What is -39
  301. 2)What is worng with that minor change in CStarterDoc?
  302.  
  303.     Any Ideas???
  304.  
  305.     Thank you very much,
  306. - Dmitri Linde
  307. dmitri@bolvan.ph.utexas.edu
  308.  
  309. P.S.  Please mail to me, and I will sumurize to list if there is interest.
  310. When I finish the this fun project I will post it to the list :-)
  311. 
  312. 
  313. Path: ucivax!gateway
  314. From: nick@lfcs.edinburgh.ac.UK (Nick Rothwell)
  315. Subject: CPreferences and other goodies
  316. Message-ID: <3818.9012051500@subnode.lfcs.ed.ac.uk>
  317. Newsgroups: fa.think-c
  318. Lines: 75
  319. Date: 5 Dec 90 18:10:20 GMT
  320.  
  321. Thanks to those who gave me feedback about the CPreferences code. It now
  322. seems to work OK, so I'll send it to Mark Nagel who can secrete it
  323. somewhere sensible. In fact, I've thrown in some other bits and pieces as
  324. well. Here's the README file from the bundle:
  325.  
  326. [Cue: pause to change it from a TeachText "ttro" file back into "TEXT"...]
  327.  
  328. --cut--
  329.  
  330. Here are some odds and ends from my MIDI Generic Editor/Librarian. The most
  331. useful thing (I guess) is CPreferences. It provides a standard way to
  332. create a preferences file and read and write distinct preference
  333. information (in the form of resources, although the application doesn't see
  334. the resource information directly). The file is put into a folder called
  335. Preferences in the System Folder (Preferences is created if necessary); the
  336. file name is the name of the application, so watch out for the .<pi> for
  337. THINK C projects (I may strip this off automatically sometime soon).
  338. CPreferences seems pretty stable, although the HFS stuff was lifted blind
  339. from CInstance by Sven Axelsson; but I found that rather confusing and way
  340. too clever for what I wanted. CInstance was also buggy - thanks to Martin
  341. Minow for setting me right.
  342.  
  343. Other goodies - well, a copy of CUtility (which CPreferences needs).
  344. Nothing really world-shattering here, just some random odds and ends,
  345. although it does have an interface to the Notification Manager (needed for
  346. the MIDI stuff).
  347.  
  348. Oh, I'll also include CDiagnostic. This implements a diagnostic text window
  349. as a CDirector. However, it's not quite that straightforward, since you
  350. might want to print diagnostics in the middle of doing something graphical,
  351. and the act of printing a diagnostic would screw the graphical environment.
  352. So, CDiagnostic works in conjunction with CDiagChore, which is an idle
  353. chore which looks periodically at the diagnostic object to see if any text
  354. needs printing while awaiting events. CDiagnostic also throws away text as
  355. it fills up - not very elegantly (the last line of text moves around), but
  356. it does the job. Note also that, because CDiagnostic is a CDirector,
  357. quitting the application might nuke CDiagnostic first (if it's the top
  358. window), and screw up diagnostic messages from other windows ("I'm
  359. deactivating now", "exiting application" and so on). Complain to Greg Dow
  360. about this, not me... :-) Anyway, that's why CDiagnostic is accessed via
  361. global procedures (g_Diagnostic()) instead of method calls to a global
  362. object. Oh yes, g_Diagnostic() also takes varargs, something you don't get
  363. in methods.
  364.  
  365. While I'm here, I suppose I could throw in the MIDI Manager interface as
  366. well. Channelised echo routines, plus asynchronous System Exclusive message
  367. capture and a degree of asynchronous transmission of messages (subject to
  368. size of output buffer) - the latter is a new feature over my previous
  369. posting of the MIDI Manager code (last year sometime). There are extensive
  370. comments in CMIDI.c, since there are a lot of gotchas involved in
  371. interrupt-level driving (as you might expect). One drawback of CMIDI -
  372. transmission of large amounts of data (i.e. larger than the output buffer)
  373. causes a spin-wait. This will annoy intensely any other MIDI Manager
  374. applications (such as sequencers) which wish to look at the data and need
  375. to allocate memory at event-poll time to do so. I shall have to think of a
  376. way of decoupling the transmission routines to get around this sometime
  377. (or, Apple will have to give us pre-emptive multitasking...).
  378.  
  379. Don't be put off by the "NEW", "OVERRIDE" and "PRIVATE" keywords. They're
  380. just noise. They *should* be part of any self-respecting object language,
  381. though. "LOCAL" is just aliased to "static".
  382.  
  383. I haven't bothered including the various constants or the resource files.
  384. It's obvious stuff, folks. Besides, you don't want *everything* on a plate,
  385. do you? That would make it too easy. ("Playing strip poker with an
  386. exhibitionist somehow removes the challenge..." - Metropolitan.)
  387.  
  388. Feedback, bug reports, etc. welcome.
  389.  
  390. Merry Christmas.
  391.  
  392. Nick Rothwell
  393. LFCS, Edinburgh University.
  394. nick@lfcs.ed.ac.uk.
  395. 5th December 1990.
  396. 
  397. 
  398. Path: ucivax!gateway
  399. From: nagel@ICS.UCI.EDU (Mark Nagel)
  400. Subject: ARCHIVE: HyperCard 2.0 XCMD interface
  401. Message-ID: <17171.660419730@ics.uci.edu>
  402. Newsgroups: fa.think-c
  403. Reply-To: nagel@ICS.UCI.EDU
  404. Organization: University of California, Irvine - Dept of ICS
  405. Lines: 18
  406. Date: 5 Dec 90 18:12:23 GMT
  407. Phone: (714) 856-5039
  408.  
  409. From: Nigel Perry <np@doc.imperial.ac.uk>
  410. Date: Mon, 29 Oct 90 09:28:04 GMT
  411. Subject: (for HC 2.0) HyperXCmd.h etc. for Think C
  412.  
  413. Hi,
  414.     Below is a binhex'ed compactor archive containing a version of
  415. HyperXCmd.h for HyperCard 2.0 which uses #define macros and runs under
  416. Think C. If you prefer to have interface functions rather than macros
  417. a small time in Emacs should solve your needs - if you store your
  418. paramPtr in a register variable I think you'll find the macros produce
  419. more compact code - but you do lose argument type checking... Also
  420. included is a small Think C project used to test out the HyperXCmd.h
  421. and the original Apple versions (for MPW) and documentation.
  422.  
  423. Enjoy.
  424.     Nigel
  425.  
  426. [saved as: /mac/think-c/code/hyper-xcmd.hqx; 71K]
  427. 
  428. 
  429. Path: ucivax!gateway
  430. From: dmitri@bolvan.ph.utexas.edu (Dmitri Linde)
  431. Subject: Bug in TCL
  432. Message-ID: <9012061511.AA16707@bolvan.ph.utexas.edu.ph.utexas.edu.>
  433. Posted-Date: Thu, 6 Dec 90 09:11:35 CST
  434. Newsgroups: fa.think-c
  435. Lines: 22
  436. Date: 6 Dec 90 15:20:28 GMT
  437.  
  438. Hi!
  439.   Greg Dow said there is a bug in CResFile.  If you ever use it then replace
  440. open method of CResFile, which is:
  441.     if (refNum == -1) {
  442.         refNum = 0;
  443.     }
  444.     return( ResError() );
  445.  
  446. should be:
  447.     if (refNum == -1) {
  448.         refNum = 0;
  449.         return( ResError() );
  450.     } else {
  451.        return(noErr);
  452.     }
  453.  
  454. since ResError() should only be called when refNum is -1
  455.  
  456.  
  457.  
  458.     - Dmitri
  459. dmitri@bolvan.ph.utexas.edu
  460. 
  461. 
  462. Path: ucivax!gateway
  463. From: kg1a+@andrew.cmu.edu (Kevin Michael Goldsmith)
  464. Subject: question
  465. Message-ID: <QbLcxpS00WAt8AX0ZM@andrew.cmu.edu>
  466. Newsgroups: fa.think-c
  467. Lines: 13
  468. Date: 6 Dec 90 18:40:24 GMT
  469.  
  470. I have think-c installed on my hard disk, sometimes I want to work on
  471. a program on campus, so I have copied a "small think c" disk which has
  472. all the necessary files to compile my program and also the source for my
  473. program.  The problem is this, whenever I try to compile my program, I get
  474. the error "Cannot open #include'd file", even though the file is sitting in the
  475. same directory, and isn't damaged.  I have been doing this for months, and
  476. this problem just came up this week.  Anybody know what is going on?
  477.  
  478. Kevin Goldsmith
  479. kg1a+@andrew.cmu.edu
  480. kmg@isl1.ri.cmu.edu
  481.  
  482. Disclaimer: Disclaimer, I don't need no stinkin disclaimer.
  483. 
  484. 
  485. Path: ucivax!gateway
  486. From: nagel@wintermute.ICS.UCI.EDU (Mark Nagel)
  487. Subject: ARCHIVE: CPreferences, 4+, InsideTCL, CTrace
  488. Message-ID: <18350.660509592@wintermute.ics.uci.edu>
  489. Newsgroups: fa.think-c
  490. Reply-To: nagel@ICS.UCI.EDU
  491. Organization: University of California, Irvine - Dept of ICS
  492. Lines: 142
  493. Date: 6 Dec 90 18:55:52 GMT
  494. Phone: (714) 856-5039
  495.  
  496. From: nick@lfcs.edinburgh.ac.UK (Nick Rothwell)
  497. Subject: CPreferences and other goodies
  498. Date: 5 Dec 90 18:10:20 GMT
  499.  
  500. Thanks to those who gave me feedback about the CPreferences code. It now
  501. seems to work OK, so I'll send it to Mark Nagel who can secrete it
  502. somewhere sensible. In fact, I've thrown in some other bits and pieces as
  503. well. Here's the README file from the bundle:
  504.  
  505. [Cue: pause to change it from a TeachText "ttro" file back into "TEXT"...]
  506.  
  507. --cut--
  508.  
  509. Here are some odds and ends from my MIDI Generic Editor/Librarian. The most
  510. useful thing (I guess) is CPreferences. It provides a standard way to
  511. create a preferences file and read and write distinct preference
  512. information (in the form of resources, although the application doesn't see
  513. the resource information directly). The file is put into a folder called
  514. Preferences in the System Folder (Preferences is created if necessary); the
  515. file name is the name of the application, so watch out for the .<pi> for
  516. THINK C projects (I may strip this off automatically sometime soon).
  517. CPreferences seems pretty stable, although the HFS stuff was lifted blind
  518. from CInstance by Sven Axelsson; but I found that rather confusing and way
  519. too clever for what I wanted. CInstance was also buggy - thanks to Martin
  520. Minow for setting me right.
  521.  
  522. Other goodies - well, a copy of CUtility (which CPreferences needs).
  523. Nothing really world-shattering here, just some random odds and ends,
  524. although it does have an interface to the Notification Manager (needed for
  525. the MIDI stuff).
  526.  
  527. Oh, I'll also include CDiagnostic. This implements a diagnostic text window
  528. as a CDirector. However, it's not quite that straightforward, since you
  529. might want to print diagnostics in the middle of doing something graphical,
  530. and the act of printing a diagnostic would screw the graphical environment.
  531. So, CDiagnostic works in conjunction with CDiagChore, which is an idle
  532. chore which looks periodically at the diagnostic object to see if any text
  533. needs printing while awaiting events. CDiagnostic also throws away text as
  534. it fills up - not very elegantly (the last line of text moves around), but
  535. it does the job. Note also that, because CDiagnostic is a CDirector,
  536. quitting the application might nuke CDiagnostic first (if it's the top
  537. window), and screw up diagnostic messages from other windows ("I'm
  538. deactivating now", "exiting application" and so on). Complain to Greg Dow
  539. about this, not me... :-) Anyway, that's why CDiagnostic is accessed via
  540. global procedures (g_Diagnostic()) instead of method calls to a global
  541. object. Oh yes, g_Diagnostic() also takes varargs, something you don't get
  542. in methods.
  543.  
  544. While I'm here, I suppose I could throw in the MIDI Manager interface as
  545. well. Channelised echo routines, plus asynchronous System Exclusive message
  546. capture and a degree of asynchronous transmission of messages (subject to
  547. size of output buffer) - the latter is a new feature over my previous
  548. posting of the MIDI Manager code (last year sometime). There are extensive
  549. comments in CMIDI.c, since there are a lot of gotchas involved in
  550. interrupt-level driving (as you might expect). One drawback of CMIDI -
  551. transmission of large amounts of data (i.e. larger than the output buffer)
  552. causes a spin-wait. This will annoy intensely any other MIDI Manager
  553. applications (such as sequencers) which wish to look at the data and need
  554. to allocate memory at event-poll time to do so. I shall have to think of a
  555. way of decoupling the transmission routines to get around this sometime
  556. (or, Apple will have to give us pre-emptive multitasking...).
  557.  
  558. Don't be put off by the "NEW", "OVERRIDE" and "PRIVATE" keywords. They're
  559. just noise. They *should* be part of any self-respecting object language,
  560. though. "LOCAL" is just aliased to "static".
  561.  
  562. I haven't bothered including the various constants or the resource files.
  563. It's obvious stuff, folks. Besides, you don't want *everything* on a plate,
  564. do you? That would make it too easy. ("Playing strip poker with an
  565. exhibitionist somehow removes the challenge..." - Metropolitan.)
  566.  
  567. Feedback, bug reports, etc. welcome.
  568.  
  569. Merry Christmas.
  570.  
  571. Nick Rothwell
  572. LFCS, Edinburgh University.
  573. nick@lfcs.ed.ac.uk.
  574. 5th December 1990.
  575.  
  576. [saved as: /mac/think-c/classes/cpreferences.hqx; 41K]
  577.  
  578. /*****************************************************************************/
  579.  
  580. Date: Thu, 06 Dec 90 11:36:53
  581. From: "David S. McCormick" <dmac@eagle.mit.EDU>
  582. Subject: 3 New ThinkC related uploads to /incoming
  583.  
  584. (1) 4Plus.sit.Hqx
  585. This is a binhex 4.0 stuffit file containing an INIT which adds some
  586. great functions to the Think C editor, the most relevant of which is the
  587. TCL Browser facility which allows one to get a popup menu of the
  588. ancestors, siblings, or progeny of any class once the file has been
  589. compiled and parsed by the 4+ program. It's not a browser which allows
  590. you to see all the methods of a class concurrently and visually (the way
  591. in which I believe Think Pascal allows), but you do get a popup menu
  592. function (similar to ThinkC headers popup menu) for whatever file is
  593. currently active. (a note of caution: the function/method parser does
  594. not get all the functions in my files or some TCL function on my
  595. machines SE/30 and IIfx but I may have some INIT conflict which I have
  596. been too lazy to track down; However the CMarker (another program) popup
  597. menu function has worked flawlessly and can work at the same time to
  598. offset this problem). The other nice features are a Quick-Keys-like
  599. user-configurable keystrokes for any 4+ function, macro recording, and
  600. many editor extensions like page-up/down, marking places in code, etc.
  601. The browser has worked flawlessly, though. It's a $40 shareware product.
  602.  
  603. (2) InsideTCL.sit.Hqx
  604. This is a revamp of Bernard Gallet's phenomenally useful Inside Mac DA
  605. for the TCL. This is an extensible product, so you can add your own
  606. classes as you write them. There are some bugs which the new author
  607. documents, but it is really nice for seeing what the classes are and
  608. what are there methods and prototypes all from the Apple menu. It's a
  609. $20 shareware product for the original Inside Mac DA author (I highly
  610. recommend getting the original).
  611.  
  612. (3) ctrace.sit.Hqx
  613. This is a direct upload of an article by William D. Cramer in November
  614. 1990 Dr. Dobbs Journal (#170) p. 44-55, code listing p.116-120. Cramer
  615. implements CTrace, a message logging class for debugging TCL
  616. applications, allowing one to throw up an extra window in your
  617. application allowing (essentially) the functionality of printf() in
  618. command line C for debugging. Built-in logging include provisions for
  619. function entry/exit, error messages, warnings, etc., all of which are
  620. extensible. I have not tested this yet, but it sounded of general
  621. interest. This is free code.
  622.  
  623. Hope you find these useful.
  624.  
  625. Cheers,
  626. David S. McCormick
  627. MIT-EAPS Geology
  628. Bldg. 54-1016
  629. Cambridge, MA  02139
  630. 617-253-9852
  631.  
  632. dmac@eagle.mit.edu
  633. dmac@athena.mit.edu
  634.  
  635. [saved as: /mac/think-c/compiler/4plus.hqx; 120K]
  636. [saved as: /mac/think-c/compiler/inside-tcl.hqx; 136K]
  637. [saved as: /mac/think-c/classes/ctrace.hqx; 28K]
  638. 
  639. 
  640. Path: ucivax!gateway
  641. From: cohen@excalibur.itd.nrl.navy.MIL (Neil Cohen)
  642. Subject: Drawing Elipses
  643. Message-ID: <9012062146.AA03092@constellation.arpa>
  644. Newsgroups: fa.think-c
  645. Lines: 16
  646. Date: 6 Dec 90 21:50:35 GMT
  647.  
  648. Hi,
  649.  
  650. I'm asking this question for someone who will be joining this mailing
  651. list shortly. Please respond to him directly. Thanks.
  652.  
  653. His question is:
  654. In Think C 4.0, how does one draw an elipse that is 'canted' - that is,
  655. the major and minor axes are not parallel to the X and Y axes of the window.
  656.  
  657. Send email to:
  658.  
  659. Tom Kratzke (Metron Inc.) at
  660.  
  661. kratzke@gwuvm.bitnet
  662.  
  663. nbc
  664. 
  665. 
  666. Path: ucivax!gateway
  667. From: autodesk!ceili!bobert@uunet.uu.NET (Robert Murphy)
  668. Subject: Re:  question
  669. Message-ID: <9012070039.AA00952@ceili.YP.acad>
  670. Newsgroups: fa.think-c
  671. Lines: 21
  672. Date: 7 Dec 90 01:00:45 GMT
  673.  
  674. >I have think-c installed on my hard disk, sometimes I want to work on
  675. >a program on campus, so I have copied a "small think c" disk which has
  676. >all the necessary files to compile my program and also the source for my
  677. >program.  The problem is this, whenever I try to compile my program, I get
  678. >the error "Cannot open #include'd file", even though the file is sitting in the
  679. >same directory, and isn't damaged.  I have been doing this for months, and
  680. >this problem just came up this week.  Anybody know what is going on?
  681. >
  682. >Kevin Goldsmith
  683. >kg1a+@andrew.cmu.edu
  684. >kmg@isl1.ri.cmu.edu
  685.  
  686. I've had this sort of problem, too.  It appears that Think C projects store
  687. a path to each of their component files, including headers, so that if you
  688. change the path at all (move the file, rename a folder or disk), Think C
  689. gets lost.  The fix is to do a "Remove Objects" on the project and rebuild
  690. it; this will force Think C to go looking for the source files and libraries.
  691.  
  692. - Bob Murphy
  693. bobert@autodesk.com
  694. bobert@well.sf.ca.us
  695. 
  696. 
  697. Path: ucivax!gateway
  698. From: eaiu088@orion.oac.UCI.EDU (Alisa Tannira)
  699. Subject: Calling code resources from Excel.
  700. Message-ID: <9012061906.aa23808@orion.oac.uci.edu>
  701. Newsgroups: fa.think-c
  702. Lines: 12
  703. Date: 7 Dec 90 03:08:47 GMT
  704.  
  705.  
  706. I have a simple question.
  707. Has anybody had any success calling code resources from Excel?
  708. Excel supposedly has a routine called REGISTER(lib,proc,arg).
  709. The manual is not specific, but I think "lib" is supposed to be a
  710. code resource containing the procedure you wish to call.
  711. Does ThinkC produce a code resource that can be read by Excel?
  712.  
  713. Or conversely, is Excel smart enough to read ThinkC's code resources. :)
  714.  
  715. Any help is GREATLY appreciated.
  716. Alisa
  717. 
  718. 
  719. Path: ucivax!gateway
  720. From: bootsie!olson@ICS.UCI.EDU (Eric Olson)
  721. Subject: Re: Cannot open included file
  722. Message-ID: <9012070455.AA03415@bootsie.UUCP>
  723. In-Reply-To: Root Maytall's message of Dec  6, 11:42pm.
  724. X-Mailer: Mail User's Shell (6.4 2/14/89)
  725. Newsgroups: fa.think-c
  726. Reply-To: olson@endor.harvard.edu
  727. Lines: 19
  728. Date: 7 Dec 90 05:59:32 GMT
  729.  
  730. >I've had this sort of problem, too.  It appears that Think C projects store
  731. >a path to each of their component files, including headers, so that if you
  732. >change the path at all (move the file, rename a folder or disk), Think C
  733. >gets lost.  The fix is to do a "Remove Objects" on the project and rebuild
  734. >it; this will force Think C to go looking for the source files and libraries.
  735. >
  736.  
  737. You can also Uncheck "Quick Scan" in the "Make..." dialog and then click
  738. "Use Disk".  This will recache all the stored file locations, and will only
  739. recompile the ones that have changed or moved.
  740.  
  741. -Eric
  742.  
  743.  
  744. --
  745. Eric K. Olson, Editor, Prepare()       NOTE: olson@bootsie.uucp will not work!
  746. Lexington Software Design              Internet: olson@endor.harvard.edu
  747. 72A Lowell St., Lexington, MA 02173    Usenet:   harvard!endor!olson
  748. (617) 863-9624                         Bitnet:   OLSON@HARVARD
  749. 
  750. 
  751. Path: ucivax!gateway
  752. From: minow@bolt.enet.dec.COM ("Martin Minow, ML3-5/U26  07-Dec-1990 0657")
  753. Subject: Multi-window display under TCL -- help!
  754. Message-ID: <9012071215.AA26840@decpa.pa.dec.com>
  755. Newsgroups: fa.think-c
  756. Lines: 32
  757. Date: 7 Dec 90 12:18:37 GMT
  758.  
  759. I am obviously doing something stupid but haven't the foggiest idea what.
  760.  
  761. My application has a main window (document->window) that works ok.  If
  762. I have several documents, all of the windows seem to work normally.
  763. I also have a status window that is independent of the documents.  If
  764. I click on a button in the window, the document sends a message to the
  765. status window which shows and draws itself.  This also seems to work ok.
  766.  
  767. However, if I then click on the document's window again, only the controls
  768. (buttons and scroll-bars) are redrawn; my text items are not updated.
  769.  
  770. Furthermore; this only happens if I show the status window.  If I put
  771. a desk accessory window up (without showing the status window), or
  772. switch applications, everything is redraw ok.
  773.  
  774. Also, if I have two document windows up, and show the status window,
  775. *only* the document that triggered the status window is incorrect:
  776. the other window continues to be redrawn correctly.
  777.  
  778. The window has CPane's (mostly text), a ListManager class, and buttons.
  779.  
  780. Clearly, I'm doing something dumb, but don't have any clues.  The status
  781. window is created by the application, and the document causes it to
  782. be displayed by calling an application-specific message.  I've also
  783. tried handling the status window in a CChore, but that didn't help either.
  784.  
  785. The Debugger shows my CPane's drawing methods are being called.
  786.  
  787. Any ideas?
  788.  
  789. Martin.
  790. minow@bolt.enet.dec.com
  791. 
  792. 
  793. Path: ucivax!gateway
  794. From: nick@lfcs.edinburgh.ac.UK (Nick Rothwell)
  795. Subject: "Not a text file." Huh...
  796. Message-ID: <5461.9012071250@subnode.lfcs.ed.ac.uk>
  797. Newsgroups: fa.think-c
  798. Lines: 12
  799. Date: 7 Dec 90 14:39:13 GMT
  800.  
  801. A couple of suggestions for THINK C error messages.
  802.  
  803. If you include a precompiled header, but after other #includes, or even
  804. after some #defines, how about saying "Precompiled header must be first
  805. statement in file," rather than "not a text file."
  806.  
  807. If you try to use a precompiled header in a project where you've forgotten
  808. to uncheck the MacHeaders option, how about "Precompiled header cannot be
  809. used with MacHeaders enabled," rather than (wait for it:) "not a text
  810. file."
  811.  
  812. Nick.
  813. 
  814. 
  815. Path: ucivax!gateway
  816. From: nick@lfcs.edinburgh.ac.UK (Nick Rothwell)
  817. Subject: Re: Multi-window display under TCL -- help!
  818. Message-ID: <5586.9012071442@subnode.lfcs.ed.ac.uk>
  819. Newsgroups: fa.think-c
  820. Lines: 23
  821. Date: 7 Dec 90 17:01:36 GMT
  822.  
  823. I had the same problems. Trouble is if you draw into the status window, you
  824. need another Prepare() to carry on drawing into the original window. I had
  825. all sorts of problems like this (scroll-bars not appearing, and so on), and
  826. finally fixed it using the trick of deferring diagnostics - see CDiagnostic
  827. for details.
  828. The downside is that you only see diagnostics when the program goes though
  829. the event loop again (or some time thereafter), and not at the point of
  830. call. So,
  831. some care is required.
  832.  
  833. Actually (come to think of it), I had this problem with a status window as
  834. well. The status window was supposed to be permanently active, and needed
  835. to accept clicks to check boxes and radio buttons, without screwing the
  836. environment of the document window. My solution was to implement
  837. CDeferredRadioGroup (and so on), such that clicks wouldn't call
  838. CRadioGroup::SetStation(), but would wait until an urgent chore made them
  839. update themselves.
  840.  
  841. This Prepare()/Draw() business is probably the second biggest gotcha in the
  842. TCL (well, to be fair, it's an issue with the ToolBox). The biggest gotcha
  843. is when windows start getting closed and deactivated...
  844.  
  845. Nick.
  846. 
  847. 
  848. Path: ucivax!gateway
  849. From: eacj@theory.tn.cornell.edu (Julian Vrieslander)
  850. Subject: Conflict Between 4Plus and QM Menu
  851. Message-ID: <9012072005.AA17128@theory.TN.CORNELL.EDU>
  852. Newsgroups: fa.think-c
  853. Lines: 9
  854. Date: 7 Dec 90 20:04:50 GMT
  855.  
  856.  
  857. The 4Plus INIT looks like a very useful hack, but I'm having a problem with
  858. it. When I try to launch THINK C I get an immediate crash (Bus Error).  After
  859. trial and error, I found that there was a conflict between 4Plus and QM Menu,
  860. an INIT that is part of CE Software's QuickMail system. QM Menu installs a
  861. QuickMail menu that appears in all applications. I tried renaming QM Menu so
  862. it would load before 4Plus, but that does not help. If I remove the QM Menu
  863. INIT, the crashes do not occur. Looks like both INITs are fighting over the
  864. Menu Bar.  Any ideas?
  865. 
  866. 
  867. Path: ucivax!gateway
  868. From: KRATZKE%GWUVM.BITNET@cunyvm.cuny.edu
  869. Subject: list
  870. Message-ID: <9012071808.aa08883@ICS.UCI.EDU>
  871. Newsgroups: fa.think-c
  872. Lines: 2
  873. Date: 8 Dec 90 02:09:31 GMT
  874.  
  875. My friend gave me this e-mail address and told me that I could
  876. get e-mail from you by sending a message to you.  If so, thanks!!
  877. 
  878. 
  879. Path: ucivax!gateway
  880. From: fri0@midway.uchicago.edu ("Christian E. Fritze")
  881. Subject: Re: Conflict Between 4Plus and QM Menu
  882. Message-ID: <CMM.0.88.660632494.fri0@quads.uchicago.edu>
  883. Newsgroups: fa.think-c
  884. Lines: 13
  885. Date: 8 Dec 90 05:06:33 GMT
  886.  
  887. (I think I sent Julian two replies before realizing things weren't bouncing
  888. back to the Think-C list. Anyway...)
  889.  
  890. I agree 4Plus looks very useful. I get an address error on my SE on startup
  891. even if 4Plus is the only Ioad (other than MacsBugs 6.1). The crash drops me
  892. into MacsBugs even before the 4Plus Icon is displayed at the bottom of my
  893. screen. I'm running Sys 6.0.7 and MultiFinder 6.1b9. Anyone else having
  894. similar troubles? I've even tried retrieving 4Plus twice from archive...
  895.  
  896. Christian E. Fritze                   |                            AOL:geneman
  897. University of Chicago                 |               fri0@midway.uchicago.edu
  898. Molecular Genetics and Cell Biology   |   "No one ever died of laughing" -M.B.
  899. --
  900. 
  901. 
  902. Path: ucivax!gateway
  903. From: sarachan@wsqtbf.crd.ge.COM ("B. D. Sarachan")
  904. Subject: (none)
  905. Message-ID: <9012101443.AA01656@wsqtbf.steinmetz>
  906. Posted-Date: Mon, 10 Dec 90 09:43:38 EST
  907. Newsgroups: fa.think-c
  908. Lines: 18
  909. Date: 10 Dec 90 14:48:43 GMT
  910.  
  911.  
  912. <fri0@midway.uchicago.edu> writes:
  913.  
  914. >I agree 4Plus looks very useful. I get an address error on my SE on startup
  915. >even if 4Plus is the only Ioad (other than MacsBugs 6.1). The crash drops me
  916. >into MacsBugs even before the 4Plus Icon is displayed at the bottom of my
  917. >screen. I'm running Sys 6.0.7 and MultiFinder 6.1b9. Anyone else having
  918. >similar troubles? I've even tried retrieving 4Plus twice from archive...
  919.  
  920. Whenever I try to bring up 4Plus on an SE, the system freezes on startup.
  921. This happens even when I boot from a floppy containing only a System Folder
  922. with System, Finder, and 4Plus.
  923.  
  924. Brion Sarachan
  925. General Electric CR&D
  926. sarachanbd@crd.ge.com
  927.  
  928.  
  929. 
  930. 
  931. Path: ucivax!gateway
  932. From: minow@bolt.enet.dec.COM ("Martin Minow, ML3-5/U26  09-Dec-1990 2301")
  933. Subject: Multi-window display problem solved
  934. Message-ID: <9012101805.AA07695@decpa.pa.dec.com>
  935. Newsgroups: fa.think-c
  936. Lines: 24
  937. Date: 10 Dec 90 18:10:11 GMT
  938.  
  939. Last week, in desperation, I wrote:
  940.  
  941. >I am obviously doing something stupid but haven't the foggiest idea what.
  942.  
  943. I was trying to display a status window together with my document window,
  944. and discovered that if my status window was shown, the document window
  945. wouldn't update.
  946.  
  947. As it turned out, a piece of half-written code (I can type much faster
  948. than I can think) set RGBForeColor and RGBBackColor on the status window
  949. -- at least that was the intention.  Unfortunately, I forgot to
  950. invoke Prepare() so the port was still pointing to the document window.
  951. To make matters worse, I hadn't written the color initialization code,
  952. so both colors (for the document window ) were set to white.
  953.  
  954. It only took a week to find this silly bug.  I can hardly wait for
  955. the real bugs to creep out of my program.
  956.  
  957. Let this be a warning to you.
  958.  
  959. Thanks for the good suggestions from several folk.
  960.  
  961. Martin.
  962. minow@bolt.enet.dec.com
  963. 
  964. 
  965. Path: ucivax!gateway
  966. From: paco@neuromancer.sps.mot.COM (Paco Xander Nathan)
  967. Subject: 4Plus
  968. Message-ID: <9012101841.AA12835@neuromancer>
  969. Newsgroups: fa.think-c
  970. Lines: 25
  971. Date: 10 Dec 90 19:37:37 GMT
  972.  
  973. This 4Plus business looks great.  I've got copies of it from three different
  974. sources now:  here (think-c%ics.uci), CompuServe & internal Motorola,
  975. but it won't do anything...
  976.  
  977. I can opt-cmd-click the INIT to launch the configuration mode, no
  978.  
  979. problem.  And of course the INIT icon shows up okay on the screen
  980.  
  981. during startup.  But there's no effect to ThC...  No menus, no special key
  982. mapped actions, nada.
  983.  
  984. This is running on a IIx with 6.0.5 and ThC 4.0.2
  985. Are there any other INITs known to make 4Plus null and devoid?
  986.  
  987. Thanks -
  988.  
  989. paco
  990. ----
  991. Internet:    paco@neuromancer.sps.mot.com
  992. Voice Mail:    1.512.891.2973
  993.  
  994. Neural Networks & Virtual Reality Development
  995. Center for Emerging Computer Technologies
  996. Motorola, Inc.
  997. Austin, Texas, USA
  998. 
  999. 
  1000. Path: ucivax!gateway
  1001. From: FLEMINGM@qucdn.queensu.ca ("R. Mark Fleming")
  1002. Subject: re: 4plus
  1003. Message-ID: <9012101354.aa28959@ICS.UCI.EDU>
  1004. Newsgroups: fa.think-c
  1005. Lines: 25
  1006. Date: 10 Dec 90 22:01:59 GMT
  1007.  
  1008. I have been able to install and uses 4Plus with Think C version's V4.0.2
  1009. and V4.0.4 with no problem assuming I try to operate on oop's code.
  1010.  
  1011. I also have CMaker Window Def, installed in Think C too...
  1012.  
  1013. If you ask it to update the cross ref, on a non 'oop TCL' project it crashes.
  1014.  
  1015. I have not tested it extensively, but I do have a few other init loading
  1016. with it with no apparent conflicts.
  1017.  
  1018. System Configuration:
  1019.     Macintosh Portable HD40, 2Mb RAM, OS V6.0.5, MultiFinder.
  1020.     Init's I can think of: GateKeeper, GateKeeper Aid v1.1,
  1021.     Public Folder,  Pyro v3.xx, MacBug V6.2B3, Responder v1.1.1, Flash iT
  1022.  
  1023. I feel that it has LOT's of potential, but needs some more error trapping.
  1024. I look forward in see the next version of 4Plus, and at that time
  1025. I will do some extensive testing and then start using it
  1026.  
  1027. Cheers, Mark
  1028. <<<<<<<<<<<<<<<=========================================>>>>>>>>>>>>>>>>>
  1029. Mark Fleming, Macintosh Support, Office Systems, Computing  & Communicat.
  1030. Services, Queen's University at Kingston, Phone: (613) 545-2039
  1031. Bitnet: FLEMINGM@QUCDN  or  Mark.Fleming@QueensU.CA    AppleLink: CDA0448
  1032. <<<<<<<<<<<<<<<=========================================>>>>>>>>>>>>>>>>>
  1033. 
  1034. 
  1035. Path: ucivax!gateway
  1036. From: ech@pegasus.att.COM
  1037. Subject: Re: Conflict Between 4Plus and QM Menu
  1038. Original-From: ech (Ned Horvath)
  1039. Lines: 17
  1040. Date: 10 Dec 90 23:00:27 GMT
  1041. Message-ID: <9012101459.aa06425@ICS.UCI.EDU>
  1042. In-Reply-To: your message <internet3420640530> of Sat Dec 8 05:06:33 GMT 1990
  1043. >To: att!ics.uci.edu!thinku to wait, go have a coke on the rocks. Check out
  1044. what was the last trap that was run before the system hung. If it
  1045. kills MacsBug, you have to be there to look at the trap names while
  1046. they are displayed. When you know what the last trap was, you are
  1047. pretty close to what is happening in the crash (it might not be the
  1048. last one). If this still doesn't work, you might want to trap calls
  1049. to SetTrapAddress (and the N-counterpart of that).
  1050.  
  1051. Of course, you only have to do this if you want to know why the init
  1052. is crashing. When you know why it is crashing, it's usually quite
  1053. easy to make a quick binary patch to fix it. The INIT is 4Plus is
  1054. only 886 bytes long, so it's quite probable that the problem with
  1055. Macintosh SEs is quite easy to fix. Use MPW DumpObj to disassemble,
  1056. if all else fails... (We all have a "Highly confidential, please
  1057. don't copy" version of MPW 1.0B2 available from the early days,
  1058. don't we?)
  1059.  
  1060. P.S.
  1061.   Would you be interested in a Digital Simulator written in Think C?
  1062. It doesn't use any object stuff, since I wrote it for X Windows. I used
  1063. Think C and the Mac, but the user interface is quite minimal.  I'll
  1064. have the program running under unix in a week or so, but at the moment
  1065. it runs quite well on the Macintosh. (It doesn't really like the Mac
  1066. File System, but since you are programmers, one of you could easily fix
  1067. it. Currently it only knows about a single folder for subcomponents.)
  1068.  
  1069. It's slightly more advanced than DigSim 2.0.
  1070.  
  1071.    ____________________________________________________________________________
  1072.   / Juri Munkki        /  Helsinki University of Technology   /  Wind  / Project /
  1073.  / jmunkki@hut.fi  /  Computing Center Macintosh Support  /  Surf  /  STORM  /
  1074.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1075.  
  1076. 
  1077. 
  1078. Path: ucivax!gateway
  1079. From: cohen@excalibur.itd.nrl.navy.MIL (Neil Cohen)
  1080. Subject: Beginner's questions - thanks!
  1081. Message-ID: <9012111346.AA06432@constellation.arpa>
  1082. Newsgroups: fa.think-c
  1083. Lines: 35
  1084. Date: 11 Dec 90 13:49:33 GMT
  1085.  
  1086. Hi,
  1087.  
  1088. I'd like to thank all those who responded to my questions about getting
  1089. started with Graphics and the TCL.
  1090.  
  1091. I was referred to the following books for sample code and information on
  1092. drawing objects in a window:
  1093.  
  1094.     Programming Primer (I & II) - Author David Owen??
  1095.     QuickDraw (in Inside Mac)
  1096.     TCL Manual pages
  1097.         The consensus was that I just need to get over the (steep)
  1098.         TCL learning curve, but the results will be worth the effort.
  1099.     Sample code from apple.com
  1100.         Most of what I found there seemed to be for MPW, but there
  1101.         is quite a bit of code lying around, and I may have looked
  1102.         in the wrong places.
  1103.  
  1104. I have managed to get a simple program running using the TCL. I expect to
  1105. be back soon with more questions...
  1106.  
  1107. I'll send a bit more detail to those who asked me for copies of my replies.
  1108.  
  1109. Thanks again to all who responded,
  1110.  
  1111. nbc
  1112.  
  1113. NAME:   Neil B. Cohen (Tracor Applied Sciences)
  1114. PHONE:  703-444-4610
  1115. DOMAIN: nbc@excalibur.itd.nrl.navy.mil
  1116. *************************************************************
  1117. * Murphy's Philosophy: Smile - tomorrow will be worse...    *
  1118. *                                                           *
  1119. * O'Tooles Commentary: Murphy was an optimist!              *
  1120. *************************************************************
  1121. 
  1122. 
  1123. Path: ucivax!gateway
  1124. From: gd1a+@andrew.cmu.edu ("Glen M. Devries")
  1125. Subject: THINK C 4.0.4
  1126. Message-ID: <8bNEmf_00WBMQ1yUgD@andrew.cmu.edu>
  1127. Newsgroups: fa.think-c
  1128. Lines: 5
  1129. Date: 11 Dec 90 16:48:29 GMT
  1130.  
  1131. Where (besides the System 7 beta CD-ROM) can one obtain the 4.0.4
  1132. updater? Could someone please point me in the right direction or post it
  1133. on comp.sys.binaries.mac.
  1134.                                         -Glen
  1135.  
  1136. 
  1137. 
  1138. Path: ucivax!gateway
  1139. From: fri0@midway.uchicago.edu ("Christian E. Fritze")
  1140. Subject: Re: 4Plus & 68000 Macs = CRASH?
  1141. Message-ID: <CMM.0.88.660933910.fri0@quads.uchicago.edu>
  1142. Newsgroups: fa.think-c
  1143. Lines: 10
  1144. Date: 11 Dec 90 16:48:42 GMT
  1145.  
  1146. Before I saw the posting about using MacsBug to track down the specific bug
  1147. in 4Plus, I sent a message to the author on CompuServe. (Well, I hope it's
  1148. the author, sent it to the uploader of 4Plus on CompuServe). If I get
  1149. anything help back, I'll sent it along. Meanwhile, should anyone else figure
  1150. out a patch, let us know.
  1151.  
  1152. Christian E. Fritze                   |                            AOL:geneman
  1153. University of Chicago                 |               fri0@midway.uchicago.edu
  1154. Molecular Genetics and Cell Biology   |   "No one ever died of laughing" -M.B.
  1155. --
  1156. 
  1157. 
  1158. Path: ucivax!gateway
  1159. From: ech@pegasus.att.COM
  1160. Subject: Re: THINK C 4.0.4
  1161. Original-From: ech (Ned Horvath)
  1162. Lines: 22
  1163. Date: 11 Dec 90 20:05:15 GMT
  1164. Message-ID: <9012111203.aa06924@ICS.UCI.EDU>
  1165. In-Reply-To: your message <internet3451919020> of Tue Dec 11 16:48:29 GMT 1990
  1166. >To: att!ics.uci.edu!think-c
  1167. Content-Type: Text
  1168. Content-Length: 761
  1169. Newsgroups: fa.think-c
  1170. Message-Version: 2
  1171. Email-Version: 2
  1172. UA-Message-ID: <MAC-1.3.4A1-618034-ech-697>
  1173. UA-Content-ID: <PMX-PC-2.01A-000144-pegasus1-ech-3066>
  1174.  
  1175. ------------ Original Message -------------
  1176. Where (besides the System 7 beta CD-ROM) can one obtain the 4.0.4
  1177. updater? Could someone please point me in the right direction or post it
  1178. on comp.sys.binaries.mac.
  1179.                                         -Glen
  1180.  
  1181. --------- End of Original Message ---------
  1182.  
  1183. Weasel answer follows:
  1184.  
  1185. The distribution of 7.0b1 is limited by Apple to certified developers; the ThC
  1186. updates are only needed by people with 7.0b1.
  1187.  
  1188. The inexorable logic which follows is that if you don't have it, you don't
  1189. need it.  This is Symantec's line as well as Apple's.
  1190.  
  1191. You could hassle Symantec tech support, and they may or may not respond.  But
  1192. everybody who has the 7.0b1 is under nondisclosure...
  1193.  
  1194. Sorry.  I don't like it either.
  1195.  
  1196. =Ned Horvath=
  1197. 
  1198. 
  1199. Path: ucivax!gateway
  1200. From: ar4@sage.cc.purdue.edu (Piper Keairnes)
  1201. Subject: ThinkC 4.0.4 problem
  1202. Message-ID: <9012112151.AA12305@sage.cc.purdue.edu>
  1203. Newsgroups: fa.think-c
  1204. Lines: 19
  1205. Date: 11 Dec 90 21:52:15 GMT
  1206.  
  1207. I recently updated ThinkC to 4.0.4 on my hard disk. I ran into a recurring
  1208. problem:
  1209.  
  1210. Compiling gives several "does not match prototype errors"
  1211.  
  1212. I finally discovered the root of my problem (as I perceive it). I replaced
  1213. the updated MacHeaders file with an original from the 4.0 version. The next
  1214. compilation worked fine. I tried precompiling the 4.0.4 'Mac #includes.c'
  1215. file and using that. Compile errors reappeared. Replaced with the old
  1216. MacHeaders and compile worked again.
  1217.  
  1218. Has anyone else experienced these difficulties? If so... can you offer a
  1219. suggestion as to how to solve them?
  1220.  
  1221. Or just tell me I'm stupid... well, on second thought don't. ;-)
  1222.  
  1223. _____
  1224. Piper Keairnes
  1225. ar4@sage.cc.purdue.edu (Purdue University)
  1226. 
  1227. 
  1228. Path: ucivax!gateway
  1229. From: paco@neuromancer.sps.mot.COM (Paco Xander Nathan)
  1230. Subject: 4Plus, ThC4.0.4, CCursor
  1231. Message-ID: <9012112123.AA13253@neuromancer>
  1232. Newsgroups: fa.think-c
  1233. Lines: 14
  1234. Date: 11 Dec 90 22:22:53 GMT
  1235.  
  1236. Thanks for the direct replies about 4Plus.  Finally got it working.  It seems theres
  1237. a few versions running about, so check closely:  I've gotten v1.3 to work on my
  1238. sys:
  1239.     Mac IIx, System 6.0.5, ThC 4.0.2 w/ Gatekeeper & Gatekeeper Init v 1.1.1
  1240.  
  1241. no QM, etc.  Gatekeeper doesn't mention any vetoes though, but I still don't
  1242. get the menus from 4+.  Just press the "help" key to check if 4+ installs.
  1243.  
  1244. With mention of ThC 4.0.4, was there any distribution of a 4.0.3 version?  I admit
  1245. to blowing off the 7.0 beta CD...
  1246.  
  1247. I absolutely love using Resourceror!!!!  Well worth $256 of hard earned cash to
  1248. save so much time and frustration with an excellent Mac product.
  1249. Has anybody got a good means of  capturing color cursors for it?
  1250. 
  1251. 
  1252. Path: ucivax!gateway
  1253. From: FLEMINGM@qucdn.queensu.ca ("R. Mark Fleming")
  1254. Subject: RE:4Plus & 68000 CPU
  1255. Message-ID: <9012111420.aa26042@ICS.UCI.EDU>
  1256. Newsgroups: fa.think-c
  1257. Lines: 9
  1258. Date: 11 Dec 90 22:43:54 GMT
  1259.  
  1260. I have used 4Plus on the Macintosh Portable which is a 68000 based system.
  1261. running v6.0.5 & Think C v4.0.2.
  1262.  
  1263. Mark
  1264. <<<<<<<<<<<<<<<=========================================>>>>>>>>>>>>>>>>>
  1265. Mark Fleming, Macintosh Support, Office Systems, Computing  & Communicat.
  1266. Services, Queen's University at Kingston, Phone: (613) 545-2039
  1267. Bitnet: FLEMINGM@QUCDN  or  Mark.Fleming@QueensU.CA    AppleLink: CDA0448
  1268. <<<<<<<<<<<<<<<=========================================>>>>>>>>>>>>>>>>>
  1269. 
  1270. 
  1271. Path: ucivax!gateway
  1272. From: siegel@das.harvard.edu (Rich Siegel)
  1273. Subject: Re: THINK C 4.0.4
  1274. Message-ID: <9012120243.AA19746@das.harvard.edu>
  1275. Newsgroups: fa.think-c
  1276. Lines: 16
  1277. Date: 12 Dec 90 02:47:49 GMT
  1278.  
  1279.  
  1280. In fact, you've got it precisely right. As of now, all version of THINK C
  1281. *after* 4.0.2 are intended only to address compatibility issues with pre-
  1282. release versions of System 7.0, and offer no benefits for people not running
  1283. that version of the system.
  1284.  
  1285. (And the logic still applies: System 7 prereleases are provided only to
  1286. Apple Partners and Apple Associates under the injunction that they are
  1287. not to distribute it, so anyone who doesn't have a System 7.0 CD theoretically
  1288. got it through someone's violation of this agreement. Likewise, all Partners
  1289. and associates have Applelink accounts, so Applelink is the preferred medium
  1290. to distribute System 7.0-related materials.)
  1291.  
  1292. If you hassle the Tech Support dudes, you'll be wasting your time and theirs.
  1293.  
  1294. R.
  1295. 
  1296. 
  1297. Path: ucivax!gateway
  1298. From: siegel@das.harvard.edu (Rich Siegel)
  1299. Subject: Re:  ThinkC 4.0.4 problem
  1300. Message-ID: <9012120244.AA19749@das.harvard.edu>
  1301. Newsgroups: fa.think-c
  1302. Lines: 6
  1303. Date: 12 Dec 90 02:48:05 GMT
  1304.  
  1305.  
  1306. It's my understanding that 4.0.4 was supplied with updated Toolbox interfaces
  1307. and a new MacHeaders file. You should check your existing code agains the
  1308. new interfaces.
  1309.  
  1310. R.
  1311. 
  1312. 
  1313. Path: ucivax!gateway
  1314. From: tarr-michael@cs.yale.edu (michael tarr)
  1315. Subject: 4Plus and Precompiled Headers
  1316. Full-Name: michael tarr
  1317. Message-ID: <9012130219.AA08238@thailand.CS.YALE.EDU>
  1318. Newsgroups: fa.think-c
  1319. Lines: 11
  1320. Date: 13 Dec 90 02:19:59 GMT
  1321.  
  1322.  
  1323. 4Plus works fine if MacroMaker is not loaded. But I use my own precompiled
  1324. heeader (rather than <MacHeaders> and 4Plus only seems to show .h files from
  1325. <MacHeaders> or explicitly included files. So I am left with no way of quickly
  1326. getting a list of .h files in a menu...
  1327.  
  1328. Any suggestions?
  1329.  
  1330. Mike Tarr                    Department of Psychology
  1331. tarr@cs.yale.edu                Yale University
  1332.  
  1333. 
  1334. 
  1335. Path: ucivax!gateway
  1336. From: paco@neuromancer.sps.mot.COM (Paco Xander Nathan)
  1337. Subject: Resorceror
  1338. Message-ID: <9012130524.AA13844@neuromancer>
  1339. Newsgroups: fa.think-c
  1340. Lines: 78
  1341. Date: 13 Dec 90 14:07:28 GMT
  1342.  
  1343. I was recently asked to post a more detailed
  1344. review following my recent wildly blatant
  1345. endorsement for a new product known as Resorceror.
  1346.  
  1347. First, I sspeelled it wrong.  It's spelled as
  1348. "Resorceror" and the authors are quite emphatic
  1349. on this point.  Secondly, here is the contact
  1350. info:
  1351.  
  1352.     Mathemaesthetics, Inc.
  1353.     P.O. Box 67-156
  1354.     Chestnut Hill, MA  02167   USA
  1355.  
  1356.     Phone:     1.617.738.8803
  1357.     AppleLink: RESORCERER
  1358.     Internet:  RESORCERER@AppleLink.apple.com
  1359.  
  1360.  
  1361. Okay.  It's still in beta, but quite stable.
  1362. We use it here for development; using almost
  1363. anything else would be a risk.  Here's my
  1364. random thoughts on the subject:
  1365.  
  1366. Buy it for $256, then throw away ResEdit vX.X
  1367. quickly.  The product shows all resources for
  1368. any file you choose.  No more "Shall I create
  1369. a resource fork?" nonsense.  It also shows
  1370. and edit all file info.
  1371.  
  1372. It displays rsrc in sorted order; you specify
  1373. which order, ie. number, title, etc.  The
  1374. rsrc are arrange in a tree structure, very
  1375. easy to see.  I tend to only need 4 windows
  1376. open at a time.  Lists are displayed visually
  1377. whenever appropriate.  The editors are all
  1378. quite smart, ie. BNDL editor manages the
  1379. signature rsrc + FREF + ICN# + icn8 + icn4
  1380. in one display.
  1381.  
  1382. Dialogs.  It manages DLOG, DITL & DLGX all
  1383. in one effort.  It interactively simulates
  1384. a dialog, showing ModalDialog return values.
  1385. It creates TCL, MPW, etc. code to run the
  1386. dialog, either modeless or modal.  It automatically
  1387. creates popup menu items & user defined list items.
  1388.  
  1389. Throw out ResMenu (it was nice though) because
  1390. the menu editor is brilliant.
  1391.  
  1392. All icon, icn8, cicn, CURS, etc. editors will
  1393. capture from the screen, even in color.  Except
  1394. for color cursors (I'll have to link 'em).
  1395.  
  1396. Windows.  Takes care of WDEF's, manages color
  1397. tables, generates code, etc.
  1398.  
  1399. ThC/TCL templates.  Knows them well.  Very
  1400. nice editors for panes, borders, etc.
  1401.  
  1402. Any templates.  Edits them well, using an
  1403. extended version of ResEdit TMPL language.
  1404.  
  1405. I am only a user of the product and probably
  1406. have gotten a few issues jumbled, but you'll
  1407. like this product if you spend much time using
  1408. ThC.
  1409.  
  1410. paco.
  1411. ----
  1412. Internet:    paco@neuromancer.sps.mot.com
  1413. Voice Mail:    1.512.891.2973
  1414.  
  1415. Neural Networks & Virtual Reality Development
  1416. Center for Emerging Computer Technologies
  1417. Motorola, Inc.
  1418. Austin, Texas, USA
  1419.  
  1420. (c)1990, PXN.  B*B*!  Subject to Public Law 99-508
  1421. 
  1422. 
  1423. Path: ucivax!gateway
  1424. From: bin@primate.wisc.edu (Brain in Neutral)
  1425. Subject: TransSkel users please read
  1426. Message-ID: <9012132255.AA01211@uakari.primate.wisc.edu>
  1427. Newsgroups: fa.think-c
  1428. Lines: 18
  1429. Date: 13 Dec 90 22:59:33 GMT
  1430.  
  1431. It's time (now that I'm Macintosh programming again) to revise
  1432. TransSkel.  The current version is 2.01, available via anonymous
  1433. ftp at indri.primate.wisc.edu [128.104.230.11] in THINK C and
  1434. Pascal versions.
  1435.  
  1436. The major glaring omissions are support for MultiFinder and hierarchical
  1437. menus.  There are also several minor omissions I can think of (e.g.,
  1438. providing a hook to be called before menu selections are executed).
  1439. But of course I don't think of everything.
  1440.  
  1441. My request:  if you are a TransSkel user and have suggestions or
  1442. comment about what should be added or changed, please let me know.
  1443.  
  1444. If you don't know what TransSkel is, don't ask.  You don't want to know.
  1445.  
  1446. --
  1447. Paul DuBois
  1448. dubois@primate.wisc.edu
  1449. 
  1450. 
  1451. Path: ucivax!gateway
  1452. From: dmac@eagle.mit.edu ("David S. McCormick")
  1453. Subject: At what level should methods be over-ridden in TCL?
  1454. Message-ID: <9012151833.AA28667@EAGLE.MIT.EDU>
  1455. Newsgroups: fa.think-c
  1456. Lines: 16
  1457. Date: 15 Dec 90 18:36:35 GMT
  1458.  
  1459. I am taking my first furtive steps into the TCL and I am having
  1460. difficulty trying to figure out at what part the hierarchy methods
  1461. should be over-ridden. For example, if a menu item is invoked to show a
  1462. window that may be hidden, should I override the CDocument::DoCommand()
  1463. or the CApplication::DoCommand()? (AppMaker is helpful in this regard).
  1464.  
  1465. In other words, are there guidelines to figure out what each item should
  1466. handle? If this is a FAQ just refer me somewhere else.
  1467. Any help greatly appreciated.
  1468.  
  1469. Cheers and Happy Holidays,
  1470. David S. McCormick
  1471. MIT-EAPS Geology
  1472.  
  1473. dmac@eagle.mit.edu
  1474. dmac@athena.mit.edu
  1475. 
  1476. 
  1477. Path: ucivax!gateway
  1478. From: mwg@med.pitt.edu ("Michael W. Groff")
  1479. Subject: TCL class/instance browser
  1480. Message-ID: <9012170324.AA13997@earth.med.pitt.edu>
  1481. Newsgroups: fa.think-c
  1482. Lines: 10
  1483. Date: 17 Dec 90 03:28:16 GMT
  1484.  
  1485. Does anyone have a recommendation for a good class/instance browser
  1486. for Think C and the TCL?
  1487. I would like to be able to stop my program and find out the name of
  1488. the last n methods that were called.  Also it would be helpful to
  1489. know which instances made the calls- as opposed to which objects.
  1490. I have trouble with Think's debugger because it seems that the scope
  1491. of the instance is always out of bounds by the time the method kicks
  1492. in.  Any tips or pointers?  Thanks in advance.
  1493. mike groff
  1494. mwg@med.pitt.edu
  1495. 
  1496. 
  1497. Path: ucivax!gateway
  1498. From: nagel@ICS.UCI.EDU (Mark Nagel)
  1499. Subject: ARCHIVE: list archives available
  1500. Message-ID: <8922.661468419@ics.uci.edu>
  1501. Newsgroups: fa.think-c
  1502. Reply-To: nagel@ICS.UCI.EDU
  1503. Organization: University of California, Irvine - Dept of ICS
  1504. Lines: 24
  1505. Date: 17 Dec 90 21:18:31 GMT
  1506. Phone: (714) 856-5039
  1507.  
  1508. I've placed the mailing list archives in the think-c archive area
  1509. under the directory mac/think-c/archives.  Each month is stored
  1510. compressed as mmmyy.Z (e.g. sep90.Z) in MMDF mailbox format.  That
  1511. format is easier for me to generate, but if it is a large problem, I
  1512. can change them to standard mailbox format.  For those who don't
  1513. know, MMDF format is essentially:
  1514.  
  1515. ^A^A^A^A
  1516. message 1
  1517. ^A^A^A^A
  1518. ^A^A^A^A
  1519. message 2
  1520. ^A^A^A^A
  1521. ^A^A^A^A
  1522. ...
  1523. ^A^A^A^A
  1524. ^A^A^A^A
  1525. message N
  1526. ^A^A^A^A
  1527.  
  1528. The ^A characters above are actual control characters, not the
  1529. sequence "^A".
  1530.  
  1531. Mark
  1532. 
  1533. 
  1534. Path: ucivax!gateway
  1535. From: hirose@sws.cpd.mei.co.jp (Masato Hirose)
  1536. Subject: Pro.Prog.Extender?
  1537. Message-ID: <9012180910.AA00443@coron.sws.cpd.mei.co.jp>
  1538. Newsgroups: fa.think-c
  1539. Lines: 5
  1540. Date: 18 Dec 90 09:12:05 GMT
  1541.  
  1542. Does anyone know about Professional Programmer's Extender?
  1543. I hear it includes think-C source code and it is very useful.
  1544. Really? How much? Where can I buy?
  1545.  
  1546. --Masato Hirose (hirose@sws.cpd.mei.co.jp)
  1547. 
  1548. 
  1549. Path: ucivax!gateway
  1550. From: mrose@cheetah.ca.psi.COM (Marshall Rose)
  1551. Subject: MacTCP and THINK-C
  1552. Message-ID: <9075.661544625@cheetah.ca.psi.com>
  1553. Newsgroups: fa.think-c
  1554. Lines: 15
  1555. Date: 18 Dec 90 18:28:06 GMT
  1556.  
  1557. [ sorry to bother the list with a question I'm sure has been asked a dozen
  1558.   times, but I can't find the answer in the archives here... ]
  1559.  
  1560. OK, so I am having a great time with LSC4.0 and now what to write a program
  1561. using MacTCP.  How does one go about doing this?  The manual doesn't seem
  1562. to talk about how to "import" things like the MacTCP library.
  1563.  
  1564. My guess is that I need some kind of include file that defines both some C
  1565. structs and some pascal routine prototypes.
  1566.  
  1567. Can anyone help?
  1568.  
  1569. Thanks,
  1570.  
  1571. /mtr
  1572. 
  1573. 
  1574. Path: ucivax!gateway
  1575. From: zaccone@bucknell.edu (zaccone - 1393)
  1576. Subject: Problem with code resource
  1577. Message-ID: <9012182030.AA15691@sol.bucknell.edu>
  1578. Newsgroups: fa.think-c
  1579. Lines: 17
  1580. Date: 18 Dec 90 20:34:16 GMT
  1581.  
  1582. I am having a problem creating a code resource with THINK C.  This is
  1583. my first attempt at this, so I think that my problem is probably
  1584. elementary.
  1585.  
  1586. First, I wrote my code, set the project type to application, included
  1587. the ANSI library and tested it.  Then, I removed the objects, changed
  1588. the type to code resource, removed the ANSI library and included
  1589. ANSI-A4, set the creator, type, id, and file type.  Finally, I
  1590. selected "Build Code Resource...".  THINK C complains because I "Can't
  1591. define classes in this project".  I'm not using classes!  The manual
  1592. hints that setting the multi-segment flag might help (even though it
  1593. is one segment).  If I set this flag, the OK button doesn't highlight.
  1594. Can anyone tell me what I'm doing wrong?  I'm out of ideas!
  1595.  
  1596. Rick Zaccone
  1597. zaccone@bucknell.edu
  1598.  
  1599. 
  1600. 
  1601. Path: ucivax!gateway
  1602. From: GFT_ROBERT@gsbvxb.uchicago.edu (opcode ranger)
  1603. Subject: How does one get Profile to print to a file?
  1604. Message-ID: <901218180354.2ce016d1@GSBACD.UCHICAGO.EDU>
  1605. Newsgroups: fa.think-c
  1606. Lines: 12
  1607. Date: 19 Dec 90 00:08:17 GMT
  1608. X-Vmsmail-To: @THINKC
  1609.  
  1610. I've written a fairly substantial Macintosh app.  I'd like to get a performance
  1611. profile on it, and I was trying to use THINK C's optional Profiler() library.
  1612. When I use it a 'console' window pops up in the back of my program while it's
  1613. running and spits out the function calls (I set _trace to true), and when it's
  1614. done it spits out the stats to the 'console' window which then promptly
  1615. vanishes.  All in all fairly useless as it stands now: I don't know how to save
  1616. the stats.
  1617.  
  1618. Has anyone figured out a way to do this to a Mac (i.e. non-console-oriented)
  1619. app?  All I'd like it to do is print it to a file "Profile.out" or something.
  1620.  
  1621. Robert
  1622. 
  1623. 
  1624. Path: ucivax!gateway
  1625. From: GFT_ROBERT@gsbvxb.uchicago.edu (opcode ranger)
  1626. Subject: Emily Litella speaks (re: How does one get Profile to print to a file?)
  1627. Message-ID: <901218193046.2ce018f7@GSBACD.UCHICAGO.EDU>
  1628. Newsgroups: fa.think-c
  1629. Lines: 7
  1630. Date: 19 Dec 90 01:34:51 GMT
  1631. X-Vmsmail-To: @THINKC
  1632.  
  1633. Never mind!  :->
  1634.  
  1635. With the help of a friend more standard-C-knowledgeable than I I figured out
  1636. how to get profiler to write to a file.  I just went into the profile source
  1637. code and opened a file and changed all printf's to fprintf's.  Simple.
  1638.  
  1639. Robert
  1640. 
  1641. 
  1642. Path: ucivax!gateway
  1643. From: puklich@plains.nodak.edu (Blayne Puklich)
  1644. Subject: Re: How does one get Profile to print to a file?
  1645. Message-ID: <9012190214.AA14112@plains.NoDak.edu>
  1646. In-Reply-To: <901218180354.2ce016d1@GSBACD.UCHICAGO.EDU>; from "opcode ranger" at Dec 19, 90 12:08 am
  1647. X-Mailer: ELM [version 2.3 PL0]
  1648. Newsgroups: fa.think-c
  1649. Lines: 35
  1650. Date: 19 Dec 90 02:18:37 GMT
  1651.  
  1652. > I've written a fairly substantial Macintosh app.  I'd like to get a performance
  1653. > profile on it, and I was trying to use THINK C's optional Profiler() library.
  1654. > When I use it a 'console' window pops up in the back of my program while it's
  1655. > running and spits out the function calls (I set _trace to true), and when it's
  1656. > done it spits out the stats to the 'console' window which then promptly
  1657. > vanishes.  All in all fairly useless as it stands now: I don't know how to save
  1658. > the stats.
  1659. >
  1660. > Has anyone figured out a way to do this to a Mac (i.e. non-console-oriented)
  1661. > app?  All I'd like it to do is print it to a file "Profile.out" or something.
  1662.  
  1663. Actually it's pretty easy.  Using one of the old UNIX tricks, do the
  1664. following two calls at the very start of your application:
  1665.     fclose(stdout);
  1666.     freopen("Profile.out", "w", stdout);
  1667.  
  1668. That's it.
  1669.  
  1670. Has anyone noticed that fopen() won't return file descriptors from 0
  1671. through 3?  By my count, only 0 through 2 are used, and 3 should be the
  1672. first one available to the first fopen().  Look at __getfile() (in iomisc.c)
  1673. to see what I mean.
  1674.  
  1675. What one should be able to do is fclose(stdout); fopen("Profile.out", "w");
  1676. and it should reassign stdout to Profile.out.  The lowest numbered
  1677. file descriptor should get reassigned -- after all, that's how parent
  1678. and child processes frequently talk to each other under UNIX (not that I
  1679. want my Mac to be UNIX, unless it's A/UX).
  1680.  
  1681. --
  1682. ||+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++||
  1683. || Blayne Puklich    puklich@Plains.NoDak.EDU "I think I'm going bald..."  ||
  1684. || NDSU, Fargo, ND   (701) 237-4408            -- Rush, Caress of Steel,   ||
  1685. ||                                                1975                     ||
  1686. ||-------------------------------------------------------------------------||
  1687. 
  1688. 
  1689. Path: ucivax!gateway
  1690. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1691. Subject: How does one get Profile to print to a file?
  1692. Message-ID: <9012191835.AA02103@chaos.cs.brandeis.edu>
  1693. In-Reply-To: Blayne Puklich's message of 19 Dec 90 02:18:37 GMT <9012190214.AA14112@plains.NoDak.edu>
  1694. Newsgroups: fa.think-c
  1695. Lines: 16
  1696. Date: 19 Dec 90 18:40:58 GMT
  1697.  
  1698.    > Has anyone figured out a way to do this to a Mac (i.e. non-console-oriented)
  1699.    > app?  All I'd like it to do is print it to a file "Profile.out" or something.
  1700.  
  1701.    Actually it's pretty easy.  Using one of the old UNIX tricks, do the
  1702.    following two calls at the very start of your application:
  1703.        fclose(stdout);
  1704.        freopen("Profile.out", "w", stdout);
  1705.  
  1706. You don't have to bother closing the stream you're re-opening, since
  1707. freopen() does it for you.
  1708.  
  1709. If you don't mind using the console library, you could always do:
  1710.  
  1711.     cecho2file("Profile.out", 0, stdout);
  1712.  
  1713.     -phil
  1714. 
  1715. 
  1716. Path: ucivax!gateway
  1717. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1718. Subject: Problem with code resource
  1719. Message-ID: <9012191843.AA02167@chaos.cs.brandeis.edu>
  1720. In-Reply-To: zaccone - 1393's message of 18 Dec 90 20:34:16 GMT <9012182030.AA15691@sol.bucknell.edu>
  1721. Newsgroups: fa.think-c
  1722. Lines: 28
  1723. Date: 19 Dec 90 18:46:28 GMT
  1724.  
  1725.    From: zaccone - 1393 <zaccone@bucknell.edu>
  1726.    Newsgroups: fa.think-c
  1727.    Date: 18 Dec 90 20:34:16 GMT
  1728.  
  1729.    I am having a problem creating a code resource with THINK C.  This
  1730.    is my first attempt at this, so I think that my problem is probably
  1731.    elementary.
  1732.  
  1733.    [ ... stuff deleted ... ]
  1734.  
  1735.    Finally, I selected "Build Code Resource...".  THINK C complains
  1736.    because I "Can't define classes in this project".  I'm not using
  1737.    classes!  The manual hints that setting the multi-segment flag
  1738.    might help (even though it is one segment).  If I set this flag,
  1739.    the OK button doesn't highlight.  Can anyone tell me what I'm doing
  1740.    wrong?  I'm out of ideas!
  1741.  
  1742. I don't know why you're getting that error message.  I would try
  1743. creating a new project and starting with that.
  1744.  
  1745. The reason the OK button is dimmed when you check the Multi Segment
  1746. flag is that Think C uses an owned resource scheme to keep track of
  1747. multi segment code resources.  This means that you're limited to a 6
  1748. bit integer to specify the "owning" resource ID, so your code
  1749. resource's ID must be in the range 0..63.  For more info about owned
  1750. resources, look at IM I-109.
  1751.  
  1752.     -phil
  1753. 
  1754. 
  1755. Path: ucivax!gateway
  1756. From: dmitri@bolvan.ph.utexas.edu (Dmitri Linde)
  1757. Subject: RE: code resources
  1758. Message-ID: <9012192345.AA21931@bolvan.ph.utexas.edu.ph.utexas.edu.>
  1759. Posted-Date: Wed, 19 Dec 90 17:45:54 CST
  1760. Newsgroups: fa.think-c
  1761. Lines: 8
  1762. Date: 20 Dec 90 00:38:32 GMT
  1763.  
  1764.  
  1765.   I had a similar problem. I added TCL headers to Macheaders.
  1766. I did this to speed up compilation of TCL project by about 2 times.
  1767. But when I built code resources, it complained "Caan't build classes..."
  1768. I removed TCL headers and it worked fine...
  1769.  
  1770. - Dmitri
  1771. dmitri@bolvan.ph.utexas.edu
  1772. 
  1773. 
  1774. Path: ucivax!gateway
  1775. From: mkelly@cs.uoregon.edu
  1776. Subject: CDesktop
  1777. Message-ID: <9012200702.AA24751@pragmatix.cs.uoregon.edu>
  1778. Newsgroups: fa.think-c
  1779. Lines: 49
  1780. Date: 20 Dec 90 07:02:58 GMT
  1781.  
  1782.  
  1783.  
  1784. I've found a possible bug in CDesktop.  The procedure RemoveWind is:
  1785.  
  1786. void    CDesktop::RemoveWind(
  1787.     CWindow        *theWindow)    /* Window object to remove */
  1788. {
  1789.     if (theWindow->IsVisible()) {
  1790.         HideWind(theWindow);    /* Hide window before removing it */
  1791.     }
  1792.     itsWindows->Remove(theWindow);
  1793. }
  1794.  
  1795. If this procedure removes the last window from the desktop, the CDesktop
  1796. instance variable 'topWindow' should go to NIL, shouldn't it?  It doesn't;
  1797. it remains whatever it was before the call.
  1798.  
  1799. I encountered this problem by making this call from a document:
  1800.     gApplication->itsDirectors->DisposeItems();
  1801.  
  1802. gDesktop->topWindow remained the same after the call.  This eventually caused
  1803. a crash, since the window had been disposed of.  I changed RemoveWind to
  1804.  
  1805. void    CDesktop::RemoveWind(
  1806.         CWindow         *theWindow)     /* Window object to remove */
  1807. {
  1808.         if (theWindow->IsVisible()) {
  1809.                 HideWind(theWindow);    /* Hide window before removing it */
  1810.         }
  1811.         itsWindows->Remove(theWindow);
  1812.     if ( itsWindows->numItems == 0 )
  1813.         topWindow = NULL;
  1814. }
  1815.  
  1816. This has apparently fixed the problem, since the program no longer crashes.
  1817.  
  1818. So, was the problem with CDesktop, or am I not doing something correctly?
  1819.  
  1820. Also, is there a way to make a window completely ignore clicks other than
  1821. overriding CDesktop::DispatchClick ?
  1822.  
  1823.  
  1824. Thanks,
  1825.  
  1826. Mike.
  1827. Michael A. Kelly                 | "Fish heads, fish heads,
  1828. Internet: mkelly@cs.uoregon.edu  |  Roly-poly fish heads,
  1829. America Online: Michael792       |  Fish heads, fish heads,
  1830. Compu$erve: 73567,1651           |  Eat them up, yum!"      - Barnes & Barnes
  1831. 
  1832. 
  1833. Path: ucivax!gateway
  1834. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1835. Subject: CDesktop
  1836. Message-ID: <9012202049.AA18758@chaos.cs.brandeis.edu>
  1837. In-Reply-To: mkelly@cs.uoregon.edu's message of 20 Dec 90 07:02:58 GMT <9012200702.AA24751@pragmatix.cs.uoregon.edu>
  1838. Newsgroups: fa.think-c
  1839. Lines: 41
  1840. Date: 20 Dec 90 20:54:45 GMT
  1841.  
  1842.    From: mkelly@cs.uoregon.edu
  1843.    Newsgroups: fa.think-c
  1844.    Date: 20 Dec 90 07:02:58 GMT
  1845.  
  1846.    I've found a possible bug in CDesktop.  The procedure RemoveWind is:
  1847.  
  1848.    void    CDesktop::RemoveWind(
  1849.        CWindow        *theWindow)    /* Window object to remove */
  1850.    {
  1851.        if (theWindow->IsVisible()) {
  1852.            HideWind(theWindow);    /* Hide window before removing it */
  1853.        }
  1854.        itsWindows->Remove(theWindow);
  1855.    }
  1856.  
  1857.    If this procedure removes the last window from the desktop, the CDesktop
  1858.    instance variable 'topWindow' should go to NIL, shouldn't it?  It doesn't;
  1859.    it remains whatever it was before the call.
  1860.  
  1861. The method CDesktop:HideWind() will correctly set the topWindow to the
  1862. first visible window in the itsWindows list.  The code is:
  1863.  
  1864.     if (theWindow == topWindow) {   /* This was the top window */
  1865.                                     /* Find the new top top window */
  1866.         topWindow = (CWindow*) itsWindows->FirstSuccess(Window_IsVisible);
  1867.  
  1868. If FirstSuccess() fails, it should return NIL.  Maybe you're removing
  1869. a window that isn't visible -- but in that case, it shouldn't be the
  1870. top Window.
  1871.  
  1872.    Also, is there a way to make a window completely ignore clicks other than
  1873.    overriding CDesktop::DispatchClick ?
  1874.  
  1875. The drag, close, grow, and zoom clicks are all handled by the Desktop.
  1876. If you want to disable these functions, or change their behavior, you
  1877. must override the CDesktop methods.  I guess the author of the TCL
  1878. considered the behavior of these functions to be an attribute of the
  1879. type of Desktop you're using -- or maybe it was just the easiest way
  1880. :-).
  1881.  
  1882.     -phil
  1883. 
  1884. 
  1885. Path: ucivax!gateway
  1886. From: paco@neuromancer.sps.mot.COM (Paco Xander Nathan)
  1887. Subject: re:  How does one get Profile to print to a file?
  1888. Message-ID: <9012202010.AA16248@neuromancer>
  1889. Newsgroups: fa.think-c
  1890. Lines: 69
  1891. Date: 20 Dec 90 23:08:38 GMT
  1892.  
  1893. You can also punch directly down to using the VIA timer to gather
  1894. performance stats.  We use this method here since it's more flexible
  1895. for analyzing special tasks, critical loops, etc. rather than trying to work
  1896. around the ThC profiler.  NB:  you need to run/stop the timer once
  1897. before measure the first time and you can't leave the timer running
  1898. since it tends to crash other program functions like SoundMgr.
  1899.  
  1900. paco
  1901. ----
  1902. Internet:    paco@neuromancer.sps.mot.com
  1903. Voice Mail:    1.512.891.2973
  1904.  
  1905. Neural Networks & Virtual Reality Development
  1906. Center for Emerging Computer Technologies
  1907. Motorola, Inc.
  1908. Austin, Texas, USA
  1909.  
  1910. (c)1990, PXN.  B*B*!  Subject to Public Law 99-508
  1911. It's nearly Yule, so happy holidays to all!
  1912.  
  1913.  
  1914. /******  Snip, snip  ******  Snip, snip  ******  Snip, snip  ******  Snip, snip  ******/
  1915.  
  1916.  
  1917. #include <profile.h>
  1918.  
  1919.  
  1920. /****************  INITIALIZE ********************/
  1921.  
  1922.     matchCount = 0L;
  1923.     matchTicks = 0L;
  1924.  
  1925.     start_VIA_timer();
  1926.     (void) VIA_ticks();
  1927.     stop_VIA_timer();
  1928.  
  1929.  
  1930. /****************  MEASURE ********************/
  1931.  
  1932. register long        lastTick;
  1933. register long        startTick;
  1934.  
  1935.     start_VIA_timer();
  1936.     startTick = VIA_ticks();
  1937.  
  1938.     /** run something **/
  1939.  
  1940.     lastTick = VIA_ticks();
  1941.     stop_VIA_timer();
  1942.  
  1943.     if (matchTicks > (MAXLONG - 500)) {
  1944.         matchTicks = 0;
  1945.         matchCount = 0;
  1946.     }
  1947.  
  1948.     matchTicks += (lastTick - startTick);
  1949.     matchCount++;
  1950.  
  1951.  
  1952. /****************  REPORT ********************/
  1953.  
  1954. float        matchTime = 0.0;
  1955.  
  1956.     if (matchCount > 0L)
  1957.         matchTime = ((float) matchTicks / (float) matchCount * 0.00128) + 0.5;
  1958.  
  1959.     MoveTo(5, 50);
  1960.     sprintf(theText, "%7.3f msec Match Mean", matchTime);
  1961.     DrawString((StringPtr) CtoPstr(theText));
  1962. 
  1963. 
  1964. Path: ucivax!gateway
  1965. From: Tom_Johnson@chip.cs.ucla.edu (Tom Johnson)
  1966. Subject: Think C and Graf3d
  1967. Message-ID: <9012271010.aa28086@ICS.UCI.EDU>
  1968. Newsgroups: fa.think-c
  1969. Lines: 9
  1970. Date: 27 Dec 90 18:11:31 GMT
  1971.  
  1972.                Think C and Graf3d
  1973. Has anyone out there tried to do Graf3d stuff in Think C?  I noticed that
  1974. Symantec provides the Graf3d library with Think Pascal, but not with Think C.
  1975. I'd be most appreciative if anyone could point me in the direction of some C
  1976. sample code for this stuff.
  1977.  
  1978. Tom
  1979.  
  1980.  
  1981. 
  1982. 
  1983. Path: ucivax!gateway
  1984. From: mwg@med.pitt.edu ("Michael W. Groff")
  1985. Subject: background processing w/ TCL
  1986. Message-ID: <9012281631.AA09600@earth.med.pitt.edu>
  1987. Newsgroups: fa.think-c
  1988. Lines: 7
  1989. Date: 28 Dec 90 16:37:44 GMT
  1990.  
  1991. Please help me!! I am converting a unix program to run on the mac.
  1992. How do I support multifinder and background processing with the Think
  1993. Class Lib?  Give me all your suggestions and I will post a summary if
  1994. there is demand.
  1995. Thanks in advance,
  1996. mike groff
  1997. mwg@med.pitt.edu
  1998. 
  1999. 
  2000. Path: ucivax!gateway
  2001. From: resnick@cogsci.uiuc.edu (Pete Resnick)
  2002. Subject: THINK C and MacTCP
  2003. Message-ID: <9012290104.AA17012@tarski.cogsci.uiuc.edu>
  2004. X-Mailer: ELM [version 2.3 PL2]
  2005. Newsgroups: fa.think-c
  2006. Lines: 49
  2007. Date: 29 Dec 90 01:06:59 GMT
  2008.  
  2009. Here is what to do to the MacTCP header files that are provided:
  2010.  
  2011. In MacTCPCommonTypes.h, change the "ifndef/include" definition to look
  2012. like this:
  2013.  
  2014. #ifndef _MacTypes_
  2015. #include <MacTypes.h>
  2016. #endif /* _MacTypes_ */
  2017.  
  2018. In UDPPB.h, comment out the word "pascal" in the declaration of
  2019. UDPNotifyProc so that it looks like this (THINK C doesn't like a
  2020. typedefed pascal funtion):
  2021.  
  2022. typedef /*pascal*/ void (*UDPNotifyProc) (
  2023.         StreamPtr udpStream,
  2024.         unsigned short eventCode,
  2025.         Ptr userDataPtr,
  2026.         struct ICMPReport *icmpMsg);
  2027.  
  2028. Do the same thing in TCPPB.h for TCPNotifyProc:
  2029.  
  2030. typedef /*pascal*/ void (*TCPNotifyProc) (
  2031.         StreamPtr tcpStream,
  2032.         unsigned short eventCode,
  2033.         Ptr userDataPtr,
  2034.         unsigned short terminReason,
  2035.         struct ICMPReport *icmpMsg);
  2036.  
  2037. You will not be able to use these typedefs in your own programs; they
  2038. are only to deal with other declarations in your header files. In your
  2039. code, declare your notify procs as 'pascal void whatever' with all of
  2040. the parameters as they are declare in the typedef.
  2041.  
  2042. That's all I have found so far, except that in my copy of TCPPB.h,
  2043. instead of the csCode for receive buffer return being TCPBfrReturn as
  2044. documented, it was TCPRcvBfrReturn. I changed it to TCPBfrReturn.
  2045.  
  2046. There were also a couple of changes in the DNR stuff, but these have
  2047. been hacks so far. I will send them if they become more reasonable. One
  2048. which you should watch out for is that instead of OpenRFPerm, you must
  2049. use OpenResFile. Currently I don't know why.
  2050.  
  2051. pr
  2052. --
  2053. Pete Resnick             (...so what is a mojo, and why would one be rising?)
  2054. Graduate assistant - Philosophy Department, Gregory Hall, UIUC
  2055. System manager - Cognitive Science Group, Beckman Institute, UIUC
  2056. Internet/ARPAnet/EDUnet  : resnick@kant.cogsci.uiuc.edu
  2057. BITNET (if no other way) : FREE0285@UIUCVMD
  2058. 
  2059. 
  2060. Path: ucivax!gateway
  2061. From: mrose@cheetah.ca.psi.COM (Marshall Rose)
  2062. Subject: Re: THINK C and MacTCP
  2063. Message-ID: <26779.662434836@cheetah.ca.psi.com>
  2064. In-Reply-To: Your message of Fri, 28 Dec 90 19:04:54 -0600.
  2065.              <9012290104.AA17012@tarski.cogsci.uiuc.edu>
  2066. Newsgroups: fa.think-c
  2067. Lines: 6
  2068. Date: 29 Dec 90 01:49:06 GMT
  2069.  
  2070. Thanks.  Can you summarize what the DNR problems are?  I'm not using it yet,
  2071. but would like to know what to expect.
  2072.  
  2073. Thanks,
  2074.  
  2075. /mtr
  2076. 
  2077. 
  2078. Path: ucivax!orion.oac.uci.edu!teri.bio.uci.edu!bdugan
  2079. From: bdugan@teri.bio.uci.edu (Bill Dugan)
  2080. Subject: GWorld
  2081. Nntp-Posting-Host: teri.bio.uci.edu
  2082. Message-ID: <277D5262.6723@orion.oac.uci.edu>
  2083. Newsgroups: fa.think-c
  2084. Keywords: GWorld 32-bitquickdraw 
  2085. Reply-To: bdugan@teri.bio.uci.edu (Bill Dugan)
  2086. Organization: University of California, Irvine
  2087. Lines: 6
  2088. Distribution: na
  2089. Date: 30 Dec 90 02:35:15 GMT
  2090.  
  2091. Question:  I am trying to rewrite some graphics routines using the new
  2092. GWorld and I get link errors with my "include the world" project.
  2093. Is there some .h file I'm missing, or an update to THINK C?
  2094.  
  2095. bill
  2096.  
  2097. 
  2098.