home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / csmpdigest / csmp-digest-v3-053 < prev    next >
Text File  |  2010-09-21  |  82KB  |  2,282 lines

  1. Received-Date: Mon, 5 Sep 1994 15:28:31 +0200
  2. From: pottier@clipper.ens.fr (Francois Pottier)
  3. Subject: csmp-digest-v3-053
  4. To: csmp-digest@ens.fr
  5. Date: Mon, 5 Sep 1994 15:28:25 +0200 (MET DST)
  6. X-Mailer: ELM [version 2.4 PL23]
  7. Mime-Version: 1.0
  8. Content-Type: text/plain; charset=ISO-8859-1
  9. Content-Transfer-Encoding: 8bit
  10. Errors-To: listman@ens.fr
  11. Reply-To: pottier@clipper.ens.fr
  12. X-Sequence: 58
  13.  
  14. --------------------
  15. Archive.sit    2K
  16. Archive.sit    2K
  17. --------------------
  18.  
  19. C.S.M.P. Digest             Mon, 05 Sep 94       Volume 3 : Issue 53
  20.  
  21. Today's Topics:
  22.  
  23.         A real funny story
  24.         AppleScript: event times out
  25.         C++ Virtual Destructor Q
  26.         Enum size -- what's the LCD?
  27.         Followup on 'Safe Save' problem - still ticking!
  28.         MW DebugNew Tip
  29.         Scrollbars in Dialogs?
  30.         Should new programs still be System 6 compatible?
  31.         The System 7.5 Think Debugger Bug - and fix!
  32.         Think Debugger & INIT source code
  33.         [Q] How to do non-bypassable INIT?
  34.         malloc problem in CW-4
  35.  
  36.  
  37.  
  38. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  39. (pottier@clipper.ens.fr).
  40.  
  41. The digest is a collection of article threads from the internet newsgroup
  42. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  43. regularly and want an archive of the discussions.  If you don't know what a
  44. newsgroup is, you probably don't have access to it.  Ask your systems
  45. administrator(s) for details.  If you don't have access to news, you may
  46. still be able to post messages to the group by using a mail server like
  47. anon.penet.fi (mail help@anon.penet.fi for more information).
  48.  
  49. Each issue of the digest contains one or more sets of articles (called
  50. threads), with each set corresponding to a 'discussion' of a particular
  51. subject.  The articles are not edited; all articles included in this digest
  52. are in their original posted form (as received by our news server at
  53. nef.ens.fr).  Article threads are not added to the digest until the last
  54. article added to the thread is at least two weeks old (this is to ensure that
  55. the thread is dead before adding it to the digest).  Article threads that
  56. consist of only one message are generally not included in the digest.
  57.  
  58. The digest is officially distributed by two means, by email and ftp.
  59.  
  60. If you want to receive the digest by mail, send email to listserv@ens.fr
  61. with no subject and one of the following commands as body:
  62.     help                        Sends you a summary of commands
  63.     subscribe csmp-digest Your Name    Adds you to the mailing list
  64.     signoff csmp-digest            Removes you from the list
  65. Once you have subscribed, you will automatically receive each new
  66. issue as it is created.
  67.  
  68. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  69. Questions related to the ftp site should be directed to
  70. scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
  71. digest are available there.
  72.  
  73. Also, the digests are available to WAIS users.  To search back issues
  74. with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
  75. http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
  76.  
  77.  
  78. -------------------------------------------------------
  79.  
  80. >From nick+@pitt.edu ( nick.c )
  81. Subject: A real funny story
  82. Date: Fri, 19 Aug 94 21:40:04 GMT
  83. Organization: The Pitt, Chemistry
  84.  
  85.  
  86. Folks:
  87.  
  88.     A friend of mine just sent me this, personally I think it's
  89.       hilarious (so long as you don't work for MS :-).  Enjoy,
  90.  
  91.  
  92. - --
  93.  
  94.  
  95. "Star Trek Lost Episodes" transcript.
  96.  
  97. <Picard> "Mr. LaForge, have you had any success with your
  98. attempts at finding a weakness with the Borg?  And Mr. Data,
  99. have you been able to access their command pathways?"
  100.  
  101. <Geordi> "Yes, Captain.  In fact, we found the answer by
  102. searching through our archives on late twentieth-century
  103. computing technology."
  104.  
  105. <Geordi presses a key, and a logo appears on the computer
  106. screen.>
  107.  
  108. <Riker looks puzzled.> "What the hell is 'Microsoft'?"
  109.  
  110. <Data turns to answer.> "Allow me to explain.  We will send
  111. this program, for some reason called 'Windows,' through
  112. the Borg command pathways.  Once inside their root com-
  113. mand unit, it will begin consuming system resources at an
  114. unstoppable rate."
  115.  
  116. <Picard> "But the Borg have the ability to adapt.  Won't
  117. they alter their processing systems to increase their storage
  118. capacity?"
  119.  
  120. <Data> "Yes, Captain.  But when 'Windows' detects this, it
  121. will create a new version of itself called an 'upgrade.'  The
  122. use of resources increases exponentially with each iteration.
  123. The Borg will not be able to adapt quickly enough.
  124. Eventually all of their processing ability will be taken over
  125. and none will be available for their normal operational
  126. functions."
  127.  
  128. <Picard> "Excellent work.  This is even better than that
  129. 'unsolvable geometric shape' idea."
  130.  
  131. <. . . 15 minutes later . . .>
  132.  
  133. <Data> "Captain, we have successfully installed the
  134. 'Windows' in the command unit and, as expected, it
  135. immediately consumed 85% of all resources.  We, however,
  136. have not received any confirmation of the expected
  137. 'upgrade.'"
  138.  
  139. <Geordi> "Our scanners have picked up an increase in Borg
  140. storage and CPU capacity to compensate, but we still have no
  141. indication of an 'upgrade' to compensate for their increase."
  142.  
  143. <Picard> "Data, scan the history books again and determine
  144. if there is something we have missed."
  145.  
  146. <Data> "Sir, I believe there is a reason for the failure in the
  147. 'upgrade.'  Apparently the Borg have circumvented that part
  148. of the plan by not sending in their 'registration cards.'"
  149.  
  150. <Riker>  "Captain, we have no choice.  Requesting
  151. permission to begin emergency escape sequence 3F . . ."
  152.  
  153. <Geordi, excited>  "Wait, Captain, I just detected that their
  154. CPU capacity has suddenly dropped to 0%!"
  155.  
  156. <Picard> "Data, what do your scanners show?"
  157.  
  158. <Data> "Apparently the Borg have found the internal
  159. 'Windows' module named 'solitaire' and it has used up all
  160. the CPU capacity."
  161.  
  162. <Picard> "Let's wait and see how long this 'solitaire' can
  163. reduce their functionality."
  164.  
  165. <. . . Two hours pass . . .>
  166.  
  167. <Riker> "Geordi, what's the status of the Borg?"
  168.  
  169. <Geordi> "As expected the Borg are attempting to re-
  170. engineer to compensate for increased CPU and storage
  171. demands, but each time they successfully increase resources
  172. I have set up our closest deep space monitor beacon to
  173. transmit more 'Windows' modules from something called
  174. the 'Microsoft fun-pack.'"
  175.  
  176. <Picard> "How much time will that buy us?"
  177.  
  178. <Data> "Current Borg solution rates allow me to predict an
  179. interest time span of 6 more hours."
  180.  
  181. <Geordi> "Captain, another vessel has entered our sector."
  182.  
  183. <Picard> "Identify."
  184.  
  185. <Data> "It appears to have markings similar to the
  186. 'Microsoft' logo."
  187.  
  188. <Over the speakers> "THIS IS ADMIRAL BILL GATES
  189. OF THE MICROSOFT FLAGSHIP MONOPOLY.  WE
  190. HAVE POSITIVE CONFIRMATION OF UN-
  191. REGISTERED SOFTWARE IN THIS SECTOR.
  192. SURRENDER ALL ASSETS AND WE CAN AVOID ANY
  193. TROUBLE.  YOU HAVE TEN SECONDS."
  194.  
  195. <Data> "The alien ship has just opened its forward hatches
  196. and released thousands of humanoid shaped objects."
  197.  
  198. <Picard> "Magnify forward viewer on the alien craft."
  199.  
  200. <Riker> "Good God Captain!  Those are humans floating
  201. straight toward the Borg ship with no life support suits!
  202. How can they survive the tortures of deep space?!"
  203.  
  204. <Data> "I do not believe that those are humans sir; if you will
  205. look closer, I believe you will see that they are carrying
  206. something recognized in the twenty-first century as doe-skin
  207. leather briefcases, and wearing Armani suits."
  208.  
  209. <Riker and Picard together horrified> "Lawyers!!"
  210.  
  211. <Geordi> "It can't be.  All the lawyers were rounded up and
  212. sent hurtling into the sun in 2017 during the great awaken-
  213. ing."
  214.  
  215. <Data> "True, but apparently some must have survived."
  216.  
  217. <Riker> "They have surrounded the Borg ship and are
  218. covering it with all types of papers."
  219.  
  220. <Data> "I believe that is known in ancient vernacular as 'red
  221. tape.'  It often proves fatal.
  222.  
  223. <Riker> "They're tearing the Borg to pieces!"
  224.  
  225. <Picard> "Turn off the monitors.  I can't stand to watch.  Not
  226. even the Borg deserve that."
  227.  
  228.  
  229.  
  230.   Disclaimer: Just my opinion.
  231.                                     _/   _/  _/  _/_/_/   _/   _/  
  232.      Interet: nick@pitt.edu        _/_/ _/  _/  _/   _/  _/_/_/    
  233.       eWorld: nick                _/ _/_/  _/  _/       _/ _/      
  234.          CIS: 71232,766          _/   _/  _/   _/_/_/  _/   _/     
  235.     
  236.            "Science is nothing but perception" - Plato
  237.  
  238. ---------------------------
  239.  
  240. >From kocher@lts.sel.alcatel.de (Hartmut Kocher US/ESA 60/1L/2? #5629)
  241. Subject: AppleScript: event times out
  242. Date: Mon, 22 Aug 94 08:33:35 GMT
  243. Organization: SEL-Alcatel LTS Dept. US/ES
  244.  
  245. I've written a small AppleScript, that copies a few folders around
  246. using the scriptable Finder. My problem is that if one of these folders
  247. holds many files, the reply from the Finder takes too long and the
  248. reply times out (aborting the script :-( ).
  249.  
  250. How can I set the timeout value, so my script is willing to wait
  251. longer fro a reply?
  252.  
  253. Thanks for your suggestions.
  254.  
  255. -- 
  256. +==============================|==============================+
  257. | Hartmut Kocher               |                              |
  258. | Technical Consultant         | All opinions expressed here  |
  259. | Rational GmbH                | are my own.                  |
  260. | Rosenstrasse 7               |                              |
  261. | 82049 Pullach im Isartal     | I know you guessed it,       |
  262. | Germany                      | but it keeps my lawyer happy.|
  263. | Email: hwk@rational.com      |                              |
  264. +==============================|==============================+
  265.  
  266. +++++++++++++++++++++++++++
  267.  
  268. >From dmcleod@hpb.hwc.ca (D.A. McLeod)
  269. Date: 22 Aug 1994 13:32:42 GMT
  270. Organization: Health Canada
  271.  
  272. Hartmut Kocher US/ESA 60/1L/2? #5629 (kocher@lts.sel.alcatel.de) wrote:
  273. : How can I set the timeout value, so my script is willing to wait
  274. : longer fro a reply?
  275.  
  276. with timeout of #### seconds
  277.      .
  278.      .
  279.      .
  280. end timeout
  281.  
  282. +++++++++++++++++++++++++++
  283.  
  284. >From engelhar@bga.com (Michael Engelhart)
  285. Date: 22 Aug 1994 15:38:09 GMT
  286. Organization: Apple Travel
  287.  
  288. In article <1994Aug22.083335.25853@lts.sel.alcatel.de>,
  289. kocher@lts.sel.alcatel.de (Hartmut Kocher US/ESA 60/1L/2? #5629) wrote:
  290.  
  291. > I've written a small AppleScript, that copies a few folders around
  292. > using the scriptable Finder. My problem is that if one of these folders
  293. > holds many files, the reply from the Finder takes too long and the
  294. > reply times out (aborting the script :-( ).
  295. > How can I set the timeout value, so my script is willing to wait
  296. > longer fro a reply?
  297. > Thanks for your suggestions.
  298. > -- 
  299. > +==============================|==============================+
  300. > | Hartmut Kocher               |                              |
  301. > | Technical Consultant         | All opinions expressed here  |
  302. > | Rational GmbH                | are my own.                  |
  303. > | Rosenstrasse 7               |                              |
  304. > | 82049 Pullach im Isartal     | I know you guessed it,       |
  305. > | Germany                      | but it keeps my lawyer happy.|
  306. > | Email: hwk@rational.com      |                              |
  307. > +==============================|==============================+
  308.  
  309.  
  310. Hartmut,
  311.  
  312. simply enclose your routine with the following:
  313.  
  314. with timeout of 400 seconds --use any value you want, the default is 120
  315. seconds
  316.      your routine
  317. end timeout
  318.  
  319. Mike
  320.  
  321. ---------------------------
  322.  
  323. >From jpek@umich.edu (Jeff Pek)
  324. Subject: C++ Virtual Destructor Q
  325. Date: 19 Aug 1994 22:05:08 GMT
  326. Organization: U of Mich (MBA)
  327.  
  328. I wonder if someone could clear the air around our office about why
  329. virtual destructors should or should not be used. Specifically, I'm
  330. interested in Metrowerks' compiler's implementation.
  331.  
  332. 1) Why would I want to/need to declare a destructor virtual?
  333. 2) What happens if I don't?
  334.  
  335. Thanks very much!
  336. Jeff
  337.  
  338. - -------------------------------------------
  339. Jeff Pek                       jpek@umich.edu
  340. Emerald Intelligence / University of Michigan
  341.  
  342. +++++++++++++++++++++++++++
  343.  
  344. >From mwron@aol.com (MW Ron)
  345. Date: 19 Aug 1994 19:44:06 -0400
  346. Organization: America Online, Inc. (1-800-827-6364)
  347.  
  348. In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  349. (Jeff Pek) writes:
  350.  
  351. >>1) Why would I want to/need to declare a destructor virtual?
  352. >>2) What happens if I don't?
  353.  
  354. 1) You need to declare a virtual destructor when you have a base class,
  355. its destructor is different than the derived classes destructor, and
  356. objects are deleted via pointer or refernce to base class. ( a good habit,
  357. declare it for all base classes )
  358.  
  359. 2) if you don't, you will not guarantee all objects will be deleted when
  360. an object is deleted, if it is accessed as a base class poiter.
  361.  
  362. Scott Meyers in Effective C++ explains this quite well.
  363.  
  364. Ron Liechty
  365. RonL@metrowerks.com
  366. Metrowerks Inc.
  367.  
  368. +++++++++++++++++++++++++++
  369.  
  370. >From neeri@iis.ee.ethz.ch (Matthias Neeracher)
  371. Date: 19 Aug 1994 23:19:32 GMT
  372. Organization: Swiss Federal Institute of Technology (ETHZ)
  373.  
  374. jpek@umich.edu (Jeff Pek) writes:
  375. >I wonder if someone could clear the air around our office about why
  376. >virtual destructors should or should not be used. Specifically, I'm
  377. >interested in Metrowerks' compiler's implementation.
  378.  
  379. >1) Why would I want to/need to declare a destructor virtual?
  380.  
  381. As a rule of thumb, as soon as you have a virtual function for a class,
  382. you should also have a virtual destruction.
  383.  
  384. >2) What happens if I don't?
  385.  
  386. As an example, take:
  387.  
  388. class A ...
  389. class B : public A ...
  390.  
  391. A * pa = new B;
  392.  
  393. delete pa;
  394.  
  395. Unless A has a virtual destructor, no destructor for B will be executed on the
  396. object pointed to by pa, which is would often be desirable.
  397.  
  398. Matthias
  399.  
  400. - ---
  401. Matthias Neeracher <neeri@iis.ee.ethz.ch> http://err.ethz.ch/members/neeri.html
  402.    "There once was an Age of Reason, but we've progressed beyond it."
  403.                                    -- Ayn Rand, _Atlas Shrugged_
  404.  
  405. +++++++++++++++++++++++++++
  406.  
  407. >From gurgle@dnai.com (Pete Gontier)
  408. Date: Fri, 19 Aug 1994 20:17:34 -0800
  409. Organization: Integer Poet Software
  410.  
  411. In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  412. (Jeff Pek) wrote:
  413.  
  414. > 1) Why would I want to/need to declare a (C++) destructor virtual?
  415. > 2) What happens if I don't?
  416.  
  417. The Annotated C++ Reference Manual (commonly known as "the ARM"), Ellis
  418. and Stroustup, ISBN, 0-201-51459-1, chapter 12.4 (page 276 in my
  419. printing).
  420.  
  421. And a note to aid in your reading: non-virtual destructors are the
  422. exception (no pun intended), not the rule.
  423.  
  424. -- 
  425.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  426.  
  427.  "Even during a particularly harsh (Colorado) winter... many of the
  428.  300 families in the VCTV (movies-on-demand) trial continued to go
  429.  to video stores." -- eis@murrow.tufts.edu, in Wired 2.09 p62
  430.  
  431. +++++++++++++++++++++++++++
  432.  
  433. >From mwron@aol.com (MW Ron)
  434. Date: 20 Aug 1994 12:20:01 -0400
  435. Organization: America Online, Inc. (1-800-827-6364)
  436.  
  437. In article <gurgle-1908942017340001@gurgle.dnai.com>, gurgle@dnai.com
  438. (Pete Gontier) writes:
  439.  
  440. Here is a short example of a virtual destructor in use. remove the virtual
  441. keyword and you will see that only the base class's destructor is called.
  442. Ron Liechty
  443. RonL@metrowerks.com
  444. Metrowerks Inc.
  445.  
  446. #include <iostream>
  447.  
  448. class base {
  449.   public:
  450.      int *a;
  451.   protected:
  452.      base() { a = new int(1);}
  453.   public:
  454.      virtual ~base()  { cout << "deleteting base "; delete a;};
  455. };
  456.  
  457. class base2 : public base {
  458.   public:
  459.       int *b;
  460.   protected:
  461.       base2() { b = new int(1);}
  462.   public:
  463.       virtual ~base2()  { cout << "deleteting base2 "; delete b;};
  464.  };
  465.  
  466.  class d : public base2 {
  467.      public :
  468.        int *c;
  469.      public:
  470.        d() { c = new int(3);}
  471.        ~d() { cout << "deleteting d "; delete c;};
  472.  };    
  473.       
  474.       
  475.  main()
  476.  {
  477.     base *bPtr = new d;
  478.     delete bPtr;
  479.     
  480.     cout << "enter a char " ;
  481.     cin.get();   
  482.     return 0;
  483.  }     
  484.       
  485.  
  486. +++++++++++++++++++++++++++
  487.  
  488. >From ekstrom@aggroup.com (Harold Ekstrom)
  489. Date: Sat, 20 Aug 1994 20:45:15 -0800
  490. Organization: Ag Group
  491.  
  492. In article <333g46$hu5@search01.news.aol.com>, mwron@aol.com (MW Ron) wrote:
  493.  
  494. > In article <333aak$fj8@lastactionhero.rs.itd.umich.edu>, jpek@umich.edu
  495. > (Jeff Pek) writes:
  496. > >>1) Why would I want to/need to declare a destructor virtual?
  497. > >>2) What happens if I don't?
  498. > 1) You need to declare a virtual destructor when you have a base class,
  499. > its destructor is different than the derived classes destructor, and
  500. > objects are deleted via pointer or refernce to base class. ( a good habit,
  501. > declare it for all base classes )
  502. > 2) if you don't, you will not guarantee all objects will be deleted when
  503. > an object is deleted, if it is accessed as a base class poiter.
  504. >  
  505. > Scott Meyers in Effective C++ explains this quite well.
  506. > Ron Liechty
  507. > RonL@metrowerks.com
  508. > Metrowerks Inc.
  509.  
  510. Another good source of answers for this and other common C++
  511. questions is the C++FAQ (rtfm.mit.edu). It was one of the
  512. first things I read when learning C++.
  513.  
  514. harold
  515. - ------------------------------------------------------------
  516. Harold Ekstrom
  517. ekstrom@aggroup.com
  518. ag group, inc.
  519. 2540 camino diablo, suite 200
  520. walnut creek, ca 94596
  521. 510-937-7900 voice
  522. 510-937-2479 fax
  523. 510-937-6704 ara
  524. ftp.aggroup.com anonymous ftp
  525.  
  526.  
  527. ---------------------------
  528.  
  529. >From afrancke@netcom.com (Andrew Francke)
  530. Subject: Enum size -- what's the LCD?
  531. Date: Wed, 17 Aug 1994 02:54:56 GMT
  532. Organization: Netcom Online Communications Services (408-241-9760 login: guest)
  533.  
  534. If I'm not mistaken, the lowest common denominator for enum size is
  535. that presented by MPW 68k C -- variable 1, 2, or 4 bytes. Other Mac C
  536. and C++ compilers support the ANSI definition, sizeof(enum) ==
  537. sizeof(int), but not MPW C. All Mac compilers support variable enum
  538. size just like MPW C.
  539.  
  540. Is this strictly correct?
  541.  
  542. Now, examine the following code:
  543.  
  544. typedef enum
  545. {
  546.     a=255
  547. } one_byte_enum_t;
  548.  
  549. typedef enum
  550. {
  551.     b=65000
  552. } two_byte_enum_t;
  553.  
  554. typedef enum
  555. {
  556.     c=1000000
  557. } three_byte_enum_t;
  558.  
  559. #if defined (powerc) || defined (__power)
  560. #pragma align=mac68k
  561. #endif
  562. struct test1
  563. {
  564.     one_byte_enum_t        mem1;
  565.     two_byte_enum_t        mem2;
  566.     three_byte_enum_t    mem3;
  567. };
  568. #if defined (powerc) || defined (__powerc)
  569. #pragma align reset // or whatever it is
  570. #endif
  571.  
  572. The $10,000,000 question -- do these structures lay out on every Mac
  573. C compiler in this way:
  574.  
  575. Offset        Byte
  576. from        Contents
  577. &test 1:
  578. - ---------    --------
  579. 0x00000000:    mem1
  580. 0x00000001:    <pad>
  581. 0x00000002:    mem2
  582. 0x00000003:    mem2
  583. 0x00000004:    mem3
  584. 0x00000005:    mem3
  585. 0x00000006:    mem3
  586. 0x00000007:    mem3
  587.  
  588. How about stack alignment? If I declare a function:
  589.  
  590. void
  591. foo ( one_byte_enum a, two_byte_enum b, three_byte_enum c );
  592.  
  593. ...what will the stack look like? Will it be the same for all Mac C/C++
  594. compilers?
  595.  
  596. Example stack:
  597.          1   2   3   4   5   6   7   8
  598. SP-0x8:  c   c   c   c   b   b <pad> a
  599. SP:
  600.  
  601. (Sorry if this last example isn't that clear -- the stack is being
  602. displayed in hi-lo, left to right order, assuming that all parameters
  603. have been pushed and we're about to JSR to foo)
  604.  
  605. Thanks in advance for your insight.
  606.  
  607. Andy Francke
  608.  
  609. +++++++++++++++++++++++++++
  610.  
  611. >From mclow@san_marcos.csusm.edu (Marshall Clow)
  612. Date: Wed, 17 Aug 1994 00:53:32 -0800
  613. Organization: Aladdin Systems
  614.  
  615. In article <afranckeCuns3L.MuC@netcom.com>, afrancke@netcom.com (Andrew
  616. Francke) wrote:
  617.  
  618. > If I'm not mistaken, the lowest common denominator for enum size is
  619. > that presented by MPW 68k C -- variable 1, 2, or 4 bytes. Other Mac C
  620. > and C++ compilers support the ANSI definition, sizeof(enum) ==
  621. > sizeof(int), but not MPW C. All Mac compilers support variable enum
  622. > size just like MPW C.
  623. > Is this strictly correct?
  624. >
  625.    No. It's wrong in several areas.
  626.  
  627. [ code deleted ]
  628. > The $10,000,000 question -- do these structures lay out on every Mac
  629. > C compiler in this way:
  630. [ more code deleted ]
  631.  
  632. No. Different compilers allocated sizes for enums differently. I believe
  633. that the following is true:
  634.  
  635. 1) MPW C (68K) -- enums are 4 bytes
  636.  
  637. 2) Think C (68K) -- enums are 1, 2, or 4 bytes (based on values) except if
  638. the "Enums are always ints" preference is checked, in which case they are
  639. 2 or 4 bytes depending on how big your ints are.
  640.  
  641. 3) Metrowerks C (68K) -- same as Think C (68K).
  642.  
  643. 4) Metrowerks C (PPC) -- enums are 1, 2, or 4 bytes (based on values)
  644. except if the "Enums are always ints" preference is checked, in which case
  645. they are 4 bytes.
  646.  
  647. 5) PPCC (Apple's MPW based PPC compiler) -- I don't know.
  648. 6) Apple's new PPC C compiler (Beta on ETO #15) -- I don't know
  649. 7) Motorola C (PPC) -- I don't know
  650. 8) Absoft C (PPC) -- I don't know
  651.  
  652. [ I'm sure I forgot someone. ]
  653.  
  654. The ANSI spec (from memory, so don't flame me for wordage) says that enums
  655. must be "compatible with integer type". The rest is up to the compiler
  656. writer.
  657.  
  658. This is one of the non-portable aspects of C.
  659.  
  660. -- Marshall
  661.  
  662. -- 
  663. Marshall Clow
  664. Aladdin Systems
  665. mclow@san_marcos.csusm.edu
  666.  
  667. +++++++++++++++++++++++++++
  668.  
  669. >From becker@Xenon.Stanford.EDU (Denizen of the Deep)
  670. Date: 17 Aug 1994 16:22:16 GMT
  671. Organization: Computer Science Department, Stanford University.
  672.  
  673. In article <mclow-1708940053320001@lpm8.csusm.edu>,
  674. Marshall Clow <mclow@san_marcos.csusm.edu> wrote:
  675. >
  676. >The ANSI spec (from memory, so don't flame me for wordage) says that enums
  677. >must be "compatible with integer type". The rest is up to the compiler
  678. >writer.
  679. >
  680. >This is one of the non-portable aspects of C.
  681. >
  682. >-- Marshall
  683. >
  684.  
  685. >From K&R II, A8.4:
  686.     The identifiers in an enumerator list are declared as constants
  687.     of type int...
  688.  
  689. So there you have it.  In strict ANSI C, enums should take up the same
  690. space as an int on the machine (i.e. 2 or 4 bytes, depending on your
  691. settings and/or compiler).  It's only non-portable in the sense that
  692. different compilers may have different sizes for int; however once the
  693. choice of int size is made, there is no latitude for choosing how to
  694. deal with enums.
  695.  
  696. -Jon
  697.  
  698. +++++++++++++++++++++++++++
  699.  
  700. >From Lars.Farm@nts.mh.se (Lars Farm)
  701. Date: Fri, 19 Aug 1994 10:08:12 +0100
  702. Organization: Mid Sweden University
  703.  
  704. In article <32tdfo$gn2@Times.Stanford.EDU>, becker@Xenon.Stanford.EDU
  705. (Denizen of the Deep) wrote:
  706.  
  707. > From K&R II, A8.4:
  708. >         The identifiers in an enumerator list are declared as constants
  709. >         of type int...
  710. > So there you have it.  In strict ANSI C, enums should take up the same
  711. > space as an int on the machine (i.e. 2 or 4 bytes, depending on your
  712.  
  713. In C perhaps, but not so in C++. enum is not int. An enum can be
  714. initialized by a constant expression of integral type. An enum will
  715. silently be converted to an int where an int is expected (|, &, + ...) but
  716. an int will not silently be converted to an enum, because nothing says it
  717. will fit in the space allocated for the enum. Cast needed.
  718.  
  719. An enum is required to have room for "...the nearest larger binary power
  720. minus 1 and down to 0...". So enum { false,true } is only required to
  721. allocate one bit for the value. [ARM - ANSI/ISO resolutions r.7.2].
  722. Realistically this means that an enum will be allocated 1, 2 or 4 bytes
  723. depending on enumerated constants and whatever the compilers author sees
  724. reasonable. In any event the space allocated to an enum may be smaller
  725. than what is needed for an int provided it has room for any of the enum
  726. constants.
  727.  
  728. Lars
  729.  
  730. -- 
  731. Lars.Farm@nts.mh.se
  732.  
  733. +++++++++++++++++++++++++++
  734.  
  735. >From phils@bedford.symantec.com (Phil Shapiro)
  736. Date: Fri, 19 Aug 1994 12:36:51 -0400
  737. Organization: Symantec Corp.
  738.  
  739. | No. Different compilers allocated sizes for enums differently. I believe
  740. | that the following is true:
  741.  
  742. Only slightly off, with respect to "enums are always ints", see below*.
  743.  
  744. | 1) MPW C (68K) -- enums are 4 bytes
  745. | 2) Think C (68K) -- enums are 1, 2, or 4 bytes (based on values) except if
  746. | the "Enums are always ints" preference is checked, in which case they are
  747. | 2 or 4 bytes depending on how big your ints are.
  748. | 3) Metrowerks C (68K) -- same as Think C (68K).
  749. | 4) Metrowerks C (PPC) -- enums are 1, 2, or 4 bytes (based on values)
  750. | except if the "Enums are always ints" preference is checked, in which case
  751. | they are 4 bytes.
  752. | 5) PPCC (Apple's MPW based PPC compiler) -- I don't know.
  753. | 6) Apple's new PPC C compiler (Beta on ETO #15) -- I don't know
  754. | 7) Motorola C (PPC) -- I don't know
  755. | 8) Absoft C (PPC) -- I don't know
  756.  
  757. 9) Symantec C/C++ -- enums are 1, 2, or 4 bytes based on values. If enums
  758. are always ints is checked, then they are 4 bytes. The rules are the same
  759. for both the 68k and PowerPC compilers.
  760.  
  761. Apple's new PPC C++ compiler (aka MrC) should be the same as Symantec C++,
  762. since they share compiler front ends.
  763.  
  764. (*) In ANSI C, enums are the same size as int, provided that the value
  765. that they contain can be represented in an int. So when you use the "enums
  766. are always ints" option, you're really saying that they're at least as big
  767. as an int. They can be bigger, or unsigned (or both), depending on the
  768. value that they contain.
  769.  
  770. The main thing is that you shouldn't depend on the size of an enum. If you
  771. plan to do I/O with an enum, cast it to a known (portable) type first.
  772.  
  773.    -phil
  774.  
  775. +++++++++++++++++++++++++++
  776.  
  777. >From afrancke@netcom.com (Andrew Francke)
  778. Date: Fri, 19 Aug 1994 21:16:29 GMT
  779. Organization: Netcom Online Communications Services (408-241-9760 login: guest)
  780.  
  781. > The main thing is that you shouldn't depend on the size of an enum. If
  782. > you plan to do I/O with an enum, cast it to a known (portable) type first.
  783. >  -phil
  784.  
  785. I'm afraid this is a moot point in my case. I've already got a sizable
  786. amount of ASN.1-compiler-generated C source with enums a'plenty in
  787. struture declarations.
  788.  
  789. I'll state my question again:
  790. GIVEN THE RIGHT SET OF COMPILER OPTIONS, is not the LCD of enum sizes
  791. the 1-2-4 packing scheme? I yet labor under the impression that MPW C
  792. doesn't even support "enums are ints" as an option.
  793.  
  794. ---------------------------
  795.  
  796. >From redial <redial@netcom.com>
  797. Subject: Followup on 'Safe Save' problem - still ticking!
  798. Date: Sat, 20 Aug 1994 21:46:44 GMT
  799. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  800.  
  801. Netters -
  802.  
  803. Thanks to all who attempted to help with my 'Safe save' problem.  It did
  804. indeed look as tho  closing the temporary file after the FSpExchangeFiles
  805. swap would solve the problem of the 'File Busy' error message when I
  806. attempted to delete the temporary file.  Unfortunately :-( it didn't.
  807.  
  808. Here's a summary of my Safe Save procedure, which follows the example in
  809. Think C Reference 2.0.  I call StandardPutFile to get the user's input re
  810. the new file.  If the reply is good and we're not replacing an existing
  811. file, I call FSpCreate.  (According to IM:Files this creates a file with
  812. both forks, only they're both empty.)  I then call FSpCreateResFile to
  813. open
  814. the resource fork, and proceed to copy a string resource for the
  815. 'Application missing' error message ('STR ' ID -16396) from my
  816. application's resources into the new file.  I then close the resouce fork
  817. with an FSClose.  Next, I open the data fork using FSpOpenDF.  If no
  818. errors
  819. occur, I proceed to create a temporary file, open its data fork, write the
  820. data into it, close it, exchange its data with the real file, and then
  821. delete the temporary file.  It's at this point I get my first sign of
  822. trouble: OSErr -47, aka 'File busy.'
  823.  
  824. My snooping has revealed the following points of information. 1) When I
  825. attempt to open the newly created document file with ResEdit, I'm told it
  826. doesn't have a resource fork.  2) It does contain the appropriate data in
  827. its data fork.  And 3) if I reboot the computer, the temporary file shows
  828. up in the trashcan in a folder labled 'Rescued items.'
  829.  
  830. >From this, is it obvious to anyone as to what I'm doing wrong?  Any
  831. suggestions on what debugging steps I should take would be greatly
  832. appreciated.
  833.  
  834. TIA. 
  835.  
  836. Ron Goebel                     |  Internet: redial@netcom.com
  837.  
  838. +++++++++++++++++++++++++++
  839.  
  840. >From tgaul@halcyon.com (Troy Gaul)
  841. Date: Sat, 20 Aug 1994 23:05:30 -0700
  842. Organization: Infinity Systems
  843.  
  844. In article <netnewsCuusHx.25A@netcom.com>, redial <redial@netcom.com> wrote:
  845.  
  846. > Here's a summary of my Safe Save procedure, which follows the example in
  847. > Think C Reference 2.0.  I call StandardPutFile to get the user's input re
  848. > the new file.  If the reply is good and we're not replacing an existing
  849. > file, I call FSpCreate.  (According to IM:Files this creates a file with
  850. > both forks, only they're both empty.)  I then call FSpCreateResFile to
  851. > open
  852. > the resource fork, and proceed to copy a string resource for the
  853. > 'Application missing' error message ('STR ' ID -16396) from my
  854. > application's resources into the new file.  I then close the resouce fork
  855. > with an FSClose.  Next, I open the data fork using FSpOpenDF.  If no
  856. > errors
  857. > occur, I proceed to create a temporary file, open its data fork, write the
  858. > data into it, close it, exchange its data with the real file, and then
  859. > delete the temporary file.  It's at this point I get my first sign of
  860. > trouble: OSErr -47, aka 'File busy.'
  861.  
  862. First, it sounds like you're putting the resources into the 'real' file,
  863. and then putting the data into the 'temp' file's data fork, and then doing
  864. a swap on them.  This isn't what you want to do.  The call
  865. FSpExchangeFiles doesn't swap the data fork from one file to another, it
  866. swaps the directory information for the two files.  This means that both
  867. the data and resource forks are swapped.
  868.  
  869. Note, though, that this call does not swap the Finder information (like
  870. Modification Dates) for the files (or the locations in the file system,
  871. i.e. the file named 'Temp File' is still in the Temporary Items Folder).
  872.  
  873. Next, once you have exchanged the files, I _think_ that the refnums you
  874. have for the files are also considered 'swapped' (it's been a while since
  875. I've done this, and I don't have the source code I produced anymore, but a
  876. quick glance into the Think Reference seemed to indicate that).  
  877.  
  878. This means if you have the variables 'realFileRefnum' and
  879. 'tempFileRefnum', which point where their names imply before the swap,
  880. after the swap, they point to the opposite files in the files system. So,
  881. by closing tempFileRefnum, you're really closing the 'real' file, and when
  882. you try to delete the file with tempFileFSSpec, the 'temp' file hasn't
  883. been closed, and you'd get that error.  (Note that although the refnums
  884. are backward, the FSSpecs still point to the files that their names would
  885. imply, because these files are still in the same locations in the file
  886. system, just their contents have been swapped.)
  887.  
  888.  
  889. > My snooping has revealed the following points of information. 
  890. > 1) When I
  891. > attempt to open the newly created document file with ResEdit, I'm told it
  892. > doesn't have a resource fork.  
  893.  
  894. That's because you never added a resource fork to the temp file (where you
  895. should have), you added it to the intended destination file (where it was
  896. then swapped into the temp file, the one you find in the Rescued Items
  897. folder).
  898.  
  899.  
  900. > 2) It does contain the appropriate data in
  901. > its data fork.  And 
  902.  
  903. That's because the swap did in fact occur.
  904.  
  905.  
  906. > 3) if I reboot the computer, the temporary file shows
  907. > up in the trashcan in a folder labled 'Rescued items.'
  908.  
  909. Anything in the temporary folder upon restart will be put into a folder by
  910. that name in the Trash automatically.  This is indicative of the fact that
  911. the temp file was never deleted (as your error message indicated).
  912.  
  913. Hope this helps.
  914. _troy
  915. //////// //////___Troy Gaul____________________tgaul@halcyon.com___//
  916.   //    //      Infinity Systems                                  //
  917.  //    //  //  Redmond, Washington                               //
  918. //    //////____________________________________________________//
  919.  
  920. +++++++++++++++++++++++++++
  921.  
  922. >From h+@nada.kth.se (Jon W{tte)
  923. Date: Sun, 21 Aug 1994 13:28:06 +0200
  924. Organization: Royal Institute of Something or other
  925.  
  926. In article <netnewsCuusHx.25A@netcom.com>,
  927. redial <redial@netcom.com> wrote:
  928.  
  929. >Thanks to all who attempted to help with my 'Safe save' problem.  It did
  930. >indeed look as tho  closing the temporary file after the FSpExchangeFiles
  931. >swap would solve the problem of the 'File Busy' error message when I
  932. >attempted to delete the temporary file.  Unfortunately :-( it didn't.
  933.  
  934. That's because when you call FSpExchangeFiles, the open file 
  935. reference still points into the data you're writing; i e the 
  936. fRefNum now points into the "real" file and not the "temp" file 
  937. which now contains the old data. You have to close the _old_ 
  938. file!
  939.  
  940. /*
  941.  * Add error checking to taste
  942.  * This assumes you're passing the address of your currently-
  943.  * open file's fRefNum, and the FSSpec for it, and that there
  944.  * is indeed a currently-open file.
  945.  */
  946. void
  947. SafeSave (
  948.     short * oldRefNum ,
  949.     const FSSpec * fileLocation )
  950. {
  951.     FSSpec tempSpec ;
  952.     short tempRef = 0 ;
  953.     FInfo fi ;
  954.  
  955.     FSpGetFInfo ( fileLocation , & fi ) ;
  956.  
  957.     MakeTempSpec ( & tempSpec ) ;
  958.     FSpCreate ( & tempSpec , 'trsh' , 'trsh' , smSystemScript ) ;
  959.     FSpOpenDF ( & tempSpec , fsRdWrPerm , & tempRef ) ;
  960.  
  961.     WriteDataToFile ( tempRef ) ;
  962.  
  963.     FSpExchangeFiles ( fileLocation , & tempSpec ) ;
  964.     FSpSetFInfo ( fileLocation , & fi ) ;
  965.     FSClose ( * oldRefNum ) ;
  966.     * oldRefNum = tempRef ;
  967.     FSpDelete ( & tempSpec ) ;
  968. }
  969.  
  970.  
  971. --
  972.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  973.     Not speaking for IBM.
  974.  
  975.  
  976. ---------------------------
  977.  
  978. >From Felix Ungman <felix@hu.se>
  979. Subject: MW DebugNew Tip
  980. Date: 22 Aug 94 14:06:13 +0000
  981. Organization: (none)
  982.  
  983. I want to thank MW for the DebugNew module! Even though my code
  984. was pretty well tested, I tracked down 5 memory leaks after only
  985. 15 minutes of testing!
  986.  
  987. The only unneccecary flaw is that it violates the first rule of tools:
  988. Never, ever, increase the work of the user.
  989.  
  990. Instead of making your code look like a mess of NEW macros
  991. (NEW is defined as "#define NEW new(__FILE__, __LINE__)")
  992. you can simply overide operator new with "#define new new(__FILE__, __LIN=
  993. E__)"
  994.  
  995. Or if you don't want to edit the DebugNew.h file:
  996. #include <DebugNew.h>
  997. #define new NEW
  998.  
  999. Works great in most cases.
  1000.  
  1001. +++++++++++++++++++++++++++
  1002.  
  1003. >From dpodwall@world.std.com (Dan Podwall)
  1004. Date: Mon, 22 Aug 1994 15:26:57 GMT
  1005. Organization: Metrowerks, Inc.
  1006.  
  1007. Felix Ungman (felix@hu.se) wrote:
  1008. : Instead of making your code look like a mess of NEW macros
  1009. : (NEW is defined as "#define NEW new(__FILE__, __LINE__)")
  1010. : you can simply overide operator new with "#define new new(__FILE__, __LIN=
  1011. : E__)"
  1012.  
  1013. There reason it isn't done that way is because it would break the array form 
  1014. of operator new, e.g.
  1015.   char* p = new char[10];
  1016.  
  1017. You can't currently override the array operator new.
  1018.  
  1019. I agree that if you don't need the array version then your modification is
  1020. handy.
  1021.  
  1022. Dan Podwall
  1023. Metrowerks, Inc.
  1024.  
  1025. ---------------------------
  1026.  
  1027. >From peter.lewis@info.curtin.edu.au (Peter N Lewis)
  1028. Subject: Scrollbars in Dialogs?
  1029. Date: Sun, 21 Aug 1994 18:51:33 +0800
  1030. Organization: NCRPDA, Curtin University
  1031.  
  1032. Hi All,
  1033.  
  1034. Simple question, how do you do scroll bars as dialog items?  I can set up
  1035. the CNTL resource and then make a control item in the dialog, and the
  1036. scontrol appears, and the dialog manager does all the tracking for it
  1037. (tracks the clicks on the arrows and highlights them, and drags the thumb
  1038. around).  But the clicks on the arrows don't seem to change the value of
  1039. the control.  Do I have to install some sort of proc to track them?  It
  1040. can't be that hard, but I checked another program and it used a user item
  1041. and created it's own control, so maybe it is?
  1042.    Peter.
  1043. -- 
  1044. Peter N Lewis <peter.lewis@info.curtin.edu.au> - Macintosh TCP fingerpainter
  1045.  
  1046. +++++++++++++++++++++++++++
  1047.  
  1048. >From rmah@panix.com (Robert Mah)
  1049. Date: Sun, 21 Aug 1994 15:00:50 -0500
  1050. Organization: One Step Beyond
  1051.  
  1052. peter.lewis@info.curtin.edu.au (Peter N Lewis) wrote:
  1053.  
  1054. ) Simple question, how do you do scroll bars as dialog items?  I can set up
  1055. ) the CNTL resource and then make a control item in the dialog, and the
  1056. ) scontrol appears, and the dialog manager does all the tracking for it
  1057.  
  1058. I put a user item over (under?) the scroll bar item to catch clicks before
  1059. they get to the scroll bar itself.  This way, you can still use ResEdit (or
  1060. whatever) to edit your dialog.
  1061.  
  1062. And, yeah, you have to manually track the the arrows using a callback.
  1063.  
  1064. Cheers,
  1065. Rob
  1066. _____________________________________________________________________
  1067. Robert S. Mah           Software Development          +1.212.947.6507
  1068. One Step Beyond        and Network Consulting          rmah@panix.com
  1069.  
  1070. +++++++++++++++++++++++++++
  1071.  
  1072. >From tclement@hmc.edu (Todd Clements)
  1073. Date: 22 Aug 1994 02:22:22 GMT
  1074. Organization: Harvey Mudd College, Claremont CA USA
  1075.  
  1076. Check out DialogBits on ftp.apple.com (I think in the snippets
  1077. directory)... it's in C, but I'm sure you can figure it out. =)
  1078.  
  1079. Todd
  1080. --
  1081. tclement@hmc.edu   Todd Clements - Chem nerd at Harvey Mudd College
  1082. "In the beginning, there was nothing.  And God said, 'Let there be LIGHT!'
  1083. And there was still nothing; but now you could see it."
  1084.  
  1085.  
  1086. ---------------------------
  1087.  
  1088. >From Ola.Montan@malmo.trab.se (Ola Montan)
  1089. Subject: Should new programs still be System 6 compatible?
  1090. Date: Wed, 3 Aug 1994 11:32:14 GMT
  1091. Organization: Telia Research AB
  1092.  
  1093. I'm writing new programs for the Macintosh and I wonder:
  1094.  
  1095. - Is it OK today to assume that the user have System 7.0 or later, or do
  1096. I have to make it possible to run the program on System 6 or even System
  1097. 5?
  1098.  
  1099. - If I have to be able to run on System 6, what do I have to think about?
  1100. All "compatiblity guidelines" tells about what to think about to run in
  1101. System 7.
  1102.  
  1103. / Ola Mont·n
  1104.  
  1105. +++++++++++++++++++++++++++
  1106.  
  1107. >From decartwr@newstand.syr.edu (Dana Cartwright 3rd)
  1108. Date: 3 Aug 1994 12:23:13 GMT
  1109. Organization: Syracuse University, Syracuse NY, USA
  1110.  
  1111. Ola Montan (Ola.Montan@malmo.trab.se) wrote:
  1112. : I'm writing new programs for the Macintosh and I wonder:
  1113.  
  1114. : - Is it OK today to assume that the user have System 7.0 or later, or do
  1115. : I have to make it possible to run the program on System 6 or even System
  1116. : 5?
  1117.  
  1118. I'll add two more questions to your list: 68000 compatibility, and
  1119. older versions of QuickDraw.  I keep an "old" SE around and run my
  1120. software on it, but I'm darned if I know why.  Preserving compability
  1121. with these older systems is less and less attractive (to the developer,
  1122. at any rate!).  Development goes forward (in my case) on a 68040.
  1123.  
  1124. If you use floating windows (like Dean Yu's), you'll find they work
  1125. differently on older ROM's (at least, I suspect it's code in the ROM's
  1126. that's the difference, but that's just a guess on my part).
  1127.  
  1128.  
  1129. +++++++++++++++++++++++++++
  1130.  
  1131. >From nagle@netcom.com (John Nagle)
  1132. Date: Wed, 3 Aug 1994 16:38:21 GMT
  1133. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  1134.  
  1135. Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1136. >I'm writing new programs for the Macintosh and I wonder:
  1137. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1138. >I have to make it possible to run the program on System 6 or even System
  1139. >5?
  1140.  
  1141.       Unless your application is for the educational or game market,
  1142. forget System 6.  
  1143.  
  1144.                     John Nagle
  1145.  
  1146. +++++++++++++++++++++++++++
  1147.  
  1148. >From h+@nada.kth.se (Jon W{tte)
  1149. Date: Wed, 03 Aug 1994 19:35:33 +0200
  1150. Organization: Royal Institute of Something or other
  1151.  
  1152. In article <31o27h$8q8@newstand.syr.edu>,
  1153.  decartwr@newstand.syr.edu (Dana Cartwright 3rd) wrote:
  1154.  
  1155. >: - Is it OK today to assume that the user have System 7.0 or later, or do
  1156. >: I have to make it possible to run the program on System 6 or even System
  1157. >: 5?
  1158.  
  1159. >I'll add two more questions to your list: 68000 compatibility, and
  1160. >older versions of QuickDraw.  I keep an "old" SE around and run my
  1161.  
  1162. This is covered in the FAQ (the Total Authority Document :-)
  1163.  
  1164. Anyway, there seems to be two ways you can go:
  1165.  
  1166. 1) Does your app require color, or AppleEvents, or QuickTime, or 
  1167. more than 1 MB of memory (for itself)? Or does it require more than 
  1168. one process running at once? Go for System 7 only.
  1169.  
  1170. 2) Is your application in the "typical application" cathegory; word 
  1171. processing, telecommunications, ... People who bought their 
  1172. computers four years ago probably bought what they need already. Go 
  1173. with System 7.
  1174.  
  1175. 3) So you're writing a novelty application which will work well on 
  1176. small screens, in black/white, in a small memory footprint. Here, 
  1177. you might still sell into a bigger market if you work with System 6 
  1178. as well. However, for the majority of applications, it's just not 
  1179. worth it.
  1180.  
  1181. As an example, here is what I _demand_ to run in my newer apps:
  1182. - New File Manager (soon to be renamed the Old New File Manager :-)
  1183. - 32-bit QuickDraw
  1184. - 68020 or better
  1185. - AppleEvents
  1186. Of course I test for these individually, but on failure, I tell 
  1187. users to upgrade to System 7 (or their computer, if the CPU test 
  1188. fails)
  1189.  
  1190. However, some things should NOT be demanded. That Virtual Memory be 
  1191. off is an _evil_ thing, especially on PowerPCs where system 
  1192. performance is BETTER with VM on, as long as your swap file just 
  1193. covers your RAM and another meg or two.
  1194.  
  1195. Cheers,
  1196.  
  1197.                         / h+
  1198.  
  1199. --
  1200.   Jon W‰tte
  1201.   Hagagatan 1
  1202.   113 48 Stockholm
  1203.   Sweden
  1204.  
  1205.  
  1206. +++++++++++++++++++++++++++
  1207.  
  1208. >From blm@chinook.halcyon.com (Brian L. Matthews)
  1209. Date: 3 Aug 1994 17:28:09 GMT
  1210. Organization: Northwest Nexus Inc.
  1211.  
  1212. In article <1994Aug3.113214.15566@malmo.trab.se>,
  1213. Ola Montan <Ola.Montan@malmo.trab.se> wrote:
  1214. |- Is it OK today to assume that the user have System 7.0 or later, or do
  1215. |I have to make it possible to run the program on System 6 or even System
  1216. |5?
  1217.  
  1218. In my opinion, don't worry about anything earlier than System 6.  If
  1219. your target market is higher end users (who probably have newer machines
  1220. which don't even run System 6), don't worry about System 6.  If your
  1221. target is lower end users (who can't necessarily afford to upgrade to
  1222. the new machines or have the hardware to run System 7), you need to
  1223. worry about System 6.
  1224.  
  1225. However, whatever you assume about the target machine, make sure your
  1226. software tests your assumptions at run time and reacts gracefully if they're
  1227. wrong.  So if your software requires System 7, test for that, and if you're
  1228. not running on System 7 or later, present an alert stating you need System 7,
  1229. then exit (and of course the code that does this needs to run on System 6,
  1230. and is simple enough it can probably run on earlier systems as well).
  1231. Similarly for things like processor (68000 vs. 68020 vs. PowerPC), Color
  1232. Quickdraw, DSP, etc.
  1233.  
  1234. Brian
  1235.  
  1236. +++++++++++++++++++++++++++
  1237.  
  1238. >From woody@alumni.caltech.edu (William Edward Woody)
  1239. Date: 3 Aug 1994 20:32:35 GMT
  1240. Organization: California Institute of Technology, Alumni Association
  1241.  
  1242. In article <1994Aug3.113214.15566@malmo.trab.se>,
  1243. Ola Montan <Ola.Montan@malmo.trab.se> wrote:
  1244. >I'm writing new programs for the Macintosh and I wonder:
  1245. >
  1246. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1247. >I have to make it possible to run the program on System 6 or even System
  1248. >5?
  1249.  
  1250. According to some information I got from Apple in one of their
  1251. developer's mailings, most users are running under System 7.
  1252. But 'most' means > 50%; not everyone has upgraded yet. It's
  1253. reasonable to support System 6.0.7 as well as System 7.
  1254.  
  1255. >- If I have to be able to run on System 6, what do I have to think about?
  1256. >All "compatiblity guidelines" tells about what to think about to run in
  1257. >System 7.
  1258.  
  1259. What I check for in my standard initialization loop in the
  1260. library I tend to use for all applications are:
  1261.  
  1262. o  Is AppleEvents available?
  1263.  
  1264.    (If they are, I install my Apple Events handler. If
  1265.    they are not, I use CountAppFiles() and GetAppFiles()
  1266.    to get the files which my application was run with.)
  1267.  
  1268. o  Is Color Quickdraw available?
  1269.  
  1270.    (For applications which use color. For applications
  1271.    which use 32 bit color, I also check the features which
  1272.    are available through the gestaltQuickdrawFeatures
  1273.    selector.
  1274.  
  1275. o  Are FSSpec-selectors available?
  1276.  
  1277.    (This sets a global flag. Anytime I want to open a
  1278.    file, I use the FSpOpenDF() call if the flag is set,
  1279.    and HOpen() call if it's clear. One of the cheats
  1280.    I use is to use the fields of the FSSpec data structure
  1281.    to store the Volume RefNum, Directory ID, and file
  1282.    name of the file I'm working with if that flag is
  1283.    clear.
  1284.  
  1285.    Though Apple says not to initialize the fields of a
  1286.    FSSpec by hand, I interpret that as meaning that if
  1287.    FSSpecs are supported by the OS, then you should use
  1288.    FSMakeFSSpec(). Otherwise, an FSSpec is simply 70
  1289.    bytes of storage that's up for grabs.)
  1290.  
  1291. All of the System 7 compatability guidelines (be 32 bit
  1292. clean, work well with MultiFinder, etc., etc., etc.) are
  1293. just generally good hygene.
  1294.  
  1295. And getting into the habit of checking with Gestalt for
  1296. a particular feature is algo just good hygene.
  1297.  
  1298. I hope this helps.
  1299.  
  1300.                     - Bill
  1301. -- 
  1302. - William Edward Woody                  | Disclamer:
  1303.   woody@alumni.cco.caltech.edu             | "He who knows does not speak;
  1304. - In Phase Consulting                   |  He who speaks does not know."
  1305.   337 West California #4; Glendale, CA 91203 |            - Lao Tzu
  1306.  
  1307. +++++++++++++++++++++++++++
  1308.  
  1309. >From lbotez@picard.cs.wisc.edu (Lynda Botez)
  1310. Date: 3 Aug 1994 21:04:49 GMT
  1311. Organization: U of Wisconsin CS Dept
  1312.  
  1313.  
  1314. Excuse me, but do you really tell your users to "upgrade their computer?"
  1315. haha...
  1316.  
  1317. "Your computer sucks; get a "real" computer..."
  1318.  
  1319. Sorry, that just cracks me up... <grin>
  1320.  
  1321.  
  1322. +++++++++++++++++++++++++++
  1323.  
  1324. >From marshall@cais.com (Preston Marshall)
  1325. Date: 3 Aug 1994 18:09:24 GMT
  1326. Organization: Vanguard Research, Inc.
  1327.  
  1328. > Ola Montan (Ola.Montan@malmo.trab.se) wrote:
  1329. > : I'm writing new programs for the Macintosh and I wonder:
  1330. > : - Is it OK today to assume that the user have System 7.0 or later, or do
  1331. > : I have to make it possible to run the program on System 6 or even System
  1332. > : 5?
  1333. I sent E-mail to Apple developer services once suggesting that they
  1334. periodically publish their estimates as to "what was out there" in terms
  1335. of systems and OS's.  They must have a guess as to how many plusses, SE's
  1336. or even IIfx's are stil active and being used.  
  1337.  
  1338. I would like to know what I loose when I decide to make a feature
  1339. mandatory.  The problem is going to come up again when 7.5 gets
  1340. established.
  1341.  
  1342. -- 
  1343. ___________________________________________________________________
  1344. |     Preston Marshall           -       marshall@cais.com        |
  1345. |     Vanguard Research, Inc.    -                                |
  1346. |     10306 Eaton Pl.            -       The opinions are mine,   |
  1347. |     Farifax, Va 22111          -       my employer doesn't care |
  1348. ___________________________________________________________________
  1349.  
  1350. +++++++++++++++++++++++++++
  1351.  
  1352. >From h+@nada.kth.se (Jon W{tte)
  1353. Date: Thu, 04 Aug 1994 11:00:59 +0200
  1354. Organization: Royal Institute of Something or other
  1355.  
  1356. In article <31out3$lme@gap.cco.caltech.edu>,
  1357.  woody@alumni.caltech.edu (William Edward Woody) wrote:
  1358.  
  1359. >According to some information I got from Apple in one of their
  1360. >developer's mailings, most users are running under System 7.
  1361. >But 'most' means > 50%; not everyone has upgraded yet. It's
  1362. >reasonable to support System 6.0.7 as well as System 7.
  1363.  
  1364. A year ago, the 50% limit was already passed. Since then, Apple has 
  1365. sold several million more computers, all of them with 68030s, color 
  1366. quickdraw enabled, and running System 7. People seem to be still 
  1367. living in the pre-1991 world of "lots" of 68000 macs. Face it: the 
  1368. way Apples sales have been taking off the last few years, 68000 and 
  1369. System 6 is a CLEAR minority, and since those computers are at least 
  1370. three years old, they probably don't buy much software anymore.
  1371.  
  1372. The exception is of course the lower educational market; nobody ever 
  1373. spends enough money on educating the coming generation.
  1374.  
  1375. Cheers,
  1376.  
  1377.                     / h+
  1378.  
  1379. --
  1380.   Jon W‰tte
  1381.   Hagagatan 1
  1382.   113 48 Stockholm
  1383.   Sweden
  1384.  
  1385.  
  1386. +++++++++++++++++++++++++++
  1387.  
  1388. >From zobkiw@datawatch.com (joe zobkiw)
  1389. Date: Thu, 4 Aug 1994 15:13:35 GMT
  1390. Organization: Datawatch Corporation
  1391.  
  1392. Even if your app doesn't REQUIRE AppleEvents, PPCToolbox, QuickTime, etc.
  1393. I would say don't waste your time supporting System 6. I am currently
  1394. working on a commercial project that must support System 6 and it stinks.
  1395. You can't use the cool icon utilities, can't use the new standard file
  1396. routines, can't tail patch safely, can't depend on color QuickDraw, can't
  1397. use the the nice auto-positioning features of the Window Manager.
  1398.  
  1399. Supporting System 6 consists of carrying a lot of extra baggage - in the
  1400. form of code. Ever date someone who has a lot of extra emotional baggage?
  1401. It's a _very_ similar experience!
  1402.  
  1403. ___________________________________________________________
  1404. _/_/_/_/   Joe Zobkiw                                   ,,,
  1405.     _/     Senior Software Engineer                     - -
  1406.   _/       Datawatch Corporation                         L
  1407. _/_/_/_/   zobkiw@datawatch.com                          -
  1408. How can one expect to program without buying a single IM?
  1409.  
  1410. +++++++++++++++++++++++++++
  1411.  
  1412. >From Jeff Abrahamson <Jeff@purple.com>
  1413. Date: Thu, 04 Aug 94 10:20:40 -0500
  1414. Organization: Purple
  1415.  
  1416.  
  1417. In article <31ok39$sth@nwfocus.wa.com>, Brian L. Matthews writes:
  1418.  
  1419. > However, whatever you assume about the target machine, make sure your
  1420. > software tests your assumptions at run time and reacts gracefully if they're
  1421. > wrong.
  1422.  
  1423. I agree. However, some problems arise:
  1424.  
  1425. - I compile for a 68020, but the user has but a 68000. Unless I'm using MPW, I don't know how to 
  1426. compile just a single segment for 68000 and the rest for 68020.
  1427.  
  1428. - I compile for 68881, but the user doesn't have a 68881. Same problem as above. Note that PPC's 
  1429. crash when you make 68881 calls, so it's not just a low-end-only problem.
  1430.  
  1431. Standard Disclaimer: Of course, these may be easily solved problems to which I simply don't know the 
  1432. answers.
  1433.  
  1434.  
  1435. -Jeff Abrahamson
  1436.  PDI
  1437.  
  1438. +++++++++++++++++++++++++++
  1439.  
  1440. >From Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce)
  1441. Date: Thu, 04 Aug 1994 13:24:23 -0400
  1442. Organization: NASA/GSFC
  1443.  
  1444. In article <94080410204000115@purple.com>,
  1445.  clio!jeff@vu-vlsi.ee.vill.edu wrote:
  1446.  
  1447. >In article <31ok39$sth@nwfocus.wa.com>, Brian L. Matthews writes:
  1448. >
  1449. >> However, whatever you assume about the target machine, make sure your
  1450. >> software tests your assumptions at run time and reacts gracefully if they're
  1451. >> wrong.
  1452. >
  1453. >I agree. However, some problems arise:
  1454. >
  1455. >- I compile for a 68020, but the user has but a 68000. Unless I'm using
  1456. >MPW, I don't know how to compile just a single segment for 68000 and the
  1457. >rest for 68020.
  1458.  
  1459. Metrowerks I don't know from (yet), but for Think C:
  1460.  
  1461. #pragma options( mc68020, mc68881 )
  1462.  
  1463. to turn them on,
  1464.  
  1465. #pragma options( !mc68020, !mc68881 )
  1466.  
  1467. to turn them off.   See pp. 322ff in the TC6 manual.
  1468.  
  1469. BTW, it would be nice if you used shorter lines in your posts. 
  1470. Newswatcher couldn't clean it up; I had to shlep all the way over to
  1471. BBEdit.  :-)
  1472. -- 
  1473. Kevin      Kevin.R.Boyce@gsfc.nasa.gov
  1474. Goodbye Clipper chip, hello asteroid Zappa.  Is this a great country or what?
  1475.  
  1476. +++++++++++++++++++++++++++
  1477.  
  1478. >From pcastine@jake.prz.tu-berlin.de (Peter Castine)
  1479. Date: Thu, 4 Aug 1994 19:08:29 GMT
  1480. Organization: PRZ TU-Berlin
  1481.  
  1482. marshall@cais.com (Preston Marshall) writes:
  1483. >I sent E-mail to Apple developer services once suggesting that they
  1484. >periodically publish their estimates as to "what was out there" in terms
  1485. >of systems and OS's.  They must have a guess as to how many plusses, SE's
  1486. >or even IIfx's are stil active and being used.  
  1487. >
  1488.  
  1489. If you're a registered developer, you get Apple Direct. They have published
  1490. figures from time to time Re: numbers of various Machines and OS Versions
  1491. out there in userland. Sorry, don't have one here to quote off hand.
  1492.  
  1493. -- 
  1494. Peter Castine               | Oh, wenn jene alten, musikkundigen Gelehrten die
  1495. pcastine@prz.tu-berlin.de   | Modernen hoerten, was wuerden sie tun, was
  1496. Process Control Center      | wuerden sie sagen!
  1497. Technical University Berlin |               -- Jacobus von Luettich (ca. 1330)
  1498.  
  1499. +++++++++++++++++++++++++++
  1500.  
  1501. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1502. Date: Wed, 3 Aug 1994 20:34:58 GMT
  1503. Organization: Apple Computer
  1504.  
  1505. Jon W{tte, h+@nada.kth.se writes:
  1506. > However, some things should NOT be demanded. That Virtual Memory be 
  1507. > off is an _evil_ thing, especially on PowerPCs where system 
  1508. > performance is BETTER with VM on, as long as your swap file just 
  1509. > covers your RAM and another meg or two.
  1510.  
  1511. Is that true for you? I turned VM on on my 7100 and gave it 1 more MB than I
  1512. have physical RAM, and still it made my CodeWarrior compiles a lot slower.
  1513. (During compilation, after every few files I could hear my disk doing a lot
  1514. of VM thrashing...) It was something like a 20% performance penalty, although
  1515. I didn't time it.
  1516.  
  1517. I believe the problem is that since part of the physical RAM is being used to
  1518. store code, it's not available for heaps, so there's really much greater than
  1519. 1MB difference between the virtual and physical memory available for heap
  1520. zones. It's a shame ... guess I'll have to wait until Copland for good VM.
  1521.  
  1522. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1523.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1524.  
  1525. +++++++++++++++++++++++++++
  1526.  
  1527. >From Jens Alfke <jens_alfke@powertalk.apple.com>
  1528. Date: Thu, 4 Aug 1994 20:34:16 GMT
  1529. Organization: Apple Computer
  1530.  
  1531. Jeff Abrahamson, Jeff@purple.com writes:
  1532. > - I compile for a 68020, but the user has but a 68000. Unless I'm using
  1533. MPW, I 
  1534. > don't know how to 
  1535. > compile just a single segment for 68000 and the rest for 68020.
  1536.  
  1537. In C/C++, you do this with #pragma statements. Check your development
  1538. system's manual; THINK and CodeWarrior do this differently but both of them
  1539. let you change most of the compile settings via pragmas. I believe Pascal has
  1540. similar stuff.
  1541.  
  1542. > - I compile for 68881, but the user doesn't have a 68881. Same problem as 
  1543. > above. Note that PPC's 
  1544. > crash when you make 68881 calls, so it's not just a low-end-only problem.
  1545.  
  1546. Again, there are pragmas to turn 881 codegen on and off. If you want to run
  1547. with or without an 881 but take advantage of it if it exists, the best thing
  1548. is probably to include two versions of your core math-intensive routines, one
  1549. compiled for 881 and one not. (You can put the two versions in different
  1550. segments, so only one will ever get loaded.) Then call Gestalt at startup to
  1551. check whether you have an 881, and call one routine or the other depending.
  1552. Or if you're megaconcerned about efficiency, at startup set up some procptrs
  1553. to point to one or the other set of routines, and then call the routines
  1554. through the procptrs.
  1555.  
  1556. --Jens Alfke                           jens_alfke@powertalk.apple.com
  1557.                    "A man, a plan, a yam, a can of Spam ... Bananama!"
  1558.  
  1559. +++++++++++++++++++++++++++
  1560.  
  1561. >From ari@world.std.com (Ari I Halberstadt)
  1562. Date: Fri, 5 Aug 1994 09:25:45 GMT
  1563. Organization: The World Public Access UNIX, Brookline, MA
  1564.  
  1565. In article <zobkiw-0408941013350001@zobkiw.datawatch.com>,
  1566. joe zobkiw <zobkiw@datawatch.com> wrote:
  1567. >Even if your app doesn't REQUIRE AppleEvents, PPCToolbox, QuickTime, etc.
  1568. >I would say don't waste your time supporting System 6. I am currently
  1569. >working on a commercial project that must support System 6 and it stinks.
  1570. >You can't use the cool icon utilities, can't use the new standard file
  1571. >routines, can't tail patch safely, can't depend on color QuickDraw, can't
  1572. >use the the nice auto-positioning features of the Window Manager.
  1573.  
  1574. I don't think tail patching was fully authorized with sys-7.0. I think
  1575. the PowerPC sys software was the first to allow tail-patching for all
  1576. patchable traps, and that was due to the way the MMM (mixed-mode
  1577. mangler) calls patches.
  1578.  
  1579. Color QuickDraw is only supported on CPUs 68K and greater, and was
  1580. supported in systems prior to 7.0 on appropriate hardware.
  1581.  
  1582. >How can one expect to program without buying a single IM?
  1583.  
  1584. Buy all of them on the forthcoming CD :-) Regular $100, but if you
  1585. preorder, then it's only $80. You're not charged till it ships, and
  1586. they'll call to confirm that you still want it. MacWorld show special,
  1587. but Addison-Wesley might extend this beyond the show. I think having
  1588. all of NIM on a CD is essential.
  1589.  
  1590. -- 
  1591. Ari Halberstadt                                 ari@world.std.com
  1592. One generation passes away, and another generation comes: but the
  1593. earth abides for ever. -- Ecclesiastes, 1:4.
  1594.  
  1595. +++++++++++++++++++++++++++
  1596.  
  1597. >From ari@world.std.com (Ari I Halberstadt)
  1598. Date: Fri, 5 Aug 1994 09:40:14 GMT
  1599. Organization: The World Public Access UNIX, Brookline, MA
  1600.  
  1601. In article <Cu226y.MLn@world.std.com>,
  1602. Ari I Halberstadt <ari@world.std.com> wrote:
  1603. >Color QuickDraw is only supported on CPUs 68K and greater, and was
  1604. >supported in systems prior to 7.0 on appropriate hardware.
  1605.  
  1606. Ack, I didn't mean 68K or greater, I meant 68020 and later CPUs.
  1607. -- 
  1608. Ari Halberstadt                                 ari@world.std.com
  1609. One generation passes away, and another generation comes: but the
  1610. earth abides for ever. -- Ecclesiastes, 1:4.
  1611.  
  1612. +++++++++++++++++++++++++++
  1613.  
  1614. >From giles@med.cornell.edu (Aaron Giles)
  1615. Date: Fri, 05 Aug 1994 13:36:13 -0400
  1616. Organization: Cornell University Medical College
  1617.  
  1618. In article <1994Aug3.203458.22623@gallant.apple.com>, Jens Alfke
  1619. <jens_alfke@powertalk.apple.com> wrote:
  1620.  
  1621. > Jon W{tte, h+@nada.kth.se writes:
  1622. > > However, some things should NOT be demanded. That Virtual Memory be 
  1623. > > off is an _evil_ thing, especially on PowerPCs where system 
  1624. > > performance is BETTER with VM on, as long as your swap file just 
  1625. > > covers your RAM and another meg or two.
  1626. > Is that true for you? I turned VM on on my 7100 and gave it 1 more MB than I
  1627. > have physical RAM, and still it made my CodeWarrior compiles a lot slower.
  1628. > (During compilation, after every few files I could hear my disk doing a lot
  1629. > of VM thrashing...) It was something like a 20% performance penalty, although
  1630. > I didn't time it.
  1631.  
  1632. I think CW uses temporary memory during compiles, which will cause
  1633. thrashing in the system heap, where your extra 1MB is probably hanging
  1634. out.  I really really wish Apple would let you set your VM to exactly your
  1635. system memory, so that you can get file mapping without fear of trashing
  1636. in the extra 1MB.  I tried hacking the system file to set VM down to
  1637. exactly equal to my physical memory, but it wasn't too happy after that.
  1638. :-)
  1639.  
  1640. Aaron
  1641. -- 
  1642. Aaron Giles (giles@med.cornell.edu)
  1643. Power Macintosh Developer, Cornell University Medical College
  1644. JPEGView home page: http://www.med.cornell.edu/jpegview.html
  1645. JPEGView FTP site:   ftp://ftp.med.cornell.edu/pub/aarong/jpegview/
  1646.  
  1647. +++++++++++++++++++++++++++
  1648.  
  1649. >From gurgle@dnai.com (Pete Gontier)
  1650. Date: Fri, 05 Aug 1994 11:02:43 -0800
  1651. Organization: Integer Poet Software
  1652.  
  1653. In article <zobkiw-0408941013350001@zobkiw.datawatch.com>,
  1654. zobkiw@datawatch.com (joe zobkiw) wrote:
  1655.  
  1656. > I am currently working on a commercial project that must support System 6
  1657. > and it stinks... You can't ... depend on color QuickDraw...
  1658.  
  1659. You can't depend on Color QuickDraw even under System 7.
  1660.  
  1661. -- 
  1662.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  1663.  
  1664.  "Clear-cutting removes all trees... to create new habitats for
  1665.  wildlife. P&G uses this economically and environmentally sound
  1666.  method because it most closely mimics nature's own processes.
  1667.  Clear-cutting also opens the floor to sunshine, thus stimulating
  1668.  growth and providing food for animals."
  1669.     -- Procter & Gamble's "Decision Earth" free school curriculum
  1670.  
  1671. +++++++++++++++++++++++++++
  1672.  
  1673. >From wdh@netcom.com (Bill Hofmann)
  1674. Date: Fri, 5 Aug 1994 18:04:16 GMT
  1675. Organization: Fresh Software
  1676.  
  1677. In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1678. Halberstadt) wrote:
  1679. > I don't think tail patching was fully authorized with sys-7.0. I think
  1680. > the PowerPC sys software was the first to allow tail-patching for all
  1681. > patchable traps, and that was due to the way the MMM (mixed-mode
  1682. > mangler) calls patches.
  1683. Recent threads have discussed that tail patching has been legit with a few
  1684. exceptions (FrontWindow(), apparently, who knows why?) since system 7,
  1685. because of the revised way come-from patches are done by system software.
  1686.  
  1687. -Bill
  1688.  
  1689. -- 
  1690. Bill Hofmann                                   wdh@netcom.com
  1691. Fresh Software and Instructional Design        voice: +1 510 524 0852
  1692. 1640 San Pablo Ave #C, Berkeley CA 94702 USA   fax:   +1 510 524 0853
  1693.  
  1694. +++++++++++++++++++++++++++
  1695.  
  1696. >From wdh@netcom.com (Bill Hofmann)
  1697. Date: Fri, 5 Aug 1994 18:16:35 GMT
  1698. Organization: Fresh Software
  1699.  
  1700. In article <nagleCtywvx.Bys@netcom.com>, nagle@netcom.com (John Nagle) wrote:
  1701. > Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1702. > >I'm writing new programs for the Macintosh and I wonder:
  1703. > >- Is it OK today to assume that the user have System 7.0 or later, or do
  1704. > >I have to make it possible to run the program on System 6 or even System
  1705. > >5?
  1706. >       Unless your application is for the educational or game market,
  1707. > forget System 6.  
  1708. I agree: this is the "proper" approach--evaluate your target market, and
  1709. decide based on this.  So for instance, if you're targeting PowerBooks,
  1710. you can ignore sys 6 (unless you're worried about the transitional Kanji
  1711. sys 6 that lots of people in Japan were running prior to system 7.1). 
  1712. Probably at this point, you could ignore system 6 (maybe even 7.0) for
  1713. mass market if you're targeting the Performa market.  Don't forget to
  1714. factor in development time: 50% may be running  7.5 by the time you finish
  1715. :-(.
  1716.  
  1717. Also, where you *don't* have to assume system 7, don't.  You can and
  1718. should use FSSpec's, and the MakeFSSpec call has glue for pre-7 systems. 
  1719. You can wrap portions that are different in 6 vs 7 (HOpen vs FSpOpenDF:
  1720. who names these things?) in a common routine that has consistent calling
  1721. conventions to maintain maximum compatibility.  Other areas like the
  1722. script manager are so different from release to release of system software
  1723. that one could be forgiven for requiring not just 7.0 but 7.1 (the basis
  1724. of NIM, after all).
  1725.  
  1726. Obviously if you're writing a program to do collaboration, you can require
  1727. 7.1 Pro, or if you're writing a GX Print Utility, you can require GX, so
  1728. that gives you license to require all kindsa things.
  1729.  
  1730. I would still test on 68000 Macs, but more as an afterthought.  I've still
  1731. got a Classic at home and an SE with a jet engine fan in the office
  1732. collecting dust, and occasionally give things a try on there.
  1733.  
  1734. -Bill
  1735.  
  1736. -- 
  1737. Bill Hofmann                                   wdh@netcom.com
  1738. Fresh Software and Instructional Design        voice: +1 510 524 0852
  1739. 1640 San Pablo Ave #C, Berkeley CA 94702 USA   fax:   +1 510 524 0853
  1740.  
  1741. +++++++++++++++++++++++++++
  1742.  
  1743. >From qsi@cnh.wlink.nl (Peter Kocourek)
  1744. Date: 07 Aug 94 16:54:24 +0200
  1745. Organization: Care Net Holland
  1746.  
  1747. Bill Hofmann wrote in a message on 05 Aug 94:
  1748.  
  1749.  BH> Probably at this point, you could ignore system 6 (maybe even 
  1750.  BH> 7.0) for mass market if you're targeting the Performa market. 
  1751.  BH> Don't forget to factor in development time: 50% may be running 
  1752.  BH> 7.5 by the time you finish :-(.
  1753.  
  1754. Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1755. worried about many users running it. :-/
  1756.  
  1757.  
  1758. YHS:QSI!
  1759.  
  1760. +++++++++++++++++++++++++++
  1761.  
  1762. >From mason@cis.umassd.edu (Mason Bliss)
  1763. Date: Wed, 10 Aug 1994 02:41:11 GMT
  1764. Organization: University of Massachusetts Dartmouth
  1765.  
  1766. In <80b_9408080302@cnh.wlink.nl> qsi@cnh.wlink.nl (Peter Kocourek) writes:
  1767.  
  1768. >Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1769. >worried about many users running it. :-/
  1770.  
  1771. Heh. Oh, come on! I *want* to go out and spend big bucks so that my system
  1772. disks will install all the stuff I've FTPed *for* me.
  1773.  
  1774. I may be missing something, but it doesn't look like 7.5 has anything terribly
  1775. significant in it. It looks more akin to the jump from 7.0 to 7.5, where we
  1776. could spend all kinds of money to have a fonts folder.
  1777.  
  1778. My preference is this: Write for 7.0. Don't go out of your way to make things
  1779. incompatible with System 6. If you can be compatible with System 6, great, but
  1780. if not, don't worry about it.
  1781.  
  1782. -- 
  1783. Mason L. Bliss  -  mason@acheron.middleboro.ma.us  -  mason@cis.umassd.edu
  1784.  "What diabolical chicken stepped on your forehead and sat on your chin?"
  1785.  
  1786. +++++++++++++++++++++++++++
  1787.  
  1788. >From gurgle@dnai.com (Pete Gontier)
  1789. Date: Tue, 09 Aug 1994 20:19:53 -0800
  1790. Organization: Integer Poet Software
  1791.  
  1792. In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1793. Halberstadt) wrote:
  1794.  
  1795. > I don't think tail patching was fully authorized with sys-7.0.
  1796.  
  1797. Yes, it was, other than FrontWindow or FindWindow or some other call that
  1798. starts with 'F' and ends with 'Window'. :-) I'd be surprised if there were
  1799. an official Apple document with a specific announcement, but Apple
  1800. employees, indeed, Blue Meanies, have posted repeatedly here that this is
  1801. the case.
  1802.  
  1803. -- 
  1804.  Pete Gontier // CTO, Integer Poet Software // gurgle@dnai.com
  1805.  
  1806.  "I am Homer of Borg! Prepare to be... Ooooooo! Donuts!"
  1807.  
  1808. +++++++++++++++++++++++++++
  1809.  
  1810. >From alexr@apple.com (Alexander M. Rosenberg)
  1811. Date: Wed, 10 Aug 1994 19:06:51 GMT
  1812. Organization: Hackers Anonymous
  1813.  
  1814. In article <gurgle-0908942019530001@gurgle.dnai.com>, gurgle@dnai.com
  1815. (Pete Gontier) wrote:
  1816.  
  1817. > In article <Cu226y.MLn@world.std.com>, ari@world.std.com (Ari I
  1818. > Halberstadt) wrote:
  1819. > > I don't think tail patching was fully authorized with sys-7.0.
  1820. > Yes, it was, other than FrontWindow or FindWindow or some other call that
  1821. > starts with 'F' and ends with 'Window'. :-) I'd be surprised if there were
  1822. > an official Apple document with a specific announcement, but Apple
  1823. > employees, indeed, Blue Meanies, have posted repeatedly here that this is
  1824. > the case.
  1825.  
  1826. And I believe that Inside Mac: Operating System Utilities even states this.
  1827.  
  1828. - -------------------------------------------------------------------------
  1829. -  Alexander M. Rosenberg  - INTERNET: alexr@apple.com      - Yoyodyne    -
  1830. -  330 Waverley St., Apt B - UUCP:ucbvax!apple!alexr        - Propulsion  -
  1831. -  Palo Alto, CA 94301     -                                - Systems     -
  1832. -  (415) 329-8463          - Nobody is my employer so       - :-)         -
  1833. -  (408) 974-3110          - nobody cares what I say.       -             -
  1834.  
  1835. +++++++++++++++++++++++++++
  1836.  
  1837. >From qsi@cnh.wlink.nl (Peter Kocourek)
  1838. Date: 11 Aug 94 15:37:07 +0200
  1839. Organization: Care Net Holland
  1840.  
  1841. Mason Bliss wrote in a message on 10 Aug 94:
  1842.  
  1843.  MB> In <80b_9408080302@cnh.wlink.nl> qsi@cnh.wlink.nl (Peter Kocourek) 
  1844.  MB> writes: 
  1845.  
  1846. >Considering Apple's idiotic pricing of 7.5, I don't think you should be too
  1847. >worried about many users running it. :-/
  1848.  
  1849.  MB>  Heh. Oh, come on! I *want* to go out and spend big bucks so 
  1850.  MB> that my system disks will install all the stuff I've FTPed 
  1851.  MB> *for* me. 
  1852.  MB> I may be missing something, but it doesn't look like 7.5 has 
  1853.  MB> anything terribly significant in it. It looks more akin to 
  1854.  MB> the jump from 7.0 to 7.5, where we could spend all kinds of 
  1855.  MB> money to have a fonts folder. 
  1856.  
  1857. This is not entirely fair: System 7.5 does come with QuickDraw GX and
  1858. PowerTalk. Some people will find these enhancements valuable, although
  1859. personally, I probably won't be using either of them. The question is, whether
  1860. the $140 Apple wants to charge for the update is reasonable. I don't happen to
  1861. think so, even if I had a use for GX.
  1862.  
  1863. It is clear that GX is a substantial achievement, and its development cost
  1864. Apple a lot of money. I also understand that Apple wants to offset the
  1865. developments costs. However, I don't this is the best way of going about it.
  1866. The ultimate success of new technologies will be determined by how widely they
  1867. are adopted by users and developers. Developers are less likely to support
  1868. Apple's cool new technologies, if the installed user base is small.
  1869.  
  1870. I think the $140 (or $99 street) would be more reasonable for a more
  1871. substantial upgrade, like Copland.
  1872.  
  1873.  MB> My preference is this: Write for 7.0. Don't go out of your 
  1874.  MB> way to make things incompatible with System 6. If you can be 
  1875.  MB> compatible with System 6, great, but if not, don't worry about 
  1876.  MB> it. 
  1877.  
  1878. I don't support System 6 any longer in new programs I write. Maintaining older
  1879. programs, I keep the System 6 stuff in. As for supporting post-7.0 features, I
  1880. implement them based on how much work it is, and how much demand there is for
  1881. them.
  1882.  
  1883.  
  1884. YHS:QSI!
  1885.  
  1886. +++++++++++++++++++++++++++
  1887.  
  1888. >From ingemar@lysator.liu.se (Ingemar Ragnemalm)
  1889. Date: 19 Aug 1994 21:27:13 GMT
  1890. Organization: (none)
  1891.  
  1892. Ola.Montan@malmo.trab.se (Ola Montan) writes:
  1893.  
  1894. >I'm writing new programs for the Macintosh and I wonder:
  1895.  
  1896. >- Is it OK today to assume that the user have System 7.0 or later, or do
  1897. >I have to make it possible to run the program on System 6 or even System 5?
  1898.  
  1899. Forget System 5. If you can make your program run on it, well, good, but that
  1900. is like paiting the back of the drawers - you know you did a great job, but
  1901. few will care.
  1902.  
  1903. System 6.0.7 is the lowest system that is interesting to support. If you
  1904. should, depends on the users. Many low-end users use System 6, especially
  1905. those on slow Macs like MacPlus, or Macs with little memory.
  1906.  
  1907. Extreme case of needing System 6: Networked games! If you make a networked
  1908. game, try to support both System 6 and non-color-QuickDraw. Many long-time
  1909. Mac users have two Macs, and one of them might be an old Plus or SE.
  1910.  
  1911. If your program is color only, there is a smaller population who will want
  1912. System 6. Not none at all, but making it work in b/w (esp non-color QD)
  1913. is more important.
  1914.  
  1915. And, as someone noted, if you make high-end applications, where most of your
  1916. users use new, high-end Macs, well, who will notice?
  1917.  
  1918. >- If I have to be able to run on System 6, what do I have to think about?
  1919. >All "compatiblity guidelines" tells about what to think about to run in
  1920. >System 7.
  1921.  
  1922. Only use stuff described in IM 1-5. GWorlds can be demanded, at least from
  1923. color users, since they can install it under sys 6. If you can't run System 6
  1924. yourself, you better find someone who do, or you'll never know.
  1925.  
  1926. --
  1927. - -
  1928. Ingemar Ragnemalm, PhD
  1929. Image processing, Mac shareware games
  1930. E-mail address: ingemar@isy.liu.se or ingemar@lysator.liu.se
  1931.  
  1932. +++++++++++++++++++++++++++
  1933.  
  1934. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  1935. Date: Sun, 21 Aug 1994 15:26:10 +0800
  1936. Organization: Department of Computer Science, The University of Western Australia
  1937.  
  1938. In article <33383h$cm0@newsy.ifm.liu.se>, ingemar@lysator.liu.se (Ingemar
  1939. Ragnemalm) wrote:
  1940.  
  1941. >System 6.0.7 is the lowest system that is interesting to support.
  1942.  
  1943. I disagree.  6.0.5 has most of the features of 6.0.7 (specifically
  1944. _Gestalt) but is a lot more reliable on machines that don't need 6.0.7 (ie
  1945. LC, IIsi).  If you're going to support System 6 you should support back to
  1946. 6.0.5!
  1947. -- 
  1948. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  1949. Department of Computer Science, The University of Western Australia
  1950.  
  1951. +++++++++++++++++++++++++++
  1952.  
  1953. >From kaufman@Xenon.Stanford.EDU (Marc T. Kaufman)
  1954. Date: 22 Aug 1994 03:08:30 GMT
  1955. Organization: Computer Science Department, Stanford University.
  1956.  
  1957. In article <quinn-2108941526100001@edu-dynamic5.educ.ecel.uwa.edu.au>,
  1958. Quinn "The Eskimo!" <quinn@cs.uwa.edu.au> wrote:
  1959. >In article <33383h$cm0@newsy.ifm.liu.se>, ingemar@lysator.liu.se (Ingemar
  1960. >Ragnemalm) wrote:
  1961.  
  1962. ->System 6.0.7 is the lowest system that is interesting to support.
  1963.  
  1964. >I disagree.  6.0.5 has most of the features of 6.0.7 (specifically
  1965. >_Gestalt) but is a lot more reliable on machines that don't need 6.0.7 (ie
  1966. >LC, IIsi).  If you're going to support System 6 you should support back to
  1967. >6.0.5!
  1968.  
  1969. I have one customer who is running 6.0.3, because he likes the Quickdraw
  1970. bug that caused hairlines not to fatten when copied to a larger bitmap.
  1971. He needed that feature to create hairline targets on 35mm slides.  I think
  1972. we can agree not to go back to 4.x, though, can't we?
  1973.  
  1974. Marc
  1975.  
  1976.  
  1977. ---------------------------
  1978.  
  1979. >From h+@nada.kth.se (Jon W{tte)
  1980. Subject: The System 7.5 Think Debugger Bug - and fix!
  1981. Date: Fri, 19 Aug 1994 22:27:29 +0200
  1982. Organization: Royal Institute of Something or other
  1983.  
  1984. As you may now be aware of, there is a bug in Think Debugger 
  1985. and/or System 7.5 that makes the debugger freeze on startup for 
  1986. several kinds of projects.
  1987.  
  1988. It worked in 7.5b5, but not now. Everyone at apple says that 
  1989. nothing changed in the Process Manager between them. The bug, 
  1990. however, DOES depend on Think Debugger calling GetNextEvent in 
  1991. a tight loop, waiting for an app4Evt that doesn't get there.
  1992.  
  1993. This INIT, when installed, patches GetNextEvent to call 
  1994. WaitNextEvent and give 6 in background time, which makes the 
  1995. debugger work once again. Since WaitNextEvent calls 
  1996. GetNextEvent internally, AND process switched happen during 
  1997. WaitNextEvent calls, I have a nice re-entrancy problem which I 
  1998. solve with a linked list of A5 values in the system heap. This 
  1999. list is NOT cleaned up, and consists of nonrelocatable blocks, 
  2000. so use with care! (it doesn't crash, though)
  2001.  
  2002. Source included
  2003.  
  2004. Enjoy,
  2005.  
  2006.                 / h+
  2007.  
  2008. (Pardon the binary posting on this group, but it's SOOO small, 
  2009. important and relevant...)
  2010.  
  2011.  
  2012.  
  2013. --
  2014.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2015.  
  2016. "TextEdit does everything right."
  2017.     ã Jon W{tte
  2018.  
  2019.  
  2020. +++++++++++++++++++++++++++
  2021.  
  2022. >From tree@bedford.symantec.com (Tom Emerson)
  2023. Date: Sat, 20 Aug 1994 17:15:43 -0800
  2024. Organization: Symantec Development Tools Group
  2025.  
  2026. In article <9668AA7AE251.45173@klkmac004.nada.kth.se>, h+@nada.kth.se (Jon
  2027. W{tte) wrote:
  2028.  
  2029. > As you may now be aware of, there is a bug in Think Debugger 
  2030. > and/or System 7.5 that makes the debugger freeze on startup for 
  2031. > several kinds of projects.
  2032. > It worked in 7.5b5, but not now. Everyone at apple says that 
  2033. > nothing changed in the Process Manager between them. The bug, 
  2034. > however, DOES depend on Think Debugger calling GetNextEvent in 
  2035. > a tight loop, waiting for an app4Evt that doesn't get there.
  2036.  
  2037. Some background on this: the TPM/THINK Debugger IAC worked through 7.5b6.
  2038. >From that point on some change in the new system software broke the
  2039. communications mechanism. The problem only occurs for some projects (one
  2040. commonality is the number of static constructors it contains - we haven't
  2041. seen it with large C applications), and we have yet to determine the exact
  2042. circumstances that cause the problem to appear or what changed in the
  2043. System software to hose it. We've talked to the engineer responsible for
  2044. the Process Manager in 7.5 and he doesn't know what changed either, so
  2045. this is a mystery. The loop that waits on app4Evt's and updateEvts appears
  2046. in both the TPM and Debugger --- which one you hang in depends on who
  2047. initiated the communication.
  2048.  
  2049. > This INIT, when installed, patches GetNextEvent to call 
  2050. > WaitNextEvent and give 6 in background time, which makes the 
  2051. > debugger work once again. Since WaitNextEvent calls 
  2052. [snip]
  2053.  
  2054. This is the fix that we will probably make, though we need to QA more
  2055. before releasing it, and it would be nice to know what actually changed in
  2056. the System to bring about the problem.
  2057.  
  2058.    -tre
  2059.  
  2060. -- 
  2061. Tom Emerson                                              Software Engineer
  2062. Development Tools Group                               Symantec Corporation
  2063.                           tree@bedford.symantec.com
  2064.   "I dreamed I had to take a test, in a Dairy Queen, on another planet."
  2065.  
  2066. +++++++++++++++++++++++++++
  2067.  
  2068. >From stevep@wrq.com (Steve Poole)
  2069. Date: Mon, 22 Aug 1994 10:59:25 -0800
  2070. Organization: Walker Richer & Quinn
  2071.  
  2072. In article <tree-2008941715430001@155.64.60.21>, tree@bedford.symantec.com
  2073. (Tom Emerson) wrote:
  2074.  
  2075. > communications mechanism. The problem only occurs for some projects (one
  2076. > commonality is the number of static constructors it contains - we haven't
  2077. > seen it with large C applications), and we have yet to determine the exact
  2078.  
  2079. I've seen it with large C apps, Tom.
  2080.  
  2081. Steve
  2082.  
  2083. - ------------------------------------------------------------------------
  2084. - Internet: stevep@wrq.com  -  AOL: Spoole  -  INTEL 80x86: Just say NOP -
  2085. - "Nurse! Do let's pretend that I'm a hungry hyaena, and you're a bone!" -
  2086. - ------------------------------------------------------------------------
  2087.  
  2088. ---------------------------
  2089.  
  2090. >From h+@nada.kth.se (Jon W{tte)
  2091. Subject: Think Debugger & INIT source code
  2092. Date: Sun, 21 Aug 1994 16:52:25 +0200
  2093. Organization: Royal Institute of Something or other
  2094.  
  2095. The INIT I sent out a day ago to fix the System 7.5 bug when 
  2096. using the Think Debugger _did_ fix the problem, but it didn't 
  2097. do it by behaving as advertized.
  2098.  
  2099. This is because I patched InitWindows, and from that patch 
  2100. patched GetNextEvent to instead call WaitNextEvent with a sleep 
  2101. time of 6, and added some application referencing stuff in a 
  2102. linked list to kkeep track of re-entry.
  2103.  
  2104. Well, using the patch I did, calling WaitNextEvent would 
  2105. actually result in WaitNextEvent being called twice; once with 
  2106. whatever sleep time was passed to it, and once through my path 
  2107. before it came down to GetNextEvent. Not good.
  2108.  
  2109. HOWEVER - it turns out that the Process Mangler patches out 
  2110. InitWindows so other apps don't get to it, just like with 
  2111. WaitNextEvent and GetNextEvent (which was why I laid the basic 
  2112. patch there initially...) with the exception of the Finder, 
  2113. which calls InitWindows before this patching is done. 
  2114.  
  2115. Straaaange!
  2116.  
  2117. Now, my patch hangs off InitDialogs, which, as it turns out, is 
  2118. a much better place to hang - cheaper brews, cooler people, and 
  2119. not getting patched-out by the Process Mangler. Yet, anyway :-)
  2120.  
  2121. Another complication was that I only used one location to save 
  2122. the old WaitNextEvent globally. Since some apps patch 
  2123. WaitNextEvent themselves, BEFORE they call InitDialogs, this 
  2124. was a bad thing (projects running under the Think Debugger come
  2125. to mind...)
  2126.  
  2127. Now I only patch if the saved address is 0, or the address I
  2128. get from WNE is the same as the saved address, which it turns 
  2129. out to be for the vast majority of applications; even for the 
  2130. Finder (It's surprising that the Finder does ANYTHING like we
  2131. mortals :-)
  2132.  
  2133. Anyway, now this INIT behaves as advertized, and can also serve 
  2134. as example code of how to write a skanky INIT that gets at the 
  2135. WaitNextEvent mechanism and circumvents the Process Manager. In
  2136. pure inline assembly, no less. Code review invited.
  2137.  
  2138. Cheers,
  2139.  
  2140.                 / h+
  2141.                 Jon W{tte
  2142.  
  2143.  
  2144.  
  2145.  
  2146. --
  2147.   Jon W‰tte (h+@nada.kth.se), Hagagatan 1, 113 48 Stockholm, Sweden
  2148.     Not speaking for the Microsoft Corporation.
  2149.  
  2150.  
  2151. ---------------------------
  2152.  
  2153. >From emmayche@apple.com (Mark Hartman)
  2154. Subject: [Q] How to do non-bypassable INIT?
  2155. Date: 11 Aug 1994 17:36:33 -0700
  2156. Organization: Apple Computer Inc, Cupertino, CA
  2157.  
  2158. For security reasons, I need to have an INIT loaded/run at startup whether or
  2159. not the Shift key is held down.  I know that some of the Apple-supplied
  2160. goodies do this; does anyone know what the rules are for what gets loaded
  2161. anyway if Shift is held down?
  2162. -- 
  2163. =======================================================================
  2164. The above is not guaranteed to be the opinions of anyone in particular.
  2165. =======================================================================
  2166. Mark Hartman, N6BMO | E-mail:  emmayche@apple.com | AOL: emmayche
  2167.       Macophile     |  Serious Disney enthusiast  | CIS: 75130,1434
  2168.  
  2169. +++++++++++++++++++++++++++
  2170.  
  2171. >From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
  2172. Date: Fri, 12 Aug 1994 10:55:34 +0800
  2173. Organization: Department of Computer Science, The University of Western Australia
  2174.  
  2175. In article <32eg6h$edh@apple.com>, emmayche@apple.com (Mark Hartman) wrote:
  2176.  
  2177. >For security reasons, I need to have an INIT loaded/run at startup whether or
  2178. >not the Shift key is held down.  I know that some of the Apple-supplied
  2179. >goodies do this; does anyone know what the rules are for what gets loaded
  2180. >anyway if Shift is held down?
  2181.  
  2182. The only one I know of is System 7 Tuner, which installs an INIT in the
  2183. system file that specifically opens, load and runs the tuna regardless of
  2184. whether the shift key is down.
  2185.  
  2186. Another possible solution is to disable the shift key by deleting the
  2187. 'dbex' resource in the system file.
  2188. -- 
  2189. Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
  2190. Department of Computer Science, The University of Western Australia
  2191.  
  2192. +++++++++++++++++++++++++++
  2193.  
  2194. >From radixinc@aol.com (RadixInc)
  2195. Date: 12 Aug 1994 01:42:00 -0400
  2196. Organization: America Online, Inc. (1-800-827-6364)
  2197.  
  2198. In article <32eg6h$edh@apple.com>, emmayche@apple.com (Mark Hartman)
  2199. writes:
  2200.  
  2201. "For security reasons, I need to have an INIT loaded/run at startup
  2202. whether or
  2203. not the Shift key is held down.  I know that some of the Apple-supplied
  2204. goodies do this; does anyone know what the rules are for what gets loaded
  2205. anyway if Shift is held down?"
  2206.  
  2207. There is a new INIT type that is loaded regardless of the shift key. Look
  2208. at one of the ones that always loads. I think the file type needs to be
  2209. 'scri', and other than that it's the same (INIT resource, etc.). I haven't
  2210. tested this though, so check it out yourself.
  2211.  
  2212. I hope you aren't writing a virus or something obnoxious...
  2213.  
  2214. Gregory Jorgensen
  2215. Radix Consulting Inc.
  2216.  
  2217. +++++++++++++++++++++++++++
  2218.  
  2219. >From dlb@netcom.com (David Beauchesne)
  2220. Date: Fri, 19 Aug 1994 02:52:08 GMT
  2221. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  2222.  
  2223. > There is a new INIT type that is loaded regardless of the shift key. Look
  2224. > at one of the ones that always loads. I think the file type needs to be
  2225. > 'scri', and other than that it's the same (INIT resource, etc.). I haven't
  2226. > tested this though, so check it out yourself.
  2227.  
  2228. This is correct.  Type 'scri' is used by Apple to load different
  2229. scripts (languages).  They are treated, (and coded), just like
  2230. 'INIT's, but their loading cannot be stopped with the shift key.
  2231. -- 
  2232. David L. Beauchesne                                    dlb@netcom.com
  2233. Santa Cruz, California, USA
  2234.  
  2235. ---------------------------
  2236.  
  2237. >From khurram@bga.com (Khurram Qureshi)
  2238. Subject: malloc problem in CW-4
  2239. Date: 21 Aug 1994 15:49:55 -0500
  2240. Organization: Real/Time Communications - Bob Gustwick and Associates
  2241.  
  2242. There is a problem with malloc/realloc problem which exists in CW/4. Typically
  2243. this surfaces when performing continuous memory allocations (inside a for loop
  2244. for example). This will be fixed as soon as possible.
  2245.  
  2246. Thanks.
  2247.  
  2248. ==============================
  2249. Khurram Qureshi
  2250. Metrowerks Technical Support
  2251. e-mail: khurram@bga.com
  2252. ==============================
  2253.  
  2254. ---------------------------
  2255.  
  2256. End of C.S.M.P. Digest
  2257. **********************
  2258.  
  2259.