Index: predict-2.2.3/clients/earthtrack/earthtrack.c
===================================================================
--- predict-2.2.3.orig/clients/earthtrack/earthtrack.c	2009-11-14 11:04:01.000000000 -0500
+++ predict-2.2.3/clients/earthtrack/earthtrack.c	2009-11-14 11:06:02.000000000 -0500
@@ -350,17 +350,22 @@
 char argc, *argv[];
 {
 	int x, y, z, updateinterval, satnum=0, radius=50, sleeptime=20;
+	int background=0;
 	char buf[128], command[255], satlist[625], satname[26],
 	     satnamelist[26][26], callsign[15], markerfile[50],
 	     greatarcfile[50], configfile[50], sat2track[30],
-	     hostname[50], color[35], xtra[50], xplanet=0,
+	     outfname[250]="",
+	     screenpos[10]="200,200",
+	     hostname[50], color[35], xtra[50],proj[25], xplanet=1,
+	     backimage[26]="~/.predict/background.jpg ",
+	     earthpref[25]="~/.predict/earth_",
 	     xearth=0, visibility, circledrawn=0, zoom=0;
-	float az, el, slat, slong, qthlat,
+	float az, el, slat, slong, qthlat, magn=0.8,
 	      qthlong, footprint, range, altitude,
 	      velocity, mapcenterlat, mapcenterlong;
 	long next_event_time, orbitnum, starttime, endtime, current_time;
 	time_t t;
-	FILE *fd=NULL;
+	FILE *fd=NULL,*xplanetfd=NULL;
 
 	/* Parse command-line arguments */
 
@@ -371,39 +376,41 @@
 
 	buf[y]=0;
 
-	if (strncmp(buf,"arthtrack2",10)==0)
+#ifdef notdef
+	if (strncmp(buf,"earthtrack2",10)==0)
 		xplanet=1;
 
 	if (strncmp(buf,"earthtrack",10)==0)
 		xearth=1;
 
+#else
+	/* for Debian, always use xplanet since xearth is non-free! */
+	xplanet=1;
+#endif
 	y=argc-1;
 	xtra[0]=0;
 	hostname[0]=0;
 	sat2track[0]=0;
 	updateinterval=0;
+	strcpy(proj,"ortho "); /* default */
 
 	for (x=1; x<=y; x++)
 	{
 		if (strcmp(argv[x],"-h")==0)
 		{
 			/* Hostname */
-
 			z=x+1;
-
 			if (z<=y && argv[z][0] && argv[z][0]!='-')
 				strncpy(hostname,argv[z],50);
+			x++;
 		}
 
 		if (strcmp(argv[x],"-c")==0 || strcmp(argv[x],"-C")==0)
 		{
 			/* Center map on this satellite */
-
 			z=x+1;
-
 			if (z<=y && argv[z][0] && argv[z][0]!='-')
 				strncpy(sat2track,argv[z],30);
-
 			if (argv[x][1]=='C')
 				zoom=1;
 		}
@@ -411,21 +418,49 @@
 		if (strcmp(argv[x],"-u")==0)
 		{
 			/* Screen update interval */
-
 			z=x+1;
-
 			if (z<=y && argv[z][0] && argv[z][0]!='-')
 				sscanf(argv[z],"%d",&updateinterval);
+			x++;
+		}
+
+		if (strcmp(argv[x],"-o")==0) {
+		  /* outfile */
+		  xplanet=1;
+		  strcpy(outfname," -output /tmp/xplanet.png "); /* default */
+		  if (argv[x+1][0] != '-') { /* Oh, a file name, not another switch? */
+		    sprintf(outfname," -output %s ",argv[x+1]); /* use that instead */
+		    x++;
+		  }
+		}
+
+		if (strcmp(argv[x],"-p")==0) {
+		  /* projection */
+		  if (argv[x+1][0]!='-') {
+		    strcpy(proj,argv[x+1]); /* override default */
+		    magn=1.0;
+		    x++;
+		  }
+		}
+
+		if (strcmp(argv[x],"-g")==0) {
+		  /* X display Geometery, Screen position */
+		  z=x+1;
+		  background=1;
+		  if (z<=y && argv[z][0] && argv[z][0]!='-') {
+		    strncpy(screenpos,argv[z],10);
+		    x++;
+		  }
+
 		}
 
 		if (strcmp(argv[x],"-x")==0)
 		{
 			/* Extra commands to pass to xplanet or xearth */
-
 			z=x+1;
-
 			if (z<=y && argv[z][0])
 				strncpy(xtra,argv[z],50);
+			x++;
 		}
 	}
 
@@ -528,6 +563,13 @@
 		markerfd=fopen(markerfile,"w");
 		greatarcfd=fopen(greatarcfile,"w");
 
+		/*
+		xplanetfd=fopen(configfile,"w");
+		fprintf(xplanetfd,"[earth]\nmarker_file=%s\n",
+		  markerfile);
+		fclose(xplanetfd);
+		*/
+
 		fprintf(markerfd,"%8.3f %8.3f %c%s%c\n",qthlat,qthlong,34,callsign,34);
 
 		for (z=0; z<satnum; z++)
