[Proj] Code style in Proj

Kristian Evers kreve at sdfe.dk
Mon Apr 30 08:00:01 EST 2018


I think it looks good. I tried compiling the code and again I had the problem with declarations like

XY xy = {0.0, 0.0};

I’ve fixed those in a fork of your gist. See revision 2 in [0] for a proposed solution that I think
is in line with your ideas

I like how you’ve separated includes from the standard library on the PROJ internal includes. On
a related note (for those who don’t already know) I have recently introduced the proj_math.h
header which is intended as a PROJ replacement of math.h. proj_math.h’s purpose in life is to
make sure that we can use C99 math functions on systems where they are not available.
proj_math.h includes math.h and defines functions such as isnan() and hypot(). This way they
can be used as you would on a C99-compatible system as long as proj_math.h is included.
See revision 3 in [0].

Would you be willing to write up a simple style guide for PROJ based on the ideas you have presented in
this thread?


[0] https://gist.github.com/kbevers/17ec703942646e401b28a0975b28771d/revisions

On 24 Apr 2018, at 12:05, Mateusz Loskot <mateusz at loskot.net<mailto:mateusz at loskot.net>> wrote:

On 24 April 2018 at 11:45, Thomas Knudsen <knudsen.thomas at gmail.com<mailto:knudsen.thomas at gmail.com>> wrote:
In C too, but since C99.

AFAIK this only applies to the "for (int i = 0;  i < n; i++)" syntax.

while (...) {
   int i = 123, j = 345;
   k = i + j;

has been correct (and imho, preferable) syntax since K&R C

AFAIK, it's about compound statement.
C89 requires declaration at the top of blocks, while C99 lifts that:

$ cat test.c
int main()
   int i = 0;
   while (i < 10)
       int j = 345;
       i = i + j;

       int z = 0;
       z = 1;
   int x = 1;

$ gcc -std=c89 -pedantic test.c
test.c: In function ‘main’:
test.c:14:5: warning: ISO C90 forbids mixed declarations and code
    int x = 1;

$ gcc -std=c99 -pedantic test.c

Best regards,
Mateusz Loskot, http://mateusz.loskot.net
Proj mailing list
Proj at lists.maptools.org<mailto:Proj at lists.maptools.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/proj/attachments/20180430/028fab85/attachment-0001.htm 

More information about the Proj mailing list