Like Adrien says, the first necessary step is putting some logging
instruction inside the "if" body to see 1) if it actually gets
executed 2) what is the value of osVersionMinor that you used for
testing in the if condition. Also, it's obvious but has to be asked:
did you try a clean build, are you sure you're using the right binary,
etc.?

On Jan 26, 7:25 pm, Harry van der Wolf <[email protected]> wrote:
> Hi programmers,
>
> 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