On Fri, May 30, 2003 at 02:14:09PM +0200, Michael Nordstrom wrote:
> On Fri, May 30, 2003, Alexander R. Pruss wrote:
> > It's not supposed to do that?
> 
> Only if you run it on an OS5 device. On other devices it will
> display the last used document. However, if you were using the
> library when you left Plucker (or if the last used document
> can't be found) it will display the document library instead.

Yep. Its true. :) v20030222-am contained a workaround to this problem
but it was deemed a 'bad hack' and was never commited to CVS.

> The reason it works differently on OS5 devices is because of
> some bug. Adam might have a better explanation, since he added
> this "workaround" (for all devices, but I changed it to only be
> used for OS5 devices; no reason to "punish" all users because
> of problems with OS5:)

The problem arises from using an ErrTry/ErrCatch sequence that exceeds
the maximum depth allowed. For some reason OS4 has no problem with
this, but OS5 bickers and eventually crashes.

The here's a diff to the workaround I used.. but I wanted to find
something more prestine. If someone wants to hack away at this be my
guest.


Index: viewer.c
===================================================================
RCS file: /cvs/plucker/plucker_src/viewer/viewer.c,v
retrieving revision 1.93
diff -u -r1.93 viewer.c
--- viewer.c    25 May 2003 23:22:52 -0000      1.93
+++ viewer.c    30 May 2003 16:22:25 -0000
@@ -206,12 +206,6 @@
         return err;
     }
     else if ( err == errNone ) {
-        /* Because of a bug caused somewhere by using OS5, if we try loading
-           up any form other than the library, the device will crash.
-           Placing this lastForm definition here until I can figure out why */
-        if ( Support50() )
-            Prefs()->lastForm = frmLibrary;
-
         if ( Prefs()->lastForm != GetValidForm( frmLibrary ) ) {
             err = OpenLastDocument();
             if ( err == errNone )
@@ -645,9 +639,14 @@
 
     err = errNone;
     if ( cmd == sysAppLaunchCmdNormalLaunch ) {
-        err = StartApplication( NULL );
-        if ( err != errNone )
+        ErrTry {
+            err = StartApplication( NULL );
+            if ( err != errNone )
+                ErrThrow( err );
+        }
+        ErrCatch( err ) {
             return err;
+        } ErrEndCatch
 
         EventLoop();
         StopApplication();

-- 
Adam McDaniel
Array.org
Calgary, AB, Canada
_______________________________________________
plucker-dev mailing list
[EMAIL PROTECTED]
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to