All capitals by convention are definitions to values in c. That's why I renamed the structures to better names. That way people who like this convention -like me-as well as new programs can use the new types. They do not have to, the old names still work as definitions. I do not really see the issue there.
Simon Josefsson <[email protected]> wrote: >Ivan Shmakov <[email protected]> writes: > >>>>>>> Simon Josefsson <[email protected]> writes: >>>>>>> Nikos Mavrogiannopoulos <[email protected]> writes: >> >> […] >> >> >> The problem is that we need to have source compatibility. >> >> > We don't have that since we are removing some internal structs.. >> >> ? The applications' source code isn't expected to refer to the >> internals. > >The structs were exported in libtasn1.h, for 3.0 we are removing them. >So any code out there that relies on these structs will break due to >source level incompatibility. This will be rare (GnuTLS used it only in >one place) and possible to fix (using the new asn1_read_node_value()) >though. Changing the basic types without backwards compatibility hooks >will break all applications though, so that is not an option -- my point >was that instead of changing the basic types and adding backwards >compatibility hooks, we could also live with the old names that are in >the right namespace. While asn1_node and asn1_data_node_st look nicer >than ASN1_TYPE and ASN1_DATA_NODE I'm not sure changing them is worth >the costs of having all applications out there change their code, even >if ASN1_TYPE and ASN1_DATA_NODE will continue to work for some time. > >/Simon >
