1 /*
2 / auto_epsg_ext
3 /
4 / a tool autogenerating C code for SpatiaLite
5 / [spatial_ref_sys self-initialization routines]
6 /
7 / version 1.0, 2014 December 3
8 /
9 / Author: Sandro Furieri a.furieri@lqt.it
10 /
11 / Copyright (C) 2014  Alessandro Furieri
12 /
13 /    This program is free software: you can redistribute it and/or modify
14 /    it under the terms of the GNU General Public License as published by
15 /    the Free Software Foundation, either version 3 of the License, or
16 /    (at your option) any later version.
17 /
18 /    This program is distributed in the hope that it will be useful,
19 /    but WITHOUT ANY WARRANTY; without even the implied warranty of
20 /    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 /    GNU General Public License for more details.
22 /
23 /    You should have received a copy of the GNU General Public License
24 /    along with this program.  If not, see <http://www.gnu.org/licenses/>.
25 /
26 */
27 
28 #include <stdlib.h>
29 #include <stdio.h>
30 #include <string.h>
31 #include <time.h>
32 
33 struct epsg_entry
34 {
35 /* a struct wrapping an EPSG entry */
36     int srid;
37     int is_geographic;
38     int flipped_axes;
39     char *ref_sys_name;
40     char *proj4text;
41     char *srtext;
42     char *spheroid;
43     char *prime_meridian;
44     char *datum;
45     char *projection;
46     char *unit;
47     char *axis_1;
48     char *orientation_1;
49     char *axis_2;
50     char *orientation_2;
51     struct epsg_entry *next;
52 };
53 
54 struct epsg_dict
55 {
56 /* the EPSG dictionary */
57     struct epsg_entry *first;
58     struct epsg_entry *last;
59     struct epsg_entry **sorted;
60     int count;
61 };
62 
63 static void
free_epsg_entry(struct epsg_entry * p)64 free_epsg_entry (struct epsg_entry *p)
65 {
66 /* destroying an epsg_entry */
67     if (p->ref_sys_name)
68 	free (p->ref_sys_name);
69     if (p->proj4text)
70 	free (p->proj4text);
71     if (p->srtext)
72 	free (p->srtext);
73     if (p->spheroid)
74 	free (p->spheroid);
75     if (p->prime_meridian)
76 	free (p->prime_meridian);
77     if (p->datum)
78 	free (p->datum);
79     if (p->projection)
80 	free (p->projection);
81     if (p->unit)
82 	free (p->unit);
83     if (p->axis_1)
84 	free (p->axis_1);
85     if (p->orientation_1)
86 	free (p->orientation_1);
87     if (p->axis_2)
88 	free (p->axis_2);
89     if (p->orientation_2)
90 	free (p->orientation_2);
91     free (p);
92 }
93 
94 static void
free_epsg(struct epsg_dict * epsg)95 free_epsg (struct epsg_dict *epsg)
96 {
97 /* destroying the EPSG dictionary */
98     struct epsg_entry *pE;
99     struct epsg_entry *pEn;
100     pE = epsg->first;
101     while (pE)
102       {
103 	  pEn = pE->next;
104 	  free_epsg_entry (pE);
105 	  pE = pEn;
106       }
107     if (epsg->sorted)
108 	free (epsg->sorted);
109 }
110 
111 static void
epsg_insert(struct epsg_dict * epsg,int srid,int is_geographic,int flipped_axes,const char * unit,const char * axis_1,const char * orientation_1,const char * axis_2,const char * orientation_2,const char * spheroid,const char * prime_meridian,const char * datum,const char * projection,const char * name,const char * proj4text,const char * srtext)112 epsg_insert (struct epsg_dict *epsg, int srid, int is_geographic,
113 	     int flipped_axes, const char *unit, const char *axis_1,
114 	     const char *orientation_1, const char *axis_2,
115 	     const char *orientation_2, const char *spheroid,
116 	     const char *prime_meridian, const char *datum,
117 	     const char *projection, const char *name, const char *proj4text,
118 	     const char *srtext)
119 {
120 /* inserting an entry into the EPSG dictionary */
121     int len;
122     struct epsg_entry *p = malloc (sizeof (struct epsg_entry));
123     p->srid = srid;
124     p->is_geographic = is_geographic;
125     p->flipped_axes = flipped_axes;
126     len = strlen (name);
127     p->ref_sys_name = malloc (len + 1);
128     strcpy (p->ref_sys_name, name);
129     len = strlen (proj4text);
130     p->proj4text = malloc (len + 1);
131     strcpy (p->proj4text, proj4text);
132     len = strlen (srtext);
133     p->srtext = malloc (len + 1);
134     strcpy (p->srtext, srtext);
135     len = strlen (unit);
136     p->unit = malloc (len + 1);
137     strcpy (p->unit, unit);
138     len = strlen (axis_1);
139     p->axis_1 = malloc (len + 1);
140     strcpy (p->axis_1, axis_1);
141     len = strlen (orientation_1);
142     p->orientation_1 = malloc (len + 1);
143     strcpy (p->orientation_1, orientation_1);
144     len = strlen (axis_2);
145     p->axis_2 = malloc (len + 1);
146     strcpy (p->axis_2, axis_2);
147     len = strlen (orientation_2);
148     p->orientation_2 = malloc (len + 1);
149     strcpy (p->orientation_2, orientation_2);
150     len = strlen (spheroid);
151     p->spheroid = malloc (len + 1);
152     strcpy (p->spheroid, spheroid);
153     len = strlen (prime_meridian);
154     p->prime_meridian = malloc (len + 1);
155     strcpy (p->prime_meridian, prime_meridian);
156     len = strlen (datum);
157     p->datum = malloc (len + 1);
158     strcpy (p->datum, datum);
159     len = strlen (projection);
160     p->projection = malloc (len + 1);
161     strcpy (p->projection, projection);
162     p->next = NULL;
163 
164 /* updating the linked list */
165     if (epsg->first == NULL)
166 	epsg->first = p;
167     if (epsg->last != NULL)
168 	epsg->last->next = p;
169     epsg->last = p;
170 }
171 
172 static int
parse_epsg(FILE * fl_epsg,struct epsg_dict * epsg)173 parse_epsg (FILE * fl_epsg, struct epsg_dict *epsg)
174 {
175 /* parsing the EPSG input file */
176     char srid[64];
177     char is_geographic[64];
178     char flipped_axes[64];
179     char unit[128];
180     char axis_1[128];
181     char orientation_1[128];
182     char axis_2[128];
183     char orientation_2[128];
184     char spheroid[128];
185     char prime_meridian[128];
186     char datum[128];
187     char projection[128];
188     char name[512];
189     char proj4text[512];
190     char srtext[8192];
191     char *out = srid;
192     int count = 0;
193     int row_no = 1;
194     int c;
195     int err = 0;
196 
197     *srid = '\0';
198     *is_geographic = '\0';
199     *flipped_axes = '\0';
200     *unit = '\0';
201     *axis_1 = '\0';
202     *orientation_1 = '\0';
203     *axis_2 = '\0';
204     *orientation_2 = '\0';
205     *spheroid = '\0';
206     *prime_meridian = '\0';
207     *datum = '\0';
208     *projection = '\0';
209     *name = '\0';
210     *proj4text = '\0';
211     *srtext = '\0';
212     while ((c = getc (fl_epsg)) != EOF)
213       {
214 	  if (c == '\r')
215 	      continue;
216 	  if (c == '\t')
217 	    {
218 		if (out != NULL)
219 		    *out = '\0';
220 		count++;
221 		if (count == 1)
222 		    out = is_geographic;
223 		else if (count == 2)
224 		    out = flipped_axes;
225 		else if (count == 3)
226 		    out = unit;
227 		else if (count == 4)
228 		    out = axis_1;
229 		else if (count == 5)
230 		    out = orientation_1;
231 		else if (count == 6)
232 		    out = axis_2;
233 		else if (count == 7)
234 		    out = orientation_2;
235 		else if (count == 8)
236 		    out = spheroid;
237 		else if (count == 9)
238 		    out = prime_meridian;
239 		else if (count == 10)
240 		    out = datum;
241 		else if (count == 11)
242 		    out = projection;
243 		else if (count == 12)
244 		    out = name;
245 		else if (count == 13)
246 		    out = proj4text;
247 		else if (count == 14)
248 		    out = srtext;
249 		else
250 		  {
251 		      out = NULL;
252 		      fprintf (stderr, "invalid line #%d\n", row_no);
253 		      err = 1;
254 		  }
255 		continue;
256 	    }
257 	  if (c == '\n')
258 	    {
259 		if (out != NULL)
260 		    *out = '\0';
261 		if (!err)
262 		    epsg_insert (epsg, atoi (srid), atoi (is_geographic),
263 				 atoi (flipped_axes), unit, axis_1,
264 				 orientation_1, axis_2, orientation_2, spheroid,
265 				 prime_meridian, datum, projection, name,
266 				 proj4text, srtext);
267 		row_no++;
268 		*srid = '\0';
269 		*is_geographic = '\0';
270 		*flipped_axes = '\0';
271 		*unit = '\0';
272 		*axis_1 = '\0';
273 		*orientation_1 = '\0';
274 		*axis_2 = '\0';
275 		*orientation_2 = '\0';
276 		*spheroid = '\0';
277 		*prime_meridian = '\0';
278 		*datum = '\0';
279 		*projection = '\0';
280 		*name = '\0';
281 		*proj4text = '\0';
282 		*srtext = '\0';
283 		err = 0;
284 		count = 0;
285 		out = srid;
286 		continue;
287 	    }
288 	  if (out != NULL)
289 	      *out++ = c;
290       }
291     return 1;
292 }
293 
294 static int
cmp_sort(const void * p1,const void * p2)295 cmp_sort (const void *p1, const void *p2)
296 {
297 /* comparison function for QSORT */
298     struct epsg_entry *e1 = *(struct epsg_entry **) p1;
299     struct epsg_entry *e2 = *(struct epsg_entry **) p2;
300     if (e1->srid == e2->srid)
301 	return 0;
302     if (e1->srid < e2->srid)
303 	return -1;
304     return 1;
305 }
306 
307 static int
sort_epsg(struct epsg_dict * epsg)308 sort_epsg (struct epsg_dict *epsg)
309 {
310 /* sorting the EPSG defs by ascending SRID */
311     int count = 0;
312     int i;
313     struct epsg_entry *p = epsg->first;
314     while (p)
315       {
316 	  /* counting how many entries are there */
317 	  count++;
318 	  p = p->next;
319       }
320     if (count == 0)
321 	return 0;
322     if (epsg->sorted)
323 	free (epsg->sorted);
324     epsg->sorted = malloc (sizeof (struct epsg_dict *) * count);
325     epsg->count = count;
326     i = 0;
327     p = epsg->first;
328     while (p)
329       {
330 	  /* feeding the pointer array */
331 	  *(epsg->sorted + i) = p;
332 	  i++;
333 	  p = p->next;
334       }
335 /* sorting the pointer array by ascending SRID */
336     qsort (epsg->sorted, count, sizeof (struct epsg_dict *), cmp_sort);
337     return 1;
338 }
339 
340 static FILE *
open_file(int file_no)341 open_file (int file_no)
342 {
343 /* opening an output file */
344     char path[1024];
345     FILE *out = NULL;
346 
347     sprintf (path, "epsg_inlined_%02d.c", file_no);
348     out = fopen (path, "wb");
349     if (out == NULL)
350       {
351 	  fprintf (stderr,
352 		   "ERROR: unable to open the \"%s\" output file\n", path);
353 	  return NULL;
354       }
355     return out;
356 }
357 
358 static FILE *
open_file2()359 open_file2 ()
360 {
361 /* opening the "extra" output file */
362     FILE *out = NULL;
363 
364     out = fopen ("epsg_inlined_extra.c", "wb");
365     if (out == NULL)
366       {
367 	  fprintf (stderr,
368 		   "ERROR: unable to open the \"epsg_inlined_extra.c\" output file\n");
369 	  return NULL;
370       }
371     return out;
372 }
373 
374 static FILE *
open_file3()375 open_file3 ()
376 {
377 /* opening the "prussian" output file */
378     FILE *out = NULL;
379 
380     out = fopen ("epsg_inlined_prussian.c", "wb");
381     if (out == NULL)
382       {
383 	  fprintf (stderr,
384 		   "ERROR: unable to open the \"epsg_inlined_prussian.c\" output file\n");
385 	  return NULL;
386       }
387     return out;
388 }
389 
390 static FILE *
open_file_wgs84(int file_no)391 open_file_wgs84 (int file_no)
392 {
393 /* opening an output file "wgs84" */
394     char path[1024];
395     FILE *out = NULL;
396 
397     sprintf (path, "epsg_inlined_wgs84_%02d.c", file_no);
398     out = fopen (path, "wb");
399     if (out == NULL)
400       {
401 	  fprintf (stderr,
402 		   "ERROR: unable to open the \"%s\" output file\n", path);
403 	  return NULL;
404       }
405     return out;
406 }
407 
408 static void
do_prussian(FILE * out)409 do_prussian (FILE * out)
410 {
411 /* writing the "prussian" body */
412     fprintf (out,
413 	     "SPATIALITE_PRIVATE void\ninitialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last)\n");
414     fprintf (out,
415 	     "{\n/* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */\n");
416     fprintf (out, "    struct epsg_defs *p;\n");
417     fprintf (out,
418 	     "    p = add_epsg_def(filter,first,last,187900,\"mj10777.de\",187900,\"DHDN / Soldner Rathausnetz 660\");\n");
419     fprintf (out,
420 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n");
421     fprintf (out,
422 	     "    add_proj4text(p,1,\"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
423     fprintf (out,
424 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Rathausnetz 660\\\",\");\n");
425     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
426     fprintf (out,
427 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
428     fprintf (out,
429 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
430     fprintf (out,
431 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
432     fprintf (out,
433 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
434     fprintf (out,
435 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
436     fprintf (out,
437 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
438     fprintf (out,
439 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
440     fprintf (out,
441 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n");
442     fprintf (out,
443 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n");
444     fprintf (out,
445 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",14741.77],PARAMETER[\\\"false_northing\\\",-11288.28],\");\n");
446     fprintf (out,
447 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187900\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
448     fprintf (out,
449 	     "    p = add_epsg_def(filter,first,last,187901,\"mj10777.de\",187901,\"DHDN / Soldner 1 Kucklinsberg\");\n");
450     fprintf (out,
451 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 \");\n");
452     fprintf (out,
453 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
454     fprintf (out,
455 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 1 Kucklinsberg\\\",\");\n");
456     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
457     fprintf (out,
458 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
459     fprintf (out,
460 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
461     fprintf (out,
462 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
463     fprintf (out,
464 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
465     fprintf (out,
466 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
467     fprintf (out,
468 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
469     fprintf (out,
470 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
471     fprintf (out,
472 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.46022375],\");\n");
473     fprintf (out,
474 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",21.95509736],\");\n");
475     fprintf (out,
476 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
477     fprintf (out,
478 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187901\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
479     fprintf (out,
480 	     "    p = add_epsg_def(filter,first,last,187902,\"mj10777.de\",187902,\"DHDN / Soldner 2 Paulinen\");\n");
481     fprintf (out,
482 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 \");\n");
483     fprintf (out,
484 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
485     fprintf (out,
486 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 2 Paulinen\\\",\");\n");
487     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
488     fprintf (out,
489 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
490     fprintf (out,
491 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
492     fprintf (out,
493 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
494     fprintf (out,
495 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
496     fprintf (out,
497 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
498     fprintf (out,
499 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
500     fprintf (out,
501 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
502     fprintf (out,
503 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.28921067],\");\n");
504     fprintf (out,
505 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",20.73315431],\");\n");
506     fprintf (out,
507 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
508     fprintf (out,
509 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187902\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
510     fprintf (out,
511 	     "    p = add_epsg_def(filter,first,last,187903,\"mj10777.de\",187903,\"DHDN / Soldner 3 Markushof I\");\n");
512     fprintf (out,
513 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 \");\n");
514     fprintf (out,
515 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
516     fprintf (out,
517 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 3 Markushof I\\\",\");\n");
518     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
519     fprintf (out,
520 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
521     fprintf (out,
522 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
523     fprintf (out,
524 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
525     fprintf (out,
526 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
527     fprintf (out,
528 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
529     fprintf (out,
530 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
531     fprintf (out,
532 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
533     fprintf (out,
534 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.05881333],\");\n");
535     fprintf (out,
536 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.37343583],\");\n");
537     fprintf (out,
538 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
539     fprintf (out,
540 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187903\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
541     fprintf (out,
542 	     "    p = add_epsg_def(filter,first,last,187904,\"mj10777.de\",187904,\"DHDN / Soldner 4 Thurmberg\");\n");
543     fprintf (out,
544 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 \");\n");
545     fprintf (out,
546 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
547     fprintf (out,
548 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 4 Thurmberg\\\",\");\n");
549     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
550     fprintf (out,
551 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
552     fprintf (out,
553 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
554     fprintf (out,
555 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
556     fprintf (out,
557 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
558     fprintf (out,
559 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
560     fprintf (out,
561 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
562     fprintf (out,
563 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
564     fprintf (out,
565 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.22552092],\");\n");
566     fprintf (out,
567 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.12569375],\");\n");
568     fprintf (out,
569 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
570     fprintf (out,
571 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187904\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
572     fprintf (out,
573 	     "    p = add_epsg_def(filter,first,last,187905,\"mj10777.de\",187905,\"DHDN / Soldner 5 Kauernick I\");\n");
574     fprintf (out,
575 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 \");\n");
576     fprintf (out,
577 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
578     fprintf (out,
579 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 5 Kauernick I\\\",\");\n");
580     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
581     fprintf (out,
582 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
583     fprintf (out,
584 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
585     fprintf (out,
586 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
587     fprintf (out,
588 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
589     fprintf (out,
590 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
591     fprintf (out,
592 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
593     fprintf (out,
594 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
595     fprintf (out,
596 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.38933197],\");\n");
597     fprintf (out,
598 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.59810438],\");\n");
599     fprintf (out,
600 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
601     fprintf (out,
602 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187905\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
603     fprintf (out,
604 	     "    p = add_epsg_def(filter,first,last,187906,\"mj10777.de\",187906,\"DHDN / Soldner 6 Thorn, Rathausturm\");\n");
605     fprintf (out,
606 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 \");\n");
607     fprintf (out,
608 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
609     fprintf (out,
610 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 6 Thorn, Rathausturm\\\",\");\n");
611     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
612     fprintf (out,
613 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
614     fprintf (out,
615 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
616     fprintf (out,
617 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
618     fprintf (out,
619 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
620     fprintf (out,
621 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
622     fprintf (out,
623 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
624     fprintf (out,
625 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
626     fprintf (out,
627 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.01181586],\");\n");
628     fprintf (out,
629 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.60725428],\");\n");
630     fprintf (out,
631 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
632     fprintf (out,
633 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187906\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
634     fprintf (out,
635 	     "    p = add_epsg_def(filter,first,last,187907,\"mj10777.de\",187907,\"DHDN / Soldner 7 Heinrichsthal\");\n");
636     fprintf (out,
637 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 \");\n");
638     fprintf (out,
639 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
640     fprintf (out,
641 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 7 Heinrichsthal\\\",\");\n");
642     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
643     fprintf (out,
644 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
645     fprintf (out,
646 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
647     fprintf (out,
648 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
649     fprintf (out,
650 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
651     fprintf (out,
652 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
653     fprintf (out,
654 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
655     fprintf (out,
656 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
657     fprintf (out,
658 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.71289217],\");\n");
659     fprintf (out,
660 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.49676781],\");\n");
661     fprintf (out,
662 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
663     fprintf (out,
664 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187907\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
665     fprintf (out,
666 	     "    p = add_epsg_def(filter,first,last,187908,\"mj10777.de\",187908,\"DHDN / Soldner 8 Gollenberg, Denkmal\");\n");
667     fprintf (out,
668 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 \");\n");
669     fprintf (out,
670 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
671     fprintf (out,
672 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 8 Gollenberg, Denkmal\\\",\");\n");
673     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
674     fprintf (out,
675 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
676     fprintf (out,
677 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
678     fprintf (out,
679 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
680     fprintf (out,
681 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
682     fprintf (out,
683 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
684     fprintf (out,
685 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
686     fprintf (out,
687 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
688     fprintf (out,
689 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.20857178],\");\n");
690     fprintf (out,
691 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.22956781],\");\n");
692     fprintf (out,
693 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
694     fprintf (out,
695 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187908\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
696     fprintf (out,
697 	     "    p = add_epsg_def(filter,first,last,187909,\"mj10777.de\",187909,\"DHDN / Soldner 9 Gnesen\");\n");
698     fprintf (out,
699 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 \");\n");
700     fprintf (out,
701 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
702     fprintf (out,
703 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 9 Gnesen\\\",\");\n");
704     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
705     fprintf (out,
706 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
707     fprintf (out,
708 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
709     fprintf (out,
710 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
711     fprintf (out,
712 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
713     fprintf (out,
714 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
715     fprintf (out,
716 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
717     fprintf (out,
718 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
719     fprintf (out,
720 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.53820406],\");\n");
721     fprintf (out,
722 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.59450500],\");\n");
723     fprintf (out,
724 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
725     fprintf (out,
726 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187909\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
727     fprintf (out,
728 	     "    p = add_epsg_def(filter,first,last,187910,\"mj10777.de\",187910,\"DHDN / Soldner 10 Josefsberg\");\n");
729     fprintf (out,
730 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 \");\n");
731     fprintf (out,
732 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
733     fprintf (out,
734 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 10 Josefsberg\\\",\");\n");
735     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
736     fprintf (out,
737 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
738     fprintf (out,
739 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
740     fprintf (out,
741 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
742     fprintf (out,
743 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
744     fprintf (out,
745 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
746     fprintf (out,
747 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
748     fprintf (out,
749 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
750     fprintf (out,
751 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.98768806],\");\n");
752     fprintf (out,
753 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.20044389],\");\n");
754     fprintf (out,
755 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
756     fprintf (out,
757 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187910\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
758     fprintf (out,
759 	     "    p = add_epsg_def(filter,first,last,187911,\"mj10777.de\",187911,\"DHDN / Soldner 11 Schroda\");\n");
760     fprintf (out,
761 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 \");\n");
762     fprintf (out,
763 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
764     fprintf (out,
765 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 11 Schroda\\\",\");\n");
766     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
767     fprintf (out,
768 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
769     fprintf (out,
770 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
771     fprintf (out,
772 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
773     fprintf (out,
774 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
775     fprintf (out,
776 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
777     fprintf (out,
778 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
779     fprintf (out,
780 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
781     fprintf (out,
782 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.23137372],\");\n");
783     fprintf (out,
784 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.27795372],\");\n");
785     fprintf (out,
786 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
787     fprintf (out,
788 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187911\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
789     fprintf (out,
790 	     "    p = add_epsg_def(filter,first,last,187912,\"mj10777.de\",187912,\"DHDN / Soldner 12 Pschow\");\n");
791     fprintf (out,
792 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 \");\n");
793     fprintf (out,
794 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
795     fprintf (out,
796 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 12 Pschow\\\",\");\n");
797     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
798     fprintf (out,
799 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
800     fprintf (out,
801 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
802     fprintf (out,
803 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
804     fprintf (out,
805 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
806     fprintf (out,
807 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
808     fprintf (out,
809 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
810     fprintf (out,
811 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
812     fprintf (out,
813 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.04206544],\");\n");
814     fprintf (out,
815 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.39610692],\");\n");
816     fprintf (out,
817 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
818     fprintf (out,
819 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187912\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
820     fprintf (out,
821 	     "    p = add_epsg_def(filter,first,last,187913,\"mj10777.de\",187913,\"DHDN / Soldner 13 Rummelsberg\");\n");
822     fprintf (out,
823 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 \");\n");
824     fprintf (out,
825 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
826     fprintf (out,
827 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 13 Rummelsberg\\\",\");\n");
828     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
829     fprintf (out,
830 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
831     fprintf (out,
832 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
833     fprintf (out,
834 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
835     fprintf (out,
836 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
837     fprintf (out,
838 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
839     fprintf (out,
840 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
841     fprintf (out,
842 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
843     fprintf (out,
844 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.70352314],\");\n");
845     fprintf (out,
846 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.11233917],\");\n");
847     fprintf (out,
848 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
849     fprintf (out,
850 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187913\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
851     fprintf (out,
852 	     "    p = add_epsg_def(filter,first,last,187914,\"mj10777.de\",187914,\"DHDN / Soldner 14 Gröditzberg I\");\n");
853     fprintf (out,
854 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 \");\n");
855     fprintf (out,
856 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
857     fprintf (out,
858 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 14 Gröditzberg I\\\",\");\n");
859     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
860     fprintf (out,
861 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
862     fprintf (out,
863 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
864     fprintf (out,
865 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
866     fprintf (out,
867 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
868     fprintf (out,
869 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
870     fprintf (out,
871 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
872     fprintf (out,
873 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
874     fprintf (out,
875 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17819342],\");\n");
876     fprintf (out,
877 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",15.76127086],\");\n");
878     fprintf (out,
879 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
880     fprintf (out,
881 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187914\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
882     fprintf (out,
883 	     "    p = add_epsg_def(filter,first,last,187915,\"mj10777.de\",187915,\"DHDN / Soldner 15 Kaltenborn\");\n");
884     fprintf (out,
885 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 \");\n");
886     fprintf (out,
887 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
888     fprintf (out,
889 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 15 Kaltenborn\\\",\");\n");
890     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
891     fprintf (out,
892 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
893     fprintf (out,
894 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
895     fprintf (out,
896 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
897     fprintf (out,
898 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
899     fprintf (out,
900 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
901     fprintf (out,
902 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
903     fprintf (out,
904 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
905     fprintf (out,
906 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.92903708],\");\n");
907     fprintf (out,
908 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.66212942],\");\n");
909     fprintf (out,
910 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
911     fprintf (out,
912 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187915\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
913     fprintf (out,
914 	     "    p = add_epsg_def(filter,first,last,187917,\"mj10777.de\",187917,\"DHDN / Soldner 17 Greifswald, Nikolaikirche\");\n");
915     fprintf (out,
916 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 \");\n");
917     fprintf (out,
918 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
919     fprintf (out,
920 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 17 Greifswald, Nikolaikirche\\\",\");\n");
921     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
922     fprintf (out,
923 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
924     fprintf (out,
925 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
926     fprintf (out,
927 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
928     fprintf (out,
929 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
930     fprintf (out,
931 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
932     fprintf (out,
933 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
934     fprintf (out,
935 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
936     fprintf (out,
937 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.09698872],\");\n");
938     fprintf (out,
939 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.37880703],\");\n");
940     fprintf (out,
941 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
942     fprintf (out,
943 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187917\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
944     fprintf (out,
945 	     "    p = add_epsg_def(filter,first,last,187916,\"mj10777.de\",187916,\"DHDN / Soldner 16 Bahn I\");\n");
946     fprintf (out,
947 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 \");\n");
948     fprintf (out,
949 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
950     fprintf (out,
951 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 16 Bahn I\\\",\");\n");
952     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
953     fprintf (out,
954 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
955     fprintf (out,
956 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
957     fprintf (out,
958 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
959     fprintf (out,
960 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
961     fprintf (out,
962 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
963     fprintf (out,
964 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
965     fprintf (out,
966 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
967     fprintf (out,
968 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.10184583],\");\n");
969     fprintf (out,
970 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.70144539],\");\n");
971     fprintf (out,
972 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
973     fprintf (out,
974 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187916\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
975     fprintf (out,
976 	     "    p = add_epsg_def(filter,first,last,187918,\"mj10777.de\",187918,\"DHDN / Soldner 18 Müggelberg 600\");\n");
977     fprintf (out,
978 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n");
979     fprintf (out,
980 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
981     fprintf (out,
982 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 18 Müggelberg 600\\\",\");\n");
983     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
984     fprintf (out,
985 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
986     fprintf (out,
987 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
988     fprintf (out,
989 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
990     fprintf (out,
991 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
992     fprintf (out,
993 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
994     fprintf (out,
995 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
996     fprintf (out,
997 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
998     fprintf (out,
999 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n");
1000     fprintf (out,
1001 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n");
1002     fprintf (out,
1003 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1004     fprintf (out,
1005 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187918\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1006     fprintf (out,
1007 	     "    p = add_epsg_def(filter,first,last,187919,\"mj10777.de\",187919,\"DHDN / Soldner 19 Götzer Berg 650\");\n");
1008     fprintf (out,
1009 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 \");\n");
1010     fprintf (out,
1011 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1012     fprintf (out,
1013 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 19 Götzer Berg 650\\\",\");\n");
1014     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1015     fprintf (out,
1016 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1017     fprintf (out,
1018 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1019     fprintf (out,
1020 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1021     fprintf (out,
1022 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1023     fprintf (out,
1024 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1025     fprintf (out,
1026 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1027     fprintf (out,
1028 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1029     fprintf (out,
1030 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.43725961111112],\");\n");
1031     fprintf (out,
1032 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",12.72882972222223],\");\n");
1033     fprintf (out,
1034 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1035     fprintf (out,
1036 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187919\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1037     fprintf (out,
1038 	     "    p = add_epsg_def(filter,first,last,187920,\"mj10777.de\",187920,\"DHDN / Soldner 20 Torgau, Stadtkirche\");\n");
1039     fprintf (out,
1040 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 \");\n");
1041     fprintf (out,
1042 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1043     fprintf (out,
1044 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 20 Torgau, Stadtkirche\\\",\");\n");
1045     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1046     fprintf (out,
1047 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1048     fprintf (out,
1049 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1050     fprintf (out,
1051 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1052     fprintf (out,
1053 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1054     fprintf (out,
1055 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1056     fprintf (out,
1057 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1058     fprintf (out,
1059 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1060     fprintf (out,
1061 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.56136217],\");\n");
1062     fprintf (out,
1063 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.00760264],\");\n");
1064     fprintf (out,
1065 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1066     fprintf (out,
1067 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187920\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1068     fprintf (out,
1069 	     "    p = add_epsg_def(filter,first,last,187921,\"mj10777.de\",187921,\"DHDN / Soldner 21 Burkersroda, Kirchturm\");\n");
1070     fprintf (out,
1071 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 \");\n");
1072     fprintf (out,
1073 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1074     fprintf (out,
1075 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 21 Burkersroda, Kirchturm\\\",\");\n");
1076     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1077     fprintf (out,
1078 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1079     fprintf (out,
1080 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1081     fprintf (out,
1082 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1083     fprintf (out,
1084 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1085     fprintf (out,
1086 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1087     fprintf (out,
1088 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1089     fprintf (out,
1090 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1091     fprintf (out,
1092 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17656322],\");\n");
1093     fprintf (out,
1094 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.64139367],\");\n");
1095     fprintf (out,
1096 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1097     fprintf (out,
1098 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187921\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1099     fprintf (out,
1100 	     "    p = add_epsg_def(filter,first,last,187922,\"mj10777.de\",187922,\"DHDN / Soldner 22 Inselsberg\");\n");
1101     fprintf (out,
1102 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 \");\n");
1103     fprintf (out,
1104 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1105     fprintf (out,
1106 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 22 Inselsberg\\\",\");\n");
1107     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1108     fprintf (out,
1109 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1110     fprintf (out,
1111 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1112     fprintf (out,
1113 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1114     fprintf (out,
1115 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1116     fprintf (out,
1117 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1118     fprintf (out,
1119 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1120     fprintf (out,
1121 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1122     fprintf (out,
1123 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.85237983],\");\n");
1124     fprintf (out,
1125 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.46776506],\");\n");
1126     fprintf (out,
1127 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1128     fprintf (out,
1129 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187922\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1130     fprintf (out,
1131 	     "    p = add_epsg_def(filter,first,last,187923,\"mj10777.de\",187923,\"DHDN / Soldner 23 Magdeburg\");\n");
1132     fprintf (out,
1133 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 \");\n");
1134     fprintf (out,
1135 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1136     fprintf (out,
1137 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 23 Magdeburg\\\",\");\n");
1138     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1139     fprintf (out,
1140 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1141     fprintf (out,
1142 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1143     fprintf (out,
1144 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1145     fprintf (out,
1146 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1147     fprintf (out,
1148 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1149     fprintf (out,
1150 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1151     fprintf (out,
1152 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1153     fprintf (out,
1154 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.12625311],\");\n");
1155     fprintf (out,
1156 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.63550325],\");\n");
1157     fprintf (out,
1158 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1159     fprintf (out,
1160 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187923\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1161     fprintf (out,
1162 	     "    p = add_epsg_def(filter,first,last,187924,\"mj10777.de\",187924,\"DHDN / Soldner 24 Ostenfeld I\");\n");
1163     fprintf (out,
1164 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 \");\n");
1165     fprintf (out,
1166 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1167     fprintf (out,
1168 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 24 Ostenfeld I\\\",\");\n");
1169     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1170     fprintf (out,
1171 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1172     fprintf (out,
1173 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1174     fprintf (out,
1175 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1176     fprintf (out,
1177 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1178     fprintf (out,
1179 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1180     fprintf (out,
1181 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1182     fprintf (out,
1183 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1184     fprintf (out,
1185 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.47018733],\");\n");
1186     fprintf (out,
1187 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.23411097],\");\n");
1188     fprintf (out,
1189 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1190     fprintf (out,
1191 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187924\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1192     fprintf (out,
1193 	     "    p = add_epsg_def(filter,first,last,187925,\"mj10777.de\",187925,\"DHDN / Soldner 25 Rathkrügen\");\n");
1194     fprintf (out,
1195 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 \");\n");
1196     fprintf (out,
1197 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1198     fprintf (out,
1199 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 25 Rathkrügen\\\",\");\n");
1200     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1201     fprintf (out,
1202 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1203     fprintf (out,
1204 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1205     fprintf (out,
1206 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1207     fprintf (out,
1208 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1209     fprintf (out,
1210 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1211     fprintf (out,
1212 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1213     fprintf (out,
1214 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1215     fprintf (out,
1216 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.81839364],\");\n");
1217     fprintf (out,
1218 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.04220189],\");\n");
1219     fprintf (out,
1220 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1221     fprintf (out,
1222 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187925\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1223     fprintf (out,
1224 	     "    p = add_epsg_def(filter,first,last,187926,\"mj10777.de\",187926,\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\");\n");
1225     fprintf (out,
1226 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 \");\n");
1227     fprintf (out,
1228 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1229     fprintf (out,
1230 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\\\",\");\n");
1231     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1232     fprintf (out,
1233 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1234     fprintf (out,
1235 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1236     fprintf (out,
1237 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1238     fprintf (out,
1239 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1240     fprintf (out,
1241 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1242     fprintf (out,
1243 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1244     fprintf (out,
1245 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1246     fprintf (out,
1247 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.21110653],\");\n");
1248     fprintf (out,
1249 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.72636431],\");\n");
1250     fprintf (out,
1251 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1252     fprintf (out,
1253 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187926\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1254     fprintf (out,
1255 	     "    p = add_epsg_def(filter,first,last,187927,\"mj10777.de\",187927,\"DHDN / Soldner 27 Celle, Stadtkirche\");\n");
1256     fprintf (out,
1257 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 \");\n");
1258     fprintf (out,
1259 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1260     fprintf (out,
1261 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 27 Celle, Stadtkirche\\\",\");\n");
1262     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1263     fprintf (out,
1264 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1265     fprintf (out,
1266 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1267     fprintf (out,
1268 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1269     fprintf (out,
1270 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1271     fprintf (out,
1272 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1273     fprintf (out,
1274 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1275     fprintf (out,
1276 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1277     fprintf (out,
1278 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.62574192],\");\n");
1279     fprintf (out,
1280 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.08190214],\");\n");
1281     fprintf (out,
1282 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1283     fprintf (out,
1284 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187927\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1285     fprintf (out,
1286 	     "    p = add_epsg_def(filter,first,last,187928,\"mj10777.de\",187928,\"DHDN / Soldner 28 Kaltenborn\");\n");
1287     fprintf (out,
1288 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 \");\n");
1289     fprintf (out,
1290 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1291     fprintf (out,
1292 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 28 Kaltenborn\\\",\");\n");
1293     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1294     fprintf (out,
1295 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1296     fprintf (out,
1297 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1298     fprintf (out,
1299 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1300     fprintf (out,
1301 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1302     fprintf (out,
1303 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1304     fprintf (out,
1305 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1306     fprintf (out,
1307 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1308     fprintf (out,
1309 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.79646722],\");\n");
1310     fprintf (out,
1311 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.27322494],\");\n");
1312     fprintf (out,
1313 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1314     fprintf (out,
1315 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187928\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1316     fprintf (out,
1317 	     "    p = add_epsg_def(filter,first,last,187929,\"mj10777.de\",187929,\"DHDN / Soldner 29 Silberberg\");\n");
1318     fprintf (out,
1319 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 \");\n");
1320     fprintf (out,
1321 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1322     fprintf (out,
1323 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 29 Silberberg\\\",\");\n");
1324     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1325     fprintf (out,
1326 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1327     fprintf (out,
1328 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1329     fprintf (out,
1330 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1331     fprintf (out,
1332 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1333     fprintf (out,
1334 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1335     fprintf (out,
1336 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1337     fprintf (out,
1338 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1339     fprintf (out,
1340 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.73123461],\");\n");
1341     fprintf (out,
1342 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.05774925],\");\n");
1343     fprintf (out,
1344 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1345     fprintf (out,
1346 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187929\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1347     fprintf (out,
1348 	     "    p = add_epsg_def(filter,first,last,187930,\"mj10777.de\",187930,\"DHDN / Soldner 30 Windberg\");\n");
1349     fprintf (out,
1350 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 \");\n");
1351     fprintf (out,
1352 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1353     fprintf (out,
1354 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 30 Windberg\\\",\");\n");
1355     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1356     fprintf (out,
1357 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1358     fprintf (out,
1359 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1360     fprintf (out,
1361 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1362     fprintf (out,
1363 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1364     fprintf (out,
1365 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1366     fprintf (out,
1367 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1368     fprintf (out,
1369 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1370     fprintf (out,
1371 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.88088372],\");\n");
1372     fprintf (out,
1373 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.53062114],\");\n");
1374     fprintf (out,
1375 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1376     fprintf (out,
1377 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187930\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1378     fprintf (out,
1379 	     "    p = add_epsg_def(filter,first,last,187931,\"mj10777.de\",187931,\"DHDN / Soldner 31 Hermannsdenkmal\");\n");
1380     fprintf (out,
1381 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 \");\n");
1382     fprintf (out,
1383 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1384     fprintf (out,
1385 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 31 Hermannsdenkmal\\\",\");\n");
1386     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1387     fprintf (out,
1388 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1389     fprintf (out,
1390 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1391     fprintf (out,
1392 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1393     fprintf (out,
1394 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1395     fprintf (out,
1396 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1397     fprintf (out,
1398 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1399     fprintf (out,
1400 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1401     fprintf (out,
1402 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.91301647],\");\n");
1403     fprintf (out,
1404 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.84051853],\");\n");
1405     fprintf (out,
1406 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1407     fprintf (out,
1408 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187931\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1409     fprintf (out,
1410 	     "    p = add_epsg_def(filter,first,last,187932,\"mj10777.de\",187932,\"DHDN / Soldner 32 Münster\");\n");
1411     fprintf (out,
1412 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 \");\n");
1413     fprintf (out,
1414 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1415     fprintf (out,
1416 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 32 Münster\\\",\");\n");
1417     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1418     fprintf (out,
1419 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1420     fprintf (out,
1421 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1422     fprintf (out,
1423 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1424     fprintf (out,
1425 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1426     fprintf (out,
1427 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1428     fprintf (out,
1429 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1430     fprintf (out,
1431 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1432     fprintf (out,
1433 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.96547642],\");\n");
1434     fprintf (out,
1435 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.62334994],\");\n");
1436     fprintf (out,
1437 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1438     fprintf (out,
1439 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187932\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1440     fprintf (out,
1441 	     "    p = add_epsg_def(filter,first,last,187933,\"mj10777.de\",187933,\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\");\n");
1442     fprintf (out,
1443 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 \");\n");
1444     fprintf (out,
1445 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1446     fprintf (out,
1447 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\\\",\");\n");
1448     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1449     fprintf (out,
1450 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1451     fprintf (out,
1452 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1453     fprintf (out,
1454 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1455     fprintf (out,
1456 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1457     fprintf (out,
1458 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1459     fprintf (out,
1460 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1461     fprintf (out,
1462 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1463     fprintf (out,
1464 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.48373533],\");\n");
1465     fprintf (out,
1466 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.22115822],\");\n");
1467     fprintf (out,
1468 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1469     fprintf (out,
1470 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187933\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1471     fprintf (out,
1472 	     "    p = add_epsg_def(filter,first,last,187934,\"mj10777.de\",187934,\"DHDN / Soldner 34 Homert\");\n");
1473     fprintf (out,
1474 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 \");\n");
1475     fprintf (out,
1476 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1477     fprintf (out,
1478 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 34 Homert\\\",\");\n");
1479     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1480     fprintf (out,
1481 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1482     fprintf (out,
1483 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1484     fprintf (out,
1485 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1486     fprintf (out,
1487 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1488     fprintf (out,
1489 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1490     fprintf (out,
1491 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1492     fprintf (out,
1493 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1494     fprintf (out,
1495 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.26480147],\");\n");
1496     fprintf (out,
1497 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.10687050],\");\n");
1498     fprintf (out,
1499 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1500     fprintf (out,
1501 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187934\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1502     fprintf (out,
1503 	     "    p = add_epsg_def(filter,first,last,187935,\"mj10777.de\",187935,\"DHDN / Soldner 35 Kassel, Martinskirche\");\n");
1504     fprintf (out,
1505 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 \");\n");
1506     fprintf (out,
1507 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1508     fprintf (out,
1509 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 35 Kassel, Martinskirche\\\",\");\n");
1510     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1511     fprintf (out,
1512 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1513     fprintf (out,
1514 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1515     fprintf (out,
1516 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1517     fprintf (out,
1518 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1519     fprintf (out,
1520 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1521     fprintf (out,
1522 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1523     fprintf (out,
1524 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1525     fprintf (out,
1526 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.31846489],\");\n");
1527     fprintf (out,
1528 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.50203072],\");\n");
1529     fprintf (out,
1530 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1531     fprintf (out,
1532 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187935\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1533     fprintf (out,
1534 	     "    p = add_epsg_def(filter,first,last,187936,\"mj10777.de\",187936,\"DHDN / Soldner 36 Schaumburg, Schloßturm\");\n");
1535     fprintf (out,
1536 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 \");\n");
1537     fprintf (out,
1538 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1539     fprintf (out,
1540 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 36 Schaumburg, Schloßturm\\\",\");\n");
1541     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1542     fprintf (out,
1543 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1544     fprintf (out,
1545 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1546     fprintf (out,
1547 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1548     fprintf (out,
1549 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1550     fprintf (out,
1551 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1552     fprintf (out,
1553 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1554     fprintf (out,
1555 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1556     fprintf (out,
1557 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.34048964],\");\n");
1558     fprintf (out,
1559 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.97808156],\");\n");
1560     fprintf (out,
1561 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1562     fprintf (out,
1563 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187936\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1564     fprintf (out,
1565 	     "    p = add_epsg_def(filter,first,last,187937,\"mj10777.de\",187937,\"DHDN / Soldner 37 Fleckert\");\n");
1566     fprintf (out,
1567 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 \");\n");
1568     fprintf (out,
1569 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1570     fprintf (out,
1571 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 37 Fleckert\\\",\");\n");
1572     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1573     fprintf (out,
1574 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1575     fprintf (out,
1576 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1577     fprintf (out,
1578 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1579     fprintf (out,
1580 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1581     fprintf (out,
1582 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1583     fprintf (out,
1584 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1585     fprintf (out,
1586 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1587     fprintf (out,
1588 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.18762544],\");\n");
1589     fprintf (out,
1590 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.60594289],\");\n");
1591     fprintf (out,
1592 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1593     fprintf (out,
1594 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187937\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1595     fprintf (out,
1596 	     "    p = add_epsg_def(filter,first,last,187938,\"mj10777.de\",187938,\"DHDN / Soldner 38 Cöln, Dom\");\n");
1597     fprintf (out,
1598 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 \");\n");
1599     fprintf (out,
1600 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1601     fprintf (out,
1602 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 38 Cöln, Dom\\\",\");\n");
1603     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1604     fprintf (out,
1605 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1606     fprintf (out,
1607 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1608     fprintf (out,
1609 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1610     fprintf (out,
1611 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1612     fprintf (out,
1613 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1614     fprintf (out,
1615 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1616     fprintf (out,
1617 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1618     fprintf (out,
1619 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.94257242],\");\n");
1620     fprintf (out,
1621 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.95897600],\");\n");
1622     fprintf (out,
1623 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1624     fprintf (out,
1625 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187938\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1626     fprintf (out,
1627 	     "    p = add_epsg_def(filter,first,last,187939,\"mj10777.de\",187939,\"DHDN / Soldner 39 Langschoß\");\n");
1628     fprintf (out,
1629 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 \");\n");
1630     fprintf (out,
1631 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1632     fprintf (out,
1633 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 39 Langschoß\\\",\");\n");
1634     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1635     fprintf (out,
1636 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1637     fprintf (out,
1638 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1639     fprintf (out,
1640 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1641     fprintf (out,
1642 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1643     fprintf (out,
1644 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1645     fprintf (out,
1646 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1647     fprintf (out,
1648 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1649     fprintf (out,
1650 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.66738711],\");\n");
1651     fprintf (out,
1652 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.28935703],\");\n");
1653     fprintf (out,
1654 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1655     fprintf (out,
1656 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187939\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1657     fprintf (out,
1658 	     "    p = add_epsg_def(filter,first,last,187940,\"mj10777.de\",187940,\"DHDN / Soldner 40 Rissenthal\");\n");
1659     fprintf (out,
1660 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 \");\n");
1661     fprintf (out,
1662 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1663     fprintf (out,
1664 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 40 Rissenthal\\\",\");\n");
1665     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1666     fprintf (out,
1667 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1668     fprintf (out,
1669 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1670     fprintf (out,
1671 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1672     fprintf (out,
1673 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1674     fprintf (out,
1675 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1676     fprintf (out,
1677 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1678     fprintf (out,
1679 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1680     fprintf (out,
1681 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",49.47801819],\");\n");
1682     fprintf (out,
1683 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.75864339],\");\n");
1684     fprintf (out,
1685 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1686     fprintf (out,
1687 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187940\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1688     fprintf (out,
1689 	     "    p = add_epsg_def(filter,first,last,187941,\"mj10777.de\",187941,\"DHDN / Soldner Bayern\");\n");
1690     fprintf (out,
1691 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 \");\n");
1692     fprintf (out,
1693 	     "    add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1694     fprintf (out,
1695 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Bayern\\\",\");\n");
1696     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1697     fprintf (out,
1698 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1699     fprintf (out,
1700 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1701     fprintf (out,
1702 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1703     fprintf (out,
1704 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1705     fprintf (out,
1706 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1707     fprintf (out,
1708 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1709     fprintf (out,
1710 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1711     fprintf (out,
1712 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",48.13959111],\");\n");
1713     fprintf (out,
1714 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.57437083],\");\n");
1715     fprintf (out,
1716 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n");
1717     fprintf (out,
1718 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187941\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1719     fprintf (out,
1720 	     "    p = add_epsg_def (filter,first, last, 187998, \"mj10777.de\", 187998,\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\");\n");
1721     fprintf (out,
1722 	     "    add_proj4text(p,0,\"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs\");\n");
1723     fprintf (out,
1724 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\\\",\");\n");
1725     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1726     fprintf (out,
1727 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",\");\n");
1728     fprintf (out,
1729 	     "    add_srs_wkt(p,3,\"SPHEROID[\\\"Bessel 1841\\\",6377397.155,299.1528128,\");\n");
1730     fprintf (out,
1731 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]], AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],\");\n");
1732     fprintf (out,
1733 	     "    add_srs_wkt(p,5,\"PRIMEM[\\\"ferro\\\",-17.66666666666667],UNIT[\\\"Degree\\\",0.017453292519943295,\");\n");
1734     fprintf (out,
1735 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187998\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]]]\");\n");
1736     fprintf (out,
1737 	     "/* mj10777: Not existing System, used for testing purposes. */\n");
1738     fprintf (out,
1739 	     "    p = add_epsg_def(filter,first,last,187999,\"mj10777.de\",187999,\"DHDN / Brandenburger Tor\");\n");
1740     fprintf (out,
1741 	     "    add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n");
1742     fprintf (out,
1743 	     "    add_proj4text(p,1,\"+x_0=16816.615499858 +y_0=-11047.322499366 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n");
1744     fprintf (out,
1745 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Brandenburger Tor\\\",\");\n");
1746     fprintf (out, "    add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n");
1747     fprintf (out,
1748 	     "    add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n");
1749     fprintf (out,
1750 	     "    add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n");
1751     fprintf (out,
1752 	     "    add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n");
1753     fprintf (out,
1754 	     "    add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n");
1755     fprintf (out,
1756 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n");
1757     fprintf (out,
1758 	     "    add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n");
1759     fprintf (out,
1760 	     "    add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n");
1761     fprintf (out,
1762 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n");
1763     fprintf (out,
1764 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n");
1765     fprintf (out,
1766 	     "    add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",16816.615499858],PARAMETER[\\\"false_northing\\\",-11047.322499366],\");\n");
1767     fprintf (out,
1768 	     "    add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187999\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n");
1769     fprintf (out,
1770 	     "    p = add_epsg_def (filter,first, last, 325833, \"mj10777.de\", 325833,\"ETRS89 / UTM zone 33N (Brandenburg)\");\n");
1771     fprintf (out,
1772 	     "    add_proj4text(p,0,\"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs\");\n");
1773     fprintf (out,
1774 	     "    add_srs_wkt(p,0,\"PROJCS[\\\"ETRS89 / UTM zone 33N (Brandenburg)\\\",GEOGCS[\\\"ETRS89\\\",\");\n");
1775     fprintf (out,
1776 	     "    add_srs_wkt(p,1,\"DATUM[\\\"European_Terrestrial_Reference_System_1989\\\",\");\n");
1777     fprintf (out,
1778 	     "    add_srs_wkt(p,2,\"SPHEROID[\\\"GRS 1980\\\",6378137,298.257222101,\");\n");
1779     fprintf (out,
1780 	     "    add_srs_wkt(p,3,\"AUTHORITY[\\\"EPSG\\\",\\\"7019\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"6258\\\"]],\");\n");
1781     fprintf (out,
1782 	     "    add_srs_wkt(p,4,\"PRIMEM[\\\"Greenwich\\\",0,AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],\");\n");
1783     fprintf (out,
1784 	     "    add_srs_wkt(p,5,\"UNIT[\\\"degree\\\",0.01745329251994328,AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],\");\n");
1785     fprintf (out,
1786 	     "    add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"4258\\\"]],UNIT[\\\"metre\\\",1,\");\n");
1787     fprintf (out,
1788 	     "    add_srs_wkt(p,7,\"AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],PROJECTION[\\\"Transverse_Mercator\\\"],\");\n");
1789     fprintf (out,
1790 	     "    add_srs_wkt(p,8,\"PARAMETER[\\\"latitude_of_origin\\\",0],\");\n");
1791     fprintf (out,
1792 	     "    add_srs_wkt(p,9,\"PARAMETER[\\\"central_meridian\\\",15],PARAMETER[\\\"scale_factor\\\",0.9996],\");\n");
1793     fprintf (out,
1794 	     "    add_srs_wkt(p,10,\"PARAMETER[\\\"false_easting\\\",3500000],PARAMETER[\\\"false_northing\\\",0],\");\n");
1795     fprintf (out,
1796 	     "    add_srs_wkt(p,11,\"AUTHORITY[\\\"EPSG\\\",\\\"325833\\\"],\");\n");
1797     fprintf (out,
1798 	     "    add_srs_wkt(p,12,\"AXIS[\\\"Easting\\\",EAST],AXIS[\\\"Northing\\\",NORTH]]\");\n");
1799 }
1800 
1801 static void
do_header(FILE * out,int macro)1802 do_header (FILE * out, int macro)
1803 {
1804 /* writing a file header */
1805     time_t tm;
1806     time (&tm);
1807     fprintf (out, "/*\n\n");
1808     fprintf (out,
1809 	     " helper function for srs_init.c -- populating the SPATIAL_REF_SYS table\n\n");
1810     fprintf (out, " this code was autogenerated by \"auto_epsg_ext\" on %s\n",
1811 	     ctime (&tm));
1812     fprintf (out, " Author: Sandro Furieri a.furieri@lqt.it\n\n");
1813     fprintf (out,
1814 	     " -----------------------------------------------------------------------------\n\n");
1815     fprintf (out, " Version: MPL 1.1/GPL 2.0/LGPL 2.1\n\n");
1816     fprintf (out,
1817 	     " The contents of this file are subject to the Mozilla Public License Version\n");
1818     fprintf (out,
1819 	     " 1.1 (the \"License\"); you may not use this file except in compliance with\n");
1820     fprintf (out, " the License. You may obtain a copy of the License at\n");
1821     fprintf (out, " http://www.mozilla.org/MPL/\n\n");
1822     fprintf (out,
1823 	     "Software distributed under the License is distributed on an \"AS IS\" basis,\n");
1824     fprintf (out,
1825 	     "WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n");
1826     fprintf (out,
1827 	     "for the specific language governing rights and limitations under the\n");
1828     fprintf (out,
1829 	     "License.\n\nThe Original Code is the SpatiaLite library\n\n");
1830     fprintf (out,
1831 	     "The Initial Developer of the Original Code is Alessandro Furieri\n\n");
1832     fprintf (out,
1833 	     "Portions created by the Initial Developer are Copyright (C) 2008\n");
1834     fprintf (out,
1835 	     "the Initial Developer. All Rights Reserved.\n\nContributor(s):\n\n");
1836     fprintf (out,
1837 	     "Alternatively, the contents of this file may be used under the terms of\n");
1838     fprintf (out,
1839 	     "either the GNU General Public License Version 2 or later (the \"GPL\"), or\n");
1840     fprintf (out,
1841 	     "the GNU Lesser General Public License Version 2.1 or later (the \"LGPL\"),\n");
1842     fprintf (out,
1843 	     "in which case the provisions of the GPL or the LGPL are applicable instead\n");
1844     fprintf (out,
1845 	     "of those above. If you wish to allow use of your version of this file only\n");
1846     fprintf (out,
1847 	     "under the terms of either the GPL or the LGPL, and not to allow others to\n");
1848     fprintf (out,
1849 	     "use your version of this file under the terms of the MPL, indicate your\n");
1850     fprintf (out,
1851 	     "decision by deleting the provisions above and replace them with the notice\n");
1852     fprintf (out,
1853 	     "and other provisions required by the GPL or the LGPL. If you do not delete\n");
1854     fprintf (out,
1855 	     "the provisions above, a recipient may use your version of this file under\n");
1856     fprintf (out,
1857 	     "the terms of any one of the MPL, the GPL or the LGPL.\n\n*/\n\n");
1858     fprintf (out, "#if defined(_WIN32) && !defined(__MINGW32__)\n");
1859     fprintf (out, "#include \"config-msvc.h\"\n#else\n");
1860     fprintf (out, "#include \"config.h\"\n#endif\n\n");
1861     fprintf (out, "#include <spatialite_private.h>\n\n");
1862 
1863     if (macro)
1864 	fprintf (out,
1865 		 "#ifndef OMIT_EPSG    /* full EPSG initialization enabled */\n\n");
1866 }
1867 
1868 
1869 static void
do_footer(FILE * out,int macro)1870 do_footer (FILE * out, int macro)
1871 {
1872 /* writing a file footer */
1873     fprintf (out, "}\n\n");
1874     if (macro)
1875 	fprintf (out,
1876 		 "#endif /* full EPSG initialization enabled/disabled */\n\n");
1877 }
1878 
1879 static void
output_c_code(FILE * out,struct epsg_dict * epsg)1880 output_c_code (FILE * out, struct epsg_dict *epsg)
1881 {
1882 /* generating the C code supporting spatial_ref_sys self-initialization */
1883     struct epsg_entry *p = epsg->first;
1884     int n;
1885     int sect = 0;
1886     int wgs84_sect = 0;
1887     int def_cnt = 1000;
1888     int out_cnt;
1889     const char *in;
1890     int i;
1891     int pending_footer = 0;
1892 
1893     for (i = 0; i < epsg->count; i++)
1894       {
1895 	  p = *(epsg->sorted + i);
1896 	  if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766))
1897 	    {
1898 		/* skipping WGS84 defs */
1899 		continue;
1900 	    }
1901 
1902 	  if (def_cnt > 100)
1903 	    {
1904 		if (out != NULL)
1905 		  {
1906 		      if (pending_footer)
1907 			{
1908 			    do_footer (out, 1);
1909 			    pending_footer = 0;
1910 			}
1911 
1912 		      /* closing the output file */
1913 		      fclose (out);
1914 		      out = NULL;
1915 		  }
1916 
1917 		/* opening the next output file */
1918 		out = open_file (sect);
1919 		if (out == NULL)
1920 		    return;
1921 
1922 		/* function header */
1923 		do_header (out, 1);
1924 		fprintf (out, "SPATIALITE_PRIVATE void\n");
1925 		fprintf (out,
1926 			 "initialize_epsg_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n",
1927 			 sect++);
1928 		fprintf (out, "{\n/* initializing the EPSG defs list */\n");
1929 		fprintf (out, "    struct epsg_defs *p;\n");
1930 		def_cnt = 0;
1931 	    }
1932 	  pending_footer = 1;
1933 
1934 	  /* inserting the main EPSG def */
1935 	  def_cnt++;
1936 	  fprintf (out,
1937 		   "    p = add_epsg_def_ex (filter, first, last, %d, \"epsg\", %d,\n",
1938 		   p->srid, p->srid);
1939 	  fprintf (out,
1940 		   "        \"%s\", %d, %d,\n",
1941 		   p->ref_sys_name, p->is_geographic, p->flipped_axes);
1942 	  fprintf (out,
1943 		   "        \"%s\", \"%s\",\n", p->spheroid, p->prime_meridian);
1944 	  fprintf (out,
1945 		   "        \"%s\", \"%s\", \"%s\",\n",
1946 		   p->datum, p->projection, p->unit);
1947 	  fprintf (out,
1948 		   "        \"%s\", \"%s\", \"%s\", \"%s\");\n",
1949 		   p->axis_1, p->orientation_1, p->axis_2, p->orientation_2);
1950 
1951 	  /* inserting the proj4text string */
1952 	  n = 0;
1953 	  in = p->proj4text;
1954 	  while (*in != '\0')
1955 	    {
1956 		fprintf (out, "    add_proj4text (p, %d,\n        \"", n);
1957 		out_cnt = 0;
1958 		while (*in != '\0')
1959 		  {
1960 		      if (*in == '"')
1961 			{
1962 			    fprintf (out, "\\%c", *in++);
1963 			    out_cnt += 2;
1964 			}
1965 		      else
1966 			{
1967 			    fprintf (out, "%c", *in++);
1968 			    out_cnt++;
1969 			}
1970 		      if (out_cnt >= 56)
1971 			  break;
1972 		  }
1973 		fprintf (out, "\");\n");
1974 		n++;
1975 	    }
1976 
1977 	  if (p->srtext != NULL)
1978 	    {
1979 		/* inserting the srs_wkt string */
1980 		n = 0;
1981 		in = p->srtext;
1982 		while (*in != '\0')
1983 		  {
1984 		      fprintf (out, "    add_srs_wkt (p, %d,\n        \"", n);
1985 		      out_cnt = 0;
1986 		      while (*in != '\0')
1987 			{
1988 			    if (*in == '"')
1989 			      {
1990 				  fprintf (out, "\\%c", *in++);
1991 				  out_cnt += 2;
1992 			      }
1993 			    else
1994 			      {
1995 				  fprintf (out, "%c", *in++);
1996 				  out_cnt++;
1997 			      }
1998 			    if (out_cnt >= 56)
1999 				break;
2000 			}
2001 		      fprintf (out, "\");\n");
2002 		      n++;
2003 		  }
2004 	    }
2005 	  else
2006 	      fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2007       }
2008     if (out != NULL)
2009       {
2010 	  /* closing the output file */
2011 	  if (pending_footer)
2012 	    {
2013 		do_footer (out, 1);
2014 		pending_footer = 0;
2015 	    }
2016 
2017 	  /* closing the output file */
2018 	  fclose (out);
2019 	  out = NULL;
2020       }
2021 
2022     def_cnt = 1000;
2023     pending_footer = 0;
2024     for (i = 0; i < epsg->count; i++)
2025       {
2026 	  p = *(epsg->sorted + i);
2027 	  if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766))
2028 	      ;
2029 	  else
2030 	    {
2031 		/* skipping not-WGS84 defs */
2032 		continue;
2033 	    }
2034 
2035 	  if (def_cnt > 100)
2036 	    {
2037 		if (out != NULL)
2038 		  {
2039 		      if (pending_footer)
2040 			{
2041 			    do_footer (out, 0);
2042 			    pending_footer = 0;
2043 			}
2044 
2045 		      /* closing the output file */
2046 		      fclose (out);
2047 		      out = NULL;
2048 		  }
2049 
2050 		/* opening the next output file */
2051 		out = open_file_wgs84 (wgs84_sect);
2052 		if (out == NULL)
2053 		    return;
2054 
2055 		/* function header */
2056 		do_header (out, 0);
2057 		fprintf (out, "SPATIALITE_PRIVATE void\n");
2058 		fprintf (out,
2059 			 "initialize_epsg_wgs84_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n",
2060 			 wgs84_sect++);
2061 		fprintf (out,
2062 			 "{\n/* initializing the EPSG defs list [WGS84] */\n");
2063 		fprintf (out, "    struct epsg_defs *p;\n");
2064 		def_cnt = 0;
2065 	    }
2066 	  pending_footer = 1;
2067 
2068 	  /* inserting the main EPSG def */
2069 	  def_cnt++;
2070 	  fprintf (out,
2071 		   "    p = add_epsg_def_ex (filter, first, last, %d, \"epsg\", %d,\n",
2072 		   p->srid, p->srid);
2073 	  fprintf (out,
2074 		   "        \"%s\", %d, %d,\n",
2075 		   p->ref_sys_name, p->is_geographic, p->flipped_axes);
2076 	  fprintf (out,
2077 		   "        \"%s\", \"%s\",\n", p->spheroid, p->prime_meridian);
2078 	  fprintf (out,
2079 		   "        \"%s\", \"%s\", \"%s\",\n",
2080 		   p->datum, p->projection, p->unit);
2081 	  fprintf (out,
2082 		   "        \"%s\", \"%s\", \"%s\", \"%s\");\n",
2083 		   p->axis_1, p->orientation_1, p->axis_2, p->orientation_2);
2084 
2085 	  /* inserting the proj4text string */
2086 	  n = 0;
2087 	  in = p->proj4text;
2088 	  while (*in != '\0')
2089 	    {
2090 		fprintf (out, "    add_proj4text (p, %d,\n        \"", n);
2091 		out_cnt = 0;
2092 		while (*in != '\0')
2093 		  {
2094 		      if (*in == '"')
2095 			{
2096 			    fprintf (out, "\\%c", *in++);
2097 			    out_cnt += 2;
2098 			}
2099 		      else
2100 			{
2101 			    fprintf (out, "%c", *in++);
2102 			    out_cnt++;
2103 			}
2104 		      if (out_cnt >= 56)
2105 			  break;
2106 		  }
2107 		fprintf (out, "\");\n");
2108 		n++;
2109 	    }
2110 
2111 	  if (p->srtext != NULL)
2112 	    {
2113 		/* inserting the srs_wkt string */
2114 		n = 0;
2115 		in = p->srtext;
2116 		while (*in != '\0')
2117 		  {
2118 		      fprintf (out, "    add_srs_wkt (p, %d,\n        \"", n);
2119 		      out_cnt = 0;
2120 		      while (*in != '\0')
2121 			{
2122 			    if (*in == '"')
2123 			      {
2124 				  fprintf (out, "\\%c", *in++);
2125 				  out_cnt += 2;
2126 			      }
2127 			    else
2128 			      {
2129 				  fprintf (out, "%c", *in++);
2130 				  out_cnt++;
2131 			      }
2132 			    if (out_cnt >= 56)
2133 				break;
2134 			}
2135 		      fprintf (out, "\");\n");
2136 		      n++;
2137 		  }
2138 	    }
2139 	  else
2140 	      fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2141       }
2142     if (out != NULL)
2143       {
2144 	  /* closing the output file */
2145 	  if (pending_footer)
2146 	    {
2147 		do_footer (out, 0);
2148 		pending_footer = 0;
2149 	    }
2150 
2151 	  /* closing the output file */
2152 	  fclose (out);
2153 	  out = NULL;
2154       }
2155 
2156 /* opening the "prussian" output file */
2157     out = open_file3 ();
2158     if (out == NULL)
2159 	return;
2160 
2161 /* function header */
2162     do_header (out, 1);
2163     do_prussian (out);
2164 
2165 /* function footer */
2166     do_footer (out, 1);
2167 
2168 /* closing the "prussian" output file */
2169     fclose (out);
2170     out = NULL;
2171 
2172 /* opening the "extra" output file */
2173     out = open_file2 ();
2174     if (out == NULL)
2175 	return;
2176 
2177 /* function header */
2178     do_header (out, 0);
2179     fprintf (out, "/* declaring prototypes */\n");
2180     for (i = 0; i < sect; i++)
2181 	fprintf (out,
2182 		 "SPATIALITE_PRIVATE void initialize_epsg_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n",
2183 		 i);
2184     for (i = 0; i < wgs84_sect; i++)
2185 	fprintf (out,
2186 		 "SPATIALITE_PRIVATE void initialize_epsg_wgs84_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n",
2187 		 i);
2188     fprintf (out,
2189 	     "SPATIALITE_PRIVATE void initialize_epsg_prussian (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n");
2190     fprintf (out,
2191 	     "SPATIALITE_PRIVATE void initialize_epsg_extra (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n\n");
2192 
2193     fprintf (out, "SPATIALITE_PRIVATE void\n");
2194     fprintf (out,
2195 	     "initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last)\n\n");
2196     fprintf (out, "{\n/* initializing the EPSG defs list [EXTRA] */\n");
2197     fprintf (out, "    struct epsg_defs *p;\n");
2198 
2199     fprintf (out,
2200 	     "    p = add_epsg_def (filter, first, last, 40000, \"gfoss.it\", 1,\n");
2201     fprintf (out, "        \"Italy mainland zone 1 GB Roma40\");\n");
2202     fprintf (out, "    add_proj4text (p, 0,\n");
2203     fprintf (out,
2204 	     "        \"+proj=tmerc+lat_0=0 +lon_0=9  +k=0.9996 +x_0=1500000 +y_\");\n");
2205     fprintf (out, "    add_proj4text (p, 1,\n");
2206     fprintf (out,
2207 	     "        \"0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97\");\n");
2208     fprintf (out,
2209 	     "    add_proj4text (p, 2, \"1,-2.917,0.714,-11.68 +no_defs\");\n");
2210     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2211     fprintf (out,
2212 	     "    p = add_epsg_def (filter, first, last, 40001, \"gfoss.it\", 2,\n");
2213     fprintf (out, "        \"Italy mainland zone 2 GB Roma40\");\n");
2214     fprintf (out, "    add_proj4text (p, 0,\n");
2215     fprintf (out,
2216 	     "        \"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y\");\n");
2217     fprintf (out, "    add_proj4text (p, 1,\n");
2218     fprintf (out,
2219 	     "        \"_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9\");\n");
2220     fprintf (out,
2221 	     "    add_proj4text (p, 2, \"71,-2.917,0.714,-11.68 +no_defs\");\n");
2222     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2223     fprintf (out,
2224 	     "    p = add_epsg_def (filter, first, last, 40002, \"gfoss.it\", 3,\n");
2225     fprintf (out, "        \"Italy Sardinia GB Roma40\");\n");
2226     fprintf (out, "    add_proj4text (p, 0,\n");
2227     fprintf (out,
2228 	     "        \"+proj=tmerc +lat_0=0 +lon_0=9  +k=0.9996 +x_0=1500000 +y\");\n");
2229     fprintf (out, "    add_proj4text (p, 1,\n");
2230     fprintf (out,
2231 	     "        \"_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.\");\n");
2232     fprintf (out,
2233 	     "    add_proj4text (p, 2, \"374,-0.679,-1.379,-9.48 +no_defs\");\n");
2234     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2235     fprintf (out,
2236 	     "    p = add_epsg_def (filter, first, last, 40003, \"gfoss.it\", 4,\n");
2237     fprintf (out, "        \"Italy Sicily GB Roma40\");\n");
2238     fprintf (out, "    add_proj4text (p, 0,\n");
2239     fprintf (out,
2240 	     "        \"+proj=tmerc +lat_0=0 +lon_0=9  +k=0.9996 +x_0=1500000 +y\");\n");
2241     fprintf (out, "    add_proj4text (p, 1,\n");
2242     fprintf (out,
2243 	     "        \"_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6\");\n");
2244     fprintf (out,
2245 	     "    add_proj4text (p, 2, \"90,-2.012,0.459,-28.08  +no_defs\");\n");
2246     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2247 
2248 /* function footer */
2249     do_footer (out, 0);
2250 
2251 /* inserting the pilot function */
2252     fprintf (out, "SPATIALITE_PRIVATE void\n");
2253     fprintf (out,
2254 	     "initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last)\n");
2255     fprintf (out, "{\n/* initializing the EPSG defs list */\n");
2256     fprintf (out, "    struct epsg_defs *p;\n ");
2257     fprintf (out, "/* initializing the EPSG UNKNOWN def [-1] */\n");
2258     fprintf (out,
2259 	     "    p = add_epsg_def (filter, first, last, -1, \"NONE\", -1, \"Undefined - Cartesian\");\n");
2260     fprintf (out, "    add_proj4text (p, 0, \"\");\n");
2261     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n");
2262     fprintf (out,
2263 	     "    p = add_epsg_def (filter, first, last, 0, \"NONE\", 0, \"Undefined - Geographic Long/Lat\");\n");
2264     fprintf (out, "    add_proj4text (p, 0, \"\");\n");
2265     fprintf (out, "    add_srs_wkt (p, 0, \"\");\n\n");
2266     fprintf (out, "    if (filter != GAIA_EPSG_WGS84_ONLY)\n    {\n");
2267     fprintf (out,
2268 	     "#ifndef OMIT_EPSG    /* full EPSG initialization enabled */\n");
2269     for (i = 0; i < sect; i++)
2270 	fprintf (out,
2271 		 "        initialize_epsg_%02d (filter, first, last);\n", i);
2272     fprintf (out, "        initialize_epsg_prussian (filter, first, last);\n");
2273     fprintf (out, "        initialize_epsg_extra (filter, first, last);\n");
2274     fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n");
2275 
2276     fprintf (out, "    }\n");
2277     for (i = 0; i < wgs84_sect; i++)
2278 	fprintf (out,
2279 		 "    initialize_epsg_wgs84_%02d (filter, first, last);\n", i);
2280     fprintf (out, "}\n");
2281 
2282 /* closing the "extra" output file */
2283     fclose (out);
2284     out = NULL;
2285 }
2286 
2287 int
main(void)2288 main (void)
2289 {
2290 /*
2291 /
2292 / Please note: no args are supported !!!
2293 /
2294 / we'll expect to find two input files respectively named:
2295 / - epsg
2296 / - wkt
2297 /
2298 / the C code will be generated into: epsg_inlined.c
2299 /
2300 */
2301     FILE *fl_epsg = NULL;
2302     FILE *fl_out = NULL;
2303     struct epsg_dict epsg;
2304 /* initializing the EPSG dictionary */
2305     epsg.first = NULL;
2306     epsg.last = NULL;
2307     epsg.sorted = NULL;
2308     epsg.count = 0;
2309 /* opening the EPSG input file */
2310     fl_epsg = fopen ("epsg", "rb");
2311     if (fl_epsg == NULL)
2312       {
2313 	  fprintf (stderr, "ERROR: unable to open the \"epsg\" input file\n");
2314 	  goto stop;
2315       }
2316 
2317     if (!parse_epsg (fl_epsg, &epsg))
2318       {
2319 	  fprintf (stderr, "ERROR: malformed EPSG input file\n");
2320 	  goto stop;
2321       }
2322 
2323     if (!sort_epsg (&epsg))
2324       {
2325 	  fprintf (stderr, "ERROR: unable to sort EPSG entries\n");
2326 	  goto stop;
2327       }
2328 
2329     output_c_code (fl_out, &epsg);
2330   stop:
2331     free_epsg (&epsg);
2332     if (fl_epsg)
2333 	fclose (fl_epsg);
2334     if (fl_out)
2335 	fclose (fl_out);
2336     return 0;
2337 }
2338