|
@@ -28,7 +28,7 @@
|
|
|
|
|
|
static int check_xy(int shell);
|
|
|
|
|
|
-void print_projinfo(int shell)
|
|
|
+void print_projinfo(int shell, const char *force_epsg)
|
|
|
{
|
|
|
int i;
|
|
|
char path[GPATH_MAX];
|
|
@@ -50,20 +50,28 @@ void print_projinfo(int shell)
|
|
|
the contents of this file are not used by pj_*() routines at all */
|
|
|
G_file_name(path, "", "PROJ_EPSG", "PERMANENT");
|
|
|
if (access(path, F_OK) == 0) {
|
|
|
- struct Key_Value *in_epsg_key;
|
|
|
- in_epsg_key = G_read_key_value_file(path);
|
|
|
+ const char *epsg_value, *epsg_key;
|
|
|
+ struct Key_Value *in_epsg_key;
|
|
|
+
|
|
|
+ if (force_epsg) {
|
|
|
+ epsg_key = "epgs";
|
|
|
+ epsg_value = force_epsg;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ in_epsg_key = G_read_key_value_file(path);
|
|
|
+ epsg_key = in_epsg_key->key[0];
|
|
|
+ epsg_value = in_epsg_key->value[0];
|
|
|
+ }
|
|
|
if (!shell) {
|
|
|
fprintf(stdout,
|
|
|
"-PROJ_EPSG-------------------------------------------------\n");
|
|
|
- fprintf(stdout, "%-11s: %s\n", in_epsg_key->key[0],
|
|
|
- in_epsg_key->value[0]);
|
|
|
+ fprintf(stdout, "%-11s: %s\n", epsg_key, epsg_value);
|
|
|
}
|
|
|
else
|
|
|
- fprintf(stdout, "%s=%s\n", in_epsg_key->key[0],
|
|
|
- in_epsg_key->value[0]);
|
|
|
+ fprintf(stdout, "%s=%s\n", epsg_key, epsg_value);
|
|
|
|
|
|
- if (in_epsg_key != NULL)
|
|
|
- G_free_key_value(in_epsg_key);
|
|
|
+ if (!force_epsg)
|
|
|
+ G_free_key_value(in_epsg_key);
|
|
|
}
|
|
|
|
|
|
if (!shell)
|