Thanks all for your suggestions and the time you spend on this issue.

However, a couple of mails back I reported:
*"Hi Philipp,

Thanks for this suggestion, it makes a better testing routine.
It runs both routines correctly on the Leopard and Tiger.
I now found an unexpected side effect. For my patch modification I needed to
add three extra header files among which the wxutil.h. This header file is
obviously crucial.
Without wxutil.h ("original patch") => patch on Leopard works, patch doesn't
work on Tiger and for Tiger I need to compile completely without the patch.

With wxutil.h (and some other settings): "original patch" for Leopard works,
"empty code" doesn't work anymore on Tiger. It appears that this header file
is the solution. A slightly modified patch now works both on tiger and
Leopard without the neccessity of a version check.
However, I test on Intel in Rosetta mode. A final test need to be done on
real ppc's.

I will ask a few people off-list."*

I released a new bundle with these modified patch including the wxutil.h
header file. It is now in test within a small group. I hope to get their
feedback within a few days.

Hoi,
Harry


2009/1/29 Pedro Venda <[email protected]>

>
> Hi Harry,
>
> I am not entirely sure of what are the pieces of code you want
> executed for either cases but I noticed that you are comparing
> osVersionMinor <= 0x50 in both code pieces. Also you're AND'ing both
> comparisons; Maybe this is sounds dumb but be reminded that if the
> first argument of the boolean expression yields false then the second
> isn't even tested (the trouble bit).
>
> From here, I would follow Lukáš's advice and make absolutely sure that
> your comparisons are working - i.e. you're comparing numbers with
> numbers, strings with strings, etc. Debug the code with traces, tap
> onto the variables you're using for comparision and/or do printfs to
> figure out what's happening where and why. Separate every if statement
> (where clauses are composed of other comparisons), put else branches
> on all ifs, etc. Seems dumb, I know, but will get you sorted.
>
> Hope it helps.
> Cheers,
> Pedro.
>
> On Jan 26, 6:25 pm, Harry van der Wolf <[email protected]> wrote:
> > I have problems implementing a patch for Hugin. We need a hack to test
> for
> > OSX Leopard (10.5.x) and OSX Tiger (10.4.x). I do this by using
> > wxGetOsVersion. As such this work.
> > The version is reported in hex.
> > Leopard 10.5.6 becomes 10.56. Major version 0x10 (=16 decimal), minor
> > version 0x56 (=86 decimal)
> > Tiger 10.4.11 becomes  16 decimal, minor version < 80 dec
> >
> > There are two pieces of code:
> >
> > #if defined __WXMAC__ && defined __ppc__
> >
> >     int osVersionMajor;
> >     int osVersionMinor;
> >
> >     int os = wxGetOsVersion(&osVersionMajor, &osVersionMinor);
> >
> >      cerr << "osVersionCheck: os is " << os << "\n"  << endl;
> >      cerr << "osVersionCheck: osVersionMajor = " << osVersionMajor <<
> endl;
> >      cerr << "osVersionCheck: osVersionMinor = " << osVersionMinor <<
> endl;
> >
> >     if ((osVersionMajor == 0x10) && (osVersionMinor >= 0x50))
> >     {
> >     //let the child process exit without becoming zombie
> >     //may do some harm to internal handling by wxWidgets, but hey it's
> not
> > working anyway
> >     signal(SIGCHLD,SIG_IGN);
> >     }
> > #endif
> >
> > And the second part is
> > #if defined __WXMAC__ && defined __ppc__
> >     int osVersionMajor;
> >     int osVersionMinor;
> >
> >     int os = wxGetOsVersion(&osVersionMajor, &osVersionMinor);
> >
> >     cerr << "osVersionCheck: os is " << os << "\n"  << endl;
> >     cerr << "osVersionCheck: osVersionMajor = " << osVersionMajor <<
> endl;
> >     cerr << "osVersionCheck: osVersionMinor = " << osVersionMinor <<
> endl;
> >
> >     if ((osVersionMajor == 0x10) && (osVersionMinor >= 0x50))
> >     {
> >         if(m_pidLast)
> >         {
> >             if(kill((pid_t)m_pidLast,0)!=0) //if not pid exists
> >             {
> >                 DEBUG_DEBUG("Found terminated process: " <<
> > (pid_t)m_pidLast)
> >
> >                 // probably should clean up the wxProcess object which
> was
> > newed when the process was launched.
> >                 // for now, nevermind the tiny memory leak... it's a hack
> to
> > workaround the bug anyway
> >
> >                 //notify dialog that it's finished.
> >                 if (this->GetParent()) {
> >                     wxProcessEvent event( wxID_ANY, m_pidLast, 0); //
> assume
> > 0 exit code
> >                     event.SetEventObject( this );
> >                     DEBUG_TRACE("Sending wxProcess event");
> >                     this->GetParent()->ProcessEvent( event );
> >                 }
> >             }
> >         }
> >     }
> > #endif
> >
> > The test checks for 0x10 as major and >=0x50 as minor version.
> > Leopard system.log:
> > osVersionCheck: os is 2
> > osVersionCheck: osVersionMajor = 16
> > osVersionCheck: osVersionMinor = 86
> > Tiger log:
> > osVersionCheck: os is 2
> > osVersionCheck: osVersionMajor = 16
> > osVersionCheck: osVersionMinor = 73
> >
> > Leopard mentions 16 and 86 and the code is executed => OK
> > Tiger mentions 16 and 73 (73 being smaller than 80 (0x50). Still the code
> is
> > executed => Tiger Hugin hangs.
> > If I completely remove the code Hugin hangs on Leopard and runs on Tiger,
> > which is expected behaviour.
> > I'm completely blind why my code is executed in both cases even though
> the
> > second version check for both code snippets is false. I assume I'm doing
> > something wrong but I have no idea what it is.
> >
> > Please can any programmer shine a light on this.
> >
> > Harry
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/hugin-ptx
-~----------~----~----~----~------~----~------~--~---

Reply via email to