diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2018-11-22 23:26:32 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2018-11-22 23:26:32 +0100 |
| commit | d48f97180dacceb6d03c79d69044e19ba0af3fbc (patch) | |
| tree | f409da1d48adf2858e27c933490a3e4007c85e70 | |
| parent | a7f696c0772c558c41c7050496bc658706902af2 (diff) | |
| download | PROJ-d48f97180dacceb6d03c79d69044e19ba0af3fbc.tar.gz PROJ-d48f97180dacceb6d03c79d69044e19ba0af3fbc.zip | |
Run reformat_cpp.sh on cs2cs.cpp
| -rw-r--r-- | src/cs2cs.cpp | 461 |
1 files changed, 229 insertions, 232 deletions
diff --git a/src/cs2cs.cpp b/src/cs2cs.cpp index 439b172c..6f302ae3 100644 --- a/src/cs2cs.cpp +++ b/src/cs2cs.cpp @@ -33,41 +33,43 @@ #include <stdlib.h> #include <string.h> +// PROJ include order is sensitive +// clang-format off #include "proj.h" #include "projects.h" #include "emess.h" +// clang-format on #define MAX_LINE 1000 #define MAX_PARGS 100 -static projPJ fromProj, toProj; +static projPJ fromProj, toProj; -static int -reversein = 0, /* != 0 reverse input arguments */ -reverseout = 0, /* != 0 reverse output arguments */ -echoin = 0, /* echo input data to output line */ -tag = '#'; /* beginning of line tag character */ +static int reversein = 0, /* != 0 reverse input arguments */ + reverseout = 0, /* != 0 reverse output arguments */ + echoin = 0, /* echo input data to output line */ + tag = '#'; /* beginning of line tag character */ -static const char *oform = nullptr; /* output format for x-y or decimal degrees */ +static const char *oform = + nullptr; /* output format for x-y or decimal degrees */ static char oform_buffer[16]; /* buffer for oform when using -d */ static const char *oterr = "*\t*"; /* output line for unprojectable input */ static const char *usage = -"%s\nusage: %s [ -dDeEfIlrstvwW [args] ] [ +opts[=arg] ]\n" -" [+to [+opts[=arg] [ files ]\n"; + "%s\nusage: %s [ -dDeEfIlrstvwW [args] ] [ +opts[=arg] ]\n" + " [+to [+opts[=arg] [ files ]\n"; -static double (*informat)(const char *, +static double (*informat)(const char *, char **); /* input data deformatter function */ - /************************************************************************/ /* process() */ /* */ /* File processing function. */ /************************************************************************/ -static void process(FILE *fid) +static void process(FILE *fid) { - char line[MAX_LINE+3], *s, pline[40]; + char line[MAX_LINE + 3], *s, pline[40]; projUV data; for (;;) { @@ -79,8 +81,9 @@ static void process(FILE *fid) if (!strchr(s, '\n')) { /* overlong line */ int c; (void)strcat(s, "\n"); - /* gobble up to newline */ - while ((c = fgetc(fid)) != EOF && c != '\n') ; + /* gobble up to newline */ + while ((c = fgetc(fid)) != EOF && c != '\n') + ; } if (*s == tag) { fputs(line, stdout); @@ -95,14 +98,15 @@ static void process(FILE *fid) data.v = (*informat)(s, &s); } - z = strtod( s, &s ); + z = strtod(s, &s); if (data.v == HUGE_VAL) data.u = HUGE_VAL; - if (!*s && (s > line)) --s; /* assumed we gobbled \n */ + if (!*s && (s > line)) + --s; /* assumed we gobbled \n */ - if ( echoin) { + if (echoin) { char t; t = *s; *s = '\0'; @@ -112,19 +116,18 @@ static void process(FILE *fid) } if (data.u != HUGE_VAL) { - if( pj_transform( fromProj, toProj, 1, 0, - &(data.u), &(data.v), &z ) != 0 ) - { + if (pj_transform(fromProj, toProj, 1, 0, &(data.u), &(data.v), + &z) != 0) { data.u = HUGE_VAL; data.v = HUGE_VAL; - emess(-3,"pj_transform(): %s", pj_strerrno(pj_errno)); + emess(-3, "pj_transform(): %s", pj_strerrno(pj_errno)); } } if (data.u == HUGE_VAL) /* error output */ fputs(oterr, stdout); - else if (pj_is_latlong(toProj) && !oform) { /*ascii DMS output */ + else if (pj_is_latlong(toProj) && !oform) { /*ascii DMS output */ if (reverseout) { fputs(rtodms(pline, data.v, 'N', 'S'), stdout); putchar('\t'); @@ -136,28 +139,30 @@ static void process(FILE *fid) } } else { /* x-y or decimal degree ascii output */ - if ( proj_angular_output(toProj, PJ_FWD) ) { + if (proj_angular_output(toProj, PJ_FWD)) { data.v *= RAD_TO_DEG; data.u *= RAD_TO_DEG; } if (reverseout) { - printf(oform,data.v); putchar('\t'); - printf(oform,data.u); + printf(oform, data.v); + putchar('\t'); + printf(oform, data.u); } else { - printf(oform,data.u); putchar('\t'); - printf(oform,data.v); + printf(oform, data.u); + putchar('\t'); + printf(oform, data.v); } } putchar(' '); - if( oform != nullptr ) - printf( oform, z ); + if (oform != nullptr) + printf(oform, z); else - printf( "%.3f", z ); - if( s ) - printf( "%s", s ); + printf("%.3f", z); + if (s) + printf("%s", s); else - printf( "\n" ); + printf("\n"); } } @@ -165,187 +170,190 @@ static void process(FILE *fid) /* main() */ /************************************************************************/ -int main(int argc, char **argv) -{ +int main(int argc, char **argv) { char *arg; char **eargv = argv; char *from_argv[MAX_PARGS]; char *to_argv[MAX_PARGS]; FILE *fid; - int from_argc=0, to_argc=0, eargc = 0, mon = 0; + int from_argc = 0, to_argc = 0, eargc = 0, mon = 0; int have_to_flag = 0, inverse = 0, i; int use_env_locale = 0; /* This is just to check that pj_init() is locale-safe */ /* Used by nad/testvarious */ - if( getenv("PROJ_USE_ENV_LOCALE") != nullptr ) + if (getenv("PROJ_USE_ENV_LOCALE") != nullptr) use_env_locale = 1; - if ((emess_dat.Prog_name = strrchr(*argv,DIR_CHAR)) != nullptr) + if ((emess_dat.Prog_name = strrchr(*argv, DIR_CHAR)) != nullptr) ++emess_dat.Prog_name; - else emess_dat.Prog_name = *argv; - inverse = ! strncmp(emess_dat.Prog_name, "inv", 3); - if (argc <= 1 ) { + else + emess_dat.Prog_name = *argv; + inverse = !strncmp(emess_dat.Prog_name, "inv", 3); + if (argc <= 1) { (void)fprintf(stderr, usage, pj_get_release(), emess_dat.Prog_name); - exit (0); + exit(0); } /* process run line arguments */ while (--argc > 0) { /* collect run line arguments */ - if(**++argv == '-') for(arg = *argv;;) { - switch(*++arg) { - case '\0': /* position of "stdin" */ - if (arg[-1] == '-') eargv[eargc++] = const_cast<char*>("-"); - break; - case 'v': /* monitor dump of initialization */ - mon = 1; - continue; - case 'I': /* alt. method to spec inverse */ - inverse = 1; - continue; - case 'E': /* echo ascii input to ascii output */ - echoin = 1; - continue; - case 't': /* set col. one char */ - if (arg[1]) tag = *++arg; - else emess(1,"missing -t col. 1 tag"); - continue; - case 'l': /* list projections, ellipses or units */ - if (!arg[1] || arg[1] == 'p' || arg[1] == 'P') { - /* list projections */ - const struct PJ_LIST *lp; - int do_long = arg[1] == 'P', c; - const char *str; - - for (lp = proj_list_operations() ; lp->id ; ++lp) { - (void)printf("%s : ", lp->id); - if (do_long) /* possibly multiline description */ - (void)puts(*lp->descr); - else { /* first line, only */ - str = *lp->descr; - while ((c = *str++) && c != '\n') - putchar(c); - putchar('\n'); + if (**++argv == '-') + for (arg = *argv;;) { + switch (*++arg) { + case '\0': /* position of "stdin" */ + if (arg[-1] == '-') + eargv[eargc++] = const_cast<char *>("-"); + break; + case 'v': /* monitor dump of initialization */ + mon = 1; + continue; + case 'I': /* alt. method to spec inverse */ + inverse = 1; + continue; + case 'E': /* echo ascii input to ascii output */ + echoin = 1; + continue; + case 't': /* set col. one char */ + if (arg[1]) + tag = *++arg; + else + emess(1, "missing -t col. 1 tag"); + continue; + case 'l': /* list projections, ellipses or units */ + if (!arg[1] || arg[1] == 'p' || arg[1] == 'P') { + /* list projections */ + const struct PJ_LIST *lp; + int do_long = arg[1] == 'P', c; + const char *str; + + for (lp = proj_list_operations(); lp->id; ++lp) { + (void)printf("%s : ", lp->id); + if (do_long) /* possibly multiline description */ + (void)puts(*lp->descr); + else { /* first line, only */ + str = *lp->descr; + while ((c = *str++) && c != '\n') + putchar(c); + putchar('\n'); + } } - } - } else if (arg[1] == '=') { /* list projection 'descr' */ - const struct PJ_LIST *lp; - - arg += 2; - for (lp = proj_list_operations() ; lp->id ; ++lp) - if (!strcmp(lp->id, arg)) { - (void)printf("%9s : %s\n", lp->id, *lp->descr); - break; + } else if (arg[1] == '=') { /* list projection 'descr' */ + const struct PJ_LIST *lp; + + arg += 2; + for (lp = proj_list_operations(); lp->id; ++lp) + if (!strcmp(lp->id, arg)) { + (void)printf("%9s : %s\n", lp->id, *lp->descr); + break; + } + } else if (arg[1] == 'e') { /* list ellipses */ + const struct PJ_ELLPS *le; + + for (le = proj_list_ellps(); le->id; ++le) + (void)printf("%9s %-16s %-16s %s\n", le->id, + le->major, le->ell, le->name); + } else if (arg[1] == 'u') { /* list units */ + const struct PJ_UNITS *lu; + + for (lu = proj_list_units(); lu->id; ++lu) + (void)printf("%12s %-20s %s\n", lu->id, + lu->to_meter, lu->name); + } else if (arg[1] == 'd') { /* list datums */ + const struct PJ_DATUMS *ld; + + printf("__datum_id__ __ellipse___ " + "__definition/" + "comments______________________________\n"); + for (ld = pj_get_datums_ref(); ld->id; ++ld) { + printf("%12s %-12s %-30s\n", ld->id, ld->ellipse_id, + ld->defn); + if (ld->comments != nullptr && + strlen(ld->comments) > 0) + printf("%25s %s\n", " ", ld->comments); } - } else if (arg[1] == 'e') { /* list ellipses */ - const struct PJ_ELLPS *le; - - for (le = proj_list_ellps(); le->id ; ++le) - (void)printf("%9s %-16s %-16s %s\n", - le->id, le->major, le->ell, le->name); - } else if (arg[1] == 'u') { /* list units */ - const struct PJ_UNITS *lu; - - for (lu = proj_list_units(); lu->id ; ++lu) - (void)printf("%12s %-20s %s\n", - lu->id, lu->to_meter, lu->name); - } else if (arg[1] == 'd') { /* list datums */ - const struct PJ_DATUMS *ld; - - printf("__datum_id__ __ellipse___ __definition/comments______________________________\n" ); - for (ld = pj_get_datums_ref(); ld->id ; ++ld) - { - printf("%12s %-12s %-30s\n", - ld->id, ld->ellipse_id, ld->defn); - if( ld->comments != nullptr && strlen(ld->comments) > 0 ) - printf( "%25s %s\n", " ", ld->comments ); - } - } else if( arg[1] == 'm') { /* list prime meridians */ - const struct PJ_PRIME_MERIDIANS *lpm; - - for (lpm = proj_list_prime_meridians(); lpm->id ; ++lpm) - (void)printf("%12s %-30s\n", - lpm->id, lpm->defn); - } else - emess(1,"invalid list option: l%c",arg[1]); - exit(0); - /* cppcheck-suppress duplicateBreak */ - continue; /* artificial */ - case 'e': /* error line alternative */ - if (--argc <= 0) - noargument: - emess(1,"missing argument for -%c",*arg); - oterr = *++argv; - continue; - case 'W': /* specify seconds precision */ - case 'w': /* -W for constant field width */ - { - char c = arg[1]; - if (c != 0 && isdigit(c)) { - set_rtodms(c - '0', *arg == 'W'); - ++arg; - } else - emess(1,"-W argument missing or non-digit"); - continue; - } - case 'f': /* alternate output format degrees or xy */ - if (--argc <= 0) goto noargument; - oform = *++argv; - continue; - case 'r': /* reverse input */ - reversein = 1; - continue; - case 's': /* reverse output */ - reverseout = 1; - continue; - case 'D': /* set debug level */ - if (--argc <= 0) goto noargument; - pj_ctx_set_debug( pj_get_default_ctx(), atoi(*++argv)); - continue; - case 'd': - if (--argc <= 0) goto noargument; - sprintf(oform_buffer, "%%.%df", atoi(*++argv)); - oform = oform_buffer; - break; - default: - emess(1, "invalid option: -%c",*arg); + } else if (arg[1] == 'm') { /* list prime meridians */ + const struct PJ_PRIME_MERIDIANS *lpm; + + for (lpm = proj_list_prime_meridians(); lpm->id; ++lpm) + (void)printf("%12s %-30s\n", lpm->id, lpm->defn); + } else + emess(1, "invalid list option: l%c", arg[1]); + exit(0); + /* cppcheck-suppress duplicateBreak */ + continue; /* artificial */ + case 'e': /* error line alternative */ + if (--argc <= 0) + noargument: + emess(1, "missing argument for -%c", *arg); + oterr = *++argv; + continue; + case 'W': /* specify seconds precision */ + case 'w': /* -W for constant field width */ + { + char c = arg[1]; + if (c != 0 && isdigit(c)) { + set_rtodms(c - '0', *arg == 'W'); + ++arg; + } else + emess(1, "-W argument missing or non-digit"); + continue; + } + case 'f': /* alternate output format degrees or xy */ + if (--argc <= 0) + goto noargument; + oform = *++argv; + continue; + case 'r': /* reverse input */ + reversein = 1; + continue; + case 's': /* reverse output */ + reverseout = 1; + continue; + case 'D': /* set debug level */ + if (--argc <= 0) + goto noargument; + pj_ctx_set_debug(pj_get_default_ctx(), atoi(*++argv)); + continue; + case 'd': + if (--argc <= 0) + goto noargument; + sprintf(oform_buffer, "%%.%df", atoi(*++argv)); + oform = oform_buffer; + break; + default: + emess(1, "invalid option: -%c", *arg); + break; + } break; } - break; - - } else if (strcmp(*argv,"+to") == 0 ) { + else if (strcmp(*argv, "+to") == 0) { have_to_flag = 1; } else if (**argv == '+') { /* + argument */ - if( have_to_flag ) - { - if( to_argc < MAX_PARGS ) + if (have_to_flag) { + if (to_argc < MAX_PARGS) to_argv[to_argc++] = *argv + 1; else - emess(1,"overflowed + argument table"); - } - else - { + emess(1, "overflowed + argument table"); + } else { if (from_argc < MAX_PARGS) from_argv[from_argc++] = *argv + 1; else - emess(1,"overflowed + argument table"); + emess(1, "overflowed + argument table"); } } else /* assumed to be input file name(s) */ eargv[eargc++] = *argv; } - if (eargc == 0 ) /* if no specific files force sysin */ - eargv[eargc++] = const_cast<char*>("-"); + if (eargc == 0) /* if no specific files force sysin */ + eargv[eargc++] = const_cast<char *>("-"); - /* + /* * If the user has requested inverse, then just reverse the * coordinate systems. */ - if( inverse ) - { - int argcount; - - for( i = 0; i < MAX_PARGS; i++ ) - { + if (inverse) { + int argcount; + + for (i = 0; i < MAX_PARGS; i++) { arg = from_argv[i]; from_argv[i] = to_argv[i]; to_argv[i] = arg; @@ -356,93 +364,82 @@ int main(int argc, char **argv) to_argc = argcount; } - if( use_env_locale ) - { + if (use_env_locale) { /* Set locale from environment */ setlocale(LC_ALL, ""); } - if( from_argc == 0 && to_argc != 0 ) - { + if (from_argc == 0 && to_argc != 0) { /* we will generate the from proj as the latlong of the +to in a bit */ - } - else if (!(fromProj = pj_init(from_argc, from_argv))) - { - printf( "Using from definition: " ); - for( i = 0; i < from_argc; i++ ) - printf( "%s ", from_argv[i] ); - printf( "\n" ); - - emess(3,"projection initialization failure\ncause: %s", + } else if (!(fromProj = pj_init(from_argc, from_argv))) { + printf("Using from definition: "); + for (i = 0; i < from_argc; i++) + printf("%s ", from_argv[i]); + printf("\n"); + + emess(3, "projection initialization failure\ncause: %s", pj_strerrno(pj_errno)); } - if( to_argc == 0 ) - { - if (!(toProj = pj_latlong_from_proj( fromProj ))) - { - printf( "Using to definition: " ); - for( i = 0; i < to_argc; i++ ) - printf( "%s ", to_argv[i] ); - printf( "\n" ); - - emess(3,"projection initialization failure\ncause: %s", + if (to_argc == 0) { + if (!(toProj = pj_latlong_from_proj(fromProj))) { + printf("Using to definition: "); + for (i = 0; i < to_argc; i++) + printf("%s ", to_argv[i]); + printf("\n"); + + emess(3, "projection initialization failure\ncause: %s", pj_strerrno(pj_errno)); - } - } - else if (!(toProj = pj_init(to_argc, to_argv))) - { - printf( "Using to definition: " ); - for( i = 0; i < to_argc; i++ ) - printf( "%s ", to_argv[i] ); - printf( "\n" ); - - emess(3,"projection initialization failure\ncause: %s", + } + } else if (!(toProj = pj_init(to_argc, to_argv))) { + printf("Using to definition: "); + for (i = 0; i < to_argc; i++) + printf("%s ", to_argv[i]); + printf("\n"); + + emess(3, "projection initialization failure\ncause: %s", pj_strerrno(pj_errno)); } - if( from_argc == 0 && toProj != nullptr) - { - if (!(fromProj = pj_latlong_from_proj( toProj ))) - { - printf( "Using to definition: " ); - for( i = 0; i < to_argc; i++ ) - printf( "%s ", to_argv[i] ); - printf( "\n" ); - - emess(3,"projection initialization failure\ncause: %s", + if (from_argc == 0 && toProj != nullptr) { + if (!(fromProj = pj_latlong_from_proj(toProj))) { + printf("Using to definition: "); + for (i = 0; i < to_argc; i++) + printf("%s ", to_argv[i]); + printf("\n"); + + emess(3, "projection initialization failure\ncause: %s", pj_strerrno(pj_errno)); - } + } } - if( use_env_locale ) - { + if (use_env_locale) { /* Restore C locale to avoid issues in parsing/outputting numbers*/ setlocale(LC_ALL, "C"); } if (mon) { - printf( "%c ---- From Coordinate System ----\n", tag ); + printf("%c ---- From Coordinate System ----\n", tag); pj_pr_list(fromProj); - printf( "%c ---- To Coordinate System ----\n", tag ); + printf("%c ---- To Coordinate System ----\n", tag); pj_pr_list(toProj); } /* set input formatting control */ - if( !fromProj->is_latlong ) + if (!fromProj->is_latlong) informat = strtod; else { informat = dmstor; } - if( !toProj->is_latlong && !oform ) + if (!toProj->is_latlong && !oform) oform = "%.2f"; /* process input file list */ - for ( ; eargc-- ; ++eargv) { + for (; eargc--; ++eargv) { if (**eargv == '-') { fid = stdin; - emess_dat.File_name = const_cast<char*>("<stdin>"); + emess_dat.File_name = const_cast<char *>("<stdin>"); } else { if ((fid = fopen(*eargv, "rt")) == nullptr) { @@ -457,8 +454,8 @@ int main(int argc, char **argv) emess_dat.File_name = nullptr; } - pj_free( fromProj ); - pj_free( toProj ); + pj_free(fromProj); + pj_free(toProj); pj_deallocate_grids(); |
