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)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour