Przemek

Przemysław Czerpak wrote:
> 
>> > I thought that you want to introduce full separation of compiled
> 
> the #pragma low level behavior strictly depends on
> current compiler implementation. It may change in
> 

My current requirement is to just get rid of the unresolved 
external "_errno" which is called in ppcore.c in pp.lib in xHarbour 
of year 2007 October.

I have tweaked hbMK2 ( my local copy ) to send PRG sources 
to harbour.exe one-by-one and is sufficient to cover all discussed 
above, though I would like to see this happen in a proper manner 
in Harbour.

Because this project has to be compiled with older xHarbour which 
I wanted to do so through hbIDE, and where I think we will not be 
touching the compiler code at all, I am looking for some out of the 
compiler code solution.

In one of my prgs I am calling this code:

--------------------------

   pPP := __PP_Init()
   __PP_AddRule( pPP, '#xtranslate TYPE      => $$TY       '    )
   __PP_AddRule( pPP, '#xtranslate str     ( => $$STR^Rdd('     )
   __PP_AddRule( pPP, '#xtranslate substr  ( => $$SUBSTR^Rdd('  )
   __PP_AddRule( pPP, '#xtranslate dtos    ( => $$DTOS^Rdd('    )
   __PP_AddRule( pPP, '#xtranslate substr  ( => $$SUBSTR^Rdd('  )
   __PP_AddRule( pPP, '#xtranslate EMPTY   ( => $$EMPTY^Rdd('   )
   __PP_AddRule( pPP, '#xtranslate IF      ( => $$IF^Rdd('      )
   __PP_AddRule( pPP, '#xtranslate IIF     ( => $$IIF^Rdd('     )
   __PP_AddRule( pPP, '#xtranslate Reverse ( => $$REVERSE^Rdd(' )
   __PP_AddRule( pPP, '#xtranslate upper   ( => $$UPPER^Rdd('   )
   __PP_AddRule( pPP, '#xtranslate LOWER   ( => $$LOWER^Rdd('   )
   __PP_AddRule( pPP, '#xtranslate CTOD    ( => $$CTOD^Rdd('    )
   __PP_AddRule( pPP, '#xtranslate SECONDS ( => $$SECONDS^Rdd(' )
   __PP_AddRule( pPP, '#xtranslate Date    ( => $$DATE^Rdd('    )
   __PP_AddRule( pPP, '#xtranslate LEFT    ( => $$LEFT^Rdd('    )

   cExp :=__PP_Process( pPP, cExp )

   cExp := strtran( cExp, "==", "=" )
   do while .t.
      if ( n := at( '.and.', lower( cExp ) ) ) == 0
         exit
      endif
      cExp := substr( cExp, 1, n-1 ) + '&&' + substr( cExp, n+5 )
   enddo
   do while .t.
      if ( n := at( '.or.', lower( cExp ) ) ) == 0
         exit
      endif
      cExp := substr( cExp, 1, n-1 ) + '||' + substr( cExp, n+4 )
   enddo


   cExp := strtran( cExp, '$ $TY', 'Type' )
   cExp := strtran( cExp, '$$TY', 'Type' )
   cExp := strtran( cExp, "~" , "'" )
   cExp := strtran( cExp, "!" , "'" )

   if aStr <> nil
      for i := 1 to len( aStr )
         cExp := ParseByField( cExp, i, aStr, @aComp )
      next
   endif

   //////////////
   cExp := strtran( cExp, '$ $' , '$$'  )
   cExp := strtran( cExp, '+ '  , '+'   )
   cExp := strtran( cExp, '+$$' , '_$$' )

   cExp := strtran( cExp, '+{'  , '_{'  )
   cExp := strtran( cExp, '}+'  , '}_'  )
   cExp := strtran( cExp, ')+(' , ')_(' )


   Return cExp

--------------------------------------------


Maybe this code is the culprit. May be I 
need to do it somehow differently. The above 
code belongs to CacheRDD I developed on top of  UsrRDD.

I tried to introduce 
   int errno()
   {
      return 0;
   }
but other type of warnings are there, so I believe this is 
not the solution.

Any help is appreciated. 
I am really struck at this.


-----
     enjoy hbIDEing...
        Pritpal Bedi 
http://hbide.vouch.info/
-- 
View this message in context: 
http://harbour-devel.1590103.n2.nabble.com/hbMK2-xHarbour-Oct-2007-Unresolved-External-tp5033192p5041228.html
Sent from the harbour-devel mailing list archive at Nabble.com.
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to