Ahhh right... *bangs his head against the wall*
Regards,
Sven
On 01.05.2011 09:36, Ludo Brands wrote:
That is why it is conditional :
su_sockaddr_u = record
(...)
{$ifdef DOCUMENTATION_ONLY}
0 : ( su_len : byte );
1 : ( su_family : byte );
2 : ( su_port : word );
{$else}
3 : ( su_dummy : smallint );
{$endif}
(...)
end;
Cheers, Ludo
-----Message d'origine-----
De : fpc-pascal-boun...@lists.freepascal.org
[mailto:fpc-pascal-boun...@lists.freepascal.org] De la part de Sven Barth
Envoyé : dimanche 1 mai 2011 00:19
À : fpc-pascal@lists.freepascal.org
Objet : Re: RE : RE : RE : [fpc-pascal] How to translate this union ?
Question:
In case of DOCUMENTATION_ONLY not defined, does
su_sockaddr_u = record
(...)
1 : ( su_sa.sa_family : byte )
(...)
end;
really compile?
(From what I know about Pascal I would say: no)
Regards,
Sven
On 30.04.2011 10:53, Ludo Brands wrote:
Using macros, the translation looks like
{$MACRO ON}
{$ifndef DOCUMENTATION_ONLY}
{$if SU_HAVE_SOCKADDR_SA_LEN<>0}
{$define su_len:=su_sa.sa_len}
{$else}
{$define su_len:=su_array[0]}
{$endif}
{$define su_family:=su_sa.sa_family}
{$define su_port:=su_sin.sin_port}
{$define su_scope_id:=su_array32[6]}
{$endif}
type
su_sockaddr_u = record
case longint of
{$ifdef DOCUMENTATION_ONLY}
0 : ( su_len : byte );
1 : ( su_family : byte );
2 : ( su_port : word );
{$else}
3 : ( su_dummy : smallint );
{$endif}
4 : ( su_array : array[0..31] of char );
5 : ( su_array16 : array[0..15] of word );
6 : ( su_array32 : array[0..7] of longword );
7 : ( su_sa : sockaddr );
8 : ( su_sin : sockaddr_in );
{$if SU_HAVE_IN6<>0}
9 : ( su_sin6 : sockaddr_in6 );
{$endif}
{$ifdef DOCUMENTATION_ONLY}
10 : ( su_scope_id : longword );
{$endif}
end;
-----Message d'origine-----
*De :* fpc-pascal-boun...@lists.freepascal.org
[mailto:fpc-pascal-boun...@lists.freepascal.org] *De la part de*
Ludo Brands
*Envoyé :* samedi 30 avril 2011 10:29
*À :* 'FPC-Pascal users discussions'
*Objet :* RE : RE : [fpc-pascal] How to translate this union ?
Forget my previous reply. I found the original header file on
sourceforge.
I have alse a better understanding now of what the code is supposed
to do: in case DOCUMENTATION_ONLY is not defined, a reference to,
for example, su_sockaddr_u.su_family will be subsstituted by
su_sockaddr_u.susa.sa_family.
You could use macros and do a {$define su_family:=susa.sa_family}
with the following limitations:
- if you have variables or other record members named su_family, not
part of the su_sockaddr_u record, they will be renamed also.
- it works only for the units that include your .inc file.
-----Message d'origine-----
*De :* fpc-pascal-boun...@lists.freepascal.org
[mailto:fpc-pascal-boun...@lists.freepascal.org] *De la part de*
Ludo Brands
*Envoyé :* samedi 30 avril 2011 09:18
*À :* 'FPC-Pascal users discussions'
*Objet :* RE : [fpc-pascal] How to translate this union ?
Can you post the original c code? You point to a file that seems
to be a reworked output from h2pas. As it is now, it indeed
doesn't make any sense. I would think the
su_len,su_family,su_port should make up a record but they aren't.
I suggest you move the #defines inside the union declaration to
somewhere before the union declaration. It'll double up the
ifdef's but make the code so much more readable.
-----Message d'origine-----
*De :* fpc-pascal-boun...@lists.freepascal.org
[mailto:fpc-pascal-boun...@lists.freepascal.org] *De la part de*
ik
*Envoyé :* vendredi 29 avril 2011 22:15
*À :* FPC-Pascal users discussions
*Objet :* [fpc-pascal] How to translate this union ?
Hello list,
I'm trying to translate the following union
<https://github.com/ik5/sofia-sip/blob/master/src/lib/sui.inc#L199>
to Pascal, but I do not understand it, and so does h2pas.
How to translate it ?
Thanks,
Ido
LINESIP - Opening the source for communication
http://www.linesip.com
http://www.linesip.co.il
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal