Description: Accumulated changes to upstream
 All the changes that have been made to the pristine upstream over time.
 If anyone wants to split these into individual patches, go for your life.

--- ninvaders-0.1.1.orig/aliens.c
+++ ninvaders-0.1.1/aliens.c
@@ -21,18 +21,30 @@
  *
  */
 
- 
+
 #include "aliens.h"
 #include "player.h"
 #include "nInvaders.h"
 
+Aliens aliens;
+
+int lowest_ship[ALIENS_MAX_NUMBER_X];
+int alienshotx[ALIENS_MAX_MISSILES];
+int alienshoty[ALIENS_MAX_MISSILES];
+int alienshotnum;
+int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
+
+int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];
+
+int shipnum;
+
 /**
  * initialize aliens attributes
  */
 void aliensReset()
 {
 	int i,j;
-	
+
 	// three different types of aliens [5], [10]
 	int level[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X]={
 		{1,1,1,1,1,1,1,1,1,1},
@@ -43,7 +55,7 @@ void aliensReset()
 	};
 
 	aliensClear(aliens.posX, aliens.posY, aliens.right, aliens.bottom);	// clear old position of aliens
-	
+
 	// reset alien position
 	aliens.posX = 0;
 	aliens.posY = 0;
@@ -51,14 +63,14 @@ void aliensReset()
 	aliens.bottom = 0;
 	aliens.left = 0;
 	aliens.speed = 1;
-	
-	// copy level-array to enemy-array 
+
+	// copy level-array to enemy-array
 	for (i=0;i<ALIENS_MAX_NUMBER_X;i++) {
 		for (j=0;j<ALIENS_MAX_NUMBER_Y;j++) {
 			alienBlock[j][i]=level[j][i];
 		}
 	}
-	
+
 	// reset missiles
 	for (i = 0; i < ALIENS_MAX_MISSILES; i++) {
 		if (alienshotx[i] != 0) {
@@ -100,9 +112,9 @@ void bunkersReset()
 				bunker[b][a] = 0;
 		}
 	}
-	
+
 	// display bunkers sprite
-	bunkersDisplay(&bunker[0][0]);	
+	bunkersDisplay(&bunker[0][0]);
 }
 
 /**
@@ -111,62 +123,62 @@ void bunkersReset()
  */
 int aliensMove()
 {
-	
+
 	int cx,cy;
 	int fReachedPlayer=0; 				// return value
 
-	render();	
+	render();
 	aliensClear(aliens.posX, aliens.posY, aliens.right, aliens.bottom);	// clear old position of aliens
 
 	aliens.posX = aliens.posX + aliens.speed;			// move aliens left/ right
-	
+
 	// when aliens reached left or right screen-border
 	if (aliens.posX == (BUNKERWIDTH + BUNKERX - 5 - aliens.right) || aliens.posX == (BUNKERX + aliens.left)) {
-		
+
 		aliens.posY++;				// move aliens downwards
-		
+
 		// aliens reached player
 		if (aliens.posY == SCREENHEIGHT - 2 - aliens.bottom) {
 			fReachedPlayer = 1;		// set return value
 		}
-		
+
 		// aliens reached bunkers //funzt nicht ganz: todo
 		if (aliens.posY == BUNKERY - aliens.bottom) {
 			// clear bunkers
 			for(cx=0;cx<BUNKERWIDTH;cx++) {
-				for(cy=0;cy<BUNKERHEIGHT;cy++) { 
-					bunker[cy][cx]=0;	
+				for(cy=0;cy<BUNKERHEIGHT;cy++) {
+					bunker[cy][cx]=0;
 				}
 			}
 			bunkersClear();	// clear bunkers sprites
 		}
-		
+
 		aliens.speed = aliens.speed * (-1);		  // change direction of aliens' movements
 	}
 
 	aliensDisplay(aliens.posX, aliens.posY, aliens.right, aliens.bottom); // display aliens at new position
-	
+
 	return fReachedPlayer;				  // return if aliens reached player
 }
 
 
 /**
- * display alien animation, display remaining parts of aliens and bunker 
+ * display alien animation, display remaining parts of aliens and bunker
  */
 void render()
 {
 	int k,row;
 	int c=0;
 
-	// calculate left, right, bottom, lowest_ship	
+	// calculate left, right, bottom, lowest_ship
 	aliens.left=1;
 	aliens.right=-1;
 	aliens.bottom=-1;
 	shipnum=0;
-	for (k=0;k<11;k++) {
+	for (k=0;k<ALIENS_MAX_NUMBER_X;k++) {
 		lowest_ship[k]=-1;
 	}
-	
+
 	for (row=0;row<ALIENS_MAX_NUMBER_Y*2;row++) {
 		if ((row%2)==0){
 			for (k=0;k<ALIENS_MAX_NUMBER_X;k++) {
@@ -176,7 +188,7 @@ void render()
 					if (aliens.left==1 || -k>aliens.left) {aliens.left=-k;}
 					if (aliens.right==-1 || k>aliens.right) {aliens.right=k;}
 					if (aliens.bottom==-1 || c>aliens.bottom) {aliens.bottom=c;}
-				} 
+				}
 			}
 		} else {
 			c++;
@@ -185,7 +197,7 @@ void render()
 	aliens.bottom=aliens.bottom*2;	// every 2nd row is an empty row
 	aliens.left=aliens.left*3; // alien sprite is 3 chars wide
 	aliens.right=aliens.right*3; // alien sprite is 3 chars wide
-	
+
 	// display remaining aliens with animation
 	aliensRefresh(level, &alienBlock[0][0]);
 
@@ -203,39 +215,39 @@ int aliensMissileMove()
 	int shootThreshold;
 	static int alienshot_counter = 0;
 
-	
+
 	// calculate threshold when next missile should be fired
-	// it is done here to save calculation time in for-instruction 
+	// it is done here to save calculation time in for-instruction
 	shootThreshold = (skill_level * 8) * (shipnum + 2);
 	alienshot_counter = alienshot_counter + 10 ;
-	
+
 	// loop all possible missiles
 	for (i = 0; i < ALIENS_MAX_MISSILES; i++) {
-		
+
 		// if the current missile is flying we should do movements
 		if (alienshotx[i] != 0) {
-			
+
 			aliensMissileClear(alienshotx[i],alienshoty[i]);	// clear old position
-				
-			// if missile hit the bunkers	
+
+			// if missile hit the bunkers
 			if (bunkersHitCheck(alienshotx[i], alienshoty[i]) == 1) {
 				alienshotx[i] = 0;		// value of zero reloads missile
 			}
-			
+
 			alienshoty[i]++;			// move missile downwards
-			
+
 			// check if player was hit by an alien missile
 			if (playerHitCheck(alienshotx[i], alienshoty[i]) == 1) {
 				alienshotx[i] = 0;		// value of zero reloads missile
 				fPlayerWasHit = 1;
 			}
-			
-			
+
+
 		} else {					// missile not launched yet
-			
+
 			// start new missile if counter says so
 			if (alienshot_counter > shootThreshold && shipnum > 0) {// only shot if there's an alien left
-				alienshot_counter = 0;				// reset counter				
+				alienshot_counter = 0;				// reset counter
 				tmp = random() % ALIENS_MAX_NUMBER_X;  		// randomly select one of the ...
 				while (lowest_ship[tmp] == -1) {		// ...aliens at the bottom of ...
 					tmp = random() % ALIENS_MAX_NUMBER_X;	// ...a column to launch missile
@@ -243,18 +255,18 @@ int aliensMissileMove()
 				alienshoty[i]=aliens.posY+lowest_ship[tmp];		// set y position of missile
 				alienshotx[i]=aliens.posX+tmp*3;			// set x position of missile
 			}
-		} // if 
-		
+		} // if
+
 		// display missiles if still running or just launched; could have been modified in the above code
 		if (alienshotx[i] != 0) {
-			// if missile is out of battlefield 
+			// if missile is out of battlefield
 			if (alienshoty[i] == SCREENHEIGHT - 1) {
-				alienshotx[i] = 0;	// reload missile	
+				alienshotx[i] = 0;	// reload missile
 			} else {
 				aliensMissileDisplay(alienshotx[i], alienshoty[i]); // display Missile at new position
 			}
-		}		
-		
+		}
+
 	} // for
 
 
@@ -270,7 +282,7 @@ int aliensHitCheck(int shotx, int shoty)
 {
 	int alienType = 0;
 	int shipx, shipy;
-	// if missile is within alien-rectangle 
+	// if missile is within alien-rectangle
 	if (shotx >= aliens.posX && shotx <= aliens.posX + ALIENS_MAX_NUMBER_X * 3 - 1
 	    && shoty >= aliens.posY && shoty <= aliens.posY + (ALIENS_MAX_NUMBER_Y - 1) * 2) {
 		// calculate the ship that was hit
@@ -296,7 +308,7 @@ int bunkersHitCheck(int shotx, int shoty
 	if (shotx >= BUNKERX && shotx < BUNKERX + BUNKERWIDTH
 	    && shoty >= BUNKERY && shoty < BUNKERY + BUNKERHEIGHT) {
 		// calculate the element of the bunker that was hit
-		adjy = shoty - BUNKERY; 
+		adjy = shoty - BUNKERY;
 		adjx = shotx - BUNKERX;
 		// if there is still an element
 		if(bunker[adjy][adjx] == 1){
--- ninvaders-0.1.1.orig/aliens.h
+++ ninvaders-0.1.1/aliens.h
@@ -20,15 +20,15 @@
  * mailto: ninvaders-devel@lists.sourceforge.net
  *
  */
- 
- 
+
+
 #include "view.h"
 
 #ifndef ALIENS
 #define ALIENS
 
 typedef struct Aliens Aliens;
-	
+
 struct Aliens {
 	int posX;	  // horizontal position of aliens
 	int posY;	  // vertical position of aliens
@@ -37,34 +37,34 @@ struct Aliens {
 	int bottom;
 	int speed;	  // 0: no movement; 1: one per turn; etc.
 };
-	
-Aliens aliens;
-		
-int shipnum;	
+
+extern Aliens aliens;
+
+extern int shipnum;
 
 #define ALIENS_MAX_NUMBER_X 10
-#define ALIENS_MAX_NUMBER_Y 5	
-#define ALIENS_MAX_MISSILES 10	
+#define ALIENS_MAX_NUMBER_Y 5
+#define ALIENS_MAX_MISSILES 10
 
 // todo: move to structure
-int lowest_ship[ALIENS_MAX_NUMBER_X];
-int alienshotx[ALIENS_MAX_MISSILES];
-int alienshoty[ALIENS_MAX_MISSILES];
-int alienshotnum;
-int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
+extern int lowest_ship[ALIENS_MAX_NUMBER_X];
+extern int alienshotx[ALIENS_MAX_MISSILES];
+extern int alienshoty[ALIENS_MAX_MISSILES];
+extern int alienshotnum;
+extern int alienBlock[ALIENS_MAX_NUMBER_Y][ALIENS_MAX_NUMBER_X];
 
-int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];	
+extern int bunker[BUNKERHEIGHT][BUNKERWIDTH + 1];
 
 
 void aliensReset();
-void bunkersReset();	
+void bunkersReset();
 int aliensMove();
 int aliensMissileMove();
 void render();
 int aliensHitCheck(int shotx, int shoty);
 int bunkersHitCheck(int shotx, int shoty);
 
-	
+
 // methods that handle graphic display, from view.c
 extern void aliensDisplay(int x, int y, int wid, int hgt);
 extern void aliensClear(int x, int y, int wid, int hgt);
@@ -74,5 +74,5 @@ extern void aliensMissileClear(int x, in
 extern void bunkersClearElement(int x, int y);
 extern void bunkersClear();
 extern void bunkersRefresh();
-	
+
 #endif
--- ninvaders-0.1.1.orig/globals.c
+++ ninvaders-0.1.1/globals.c
@@ -24,6 +24,8 @@
  
 #include <stdio.h>
 #include <unistd.h>
+#include <stdlib.h>
+
 #include "globals.h"
 
 
@@ -116,415 +118,40 @@ void showGplShort()
  */
 void showGpl()
 {
-	fprintf(stderr, "\n");
-	fprintf(stderr, "		    GNU GENERAL PUBLIC LICENSE\n");
-	fprintf(stderr, "		       Version 2, June 1991\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n");
-	fprintf(stderr, " 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n");
-	fprintf(stderr, " Everyone is permitted to copy and distribute verbatim copies\n");
-	fprintf(stderr, " of this license document, but changing it is not allowed.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "			    Preamble\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  The licenses for most software are designed to take away your\n");
-	fprintf(stderr, "freedom to share and change it.  By contrast, the GNU General Public\n");
-	fprintf(stderr, "License is intended to guarantee your freedom to share and change free \n");
-	fprintf(stderr, "software--to make sure the software is free for all its users. This\n");
-	fprintf(stderr, "General Public License applies to most of the Free Software\n");
-	fprintf(stderr, "Foundation's software and to any other program whose authors commit to\n");
-	fprintf(stderr, "using it.  (Some other Free Software Foundation software is covered by\n");
-	fprintf(stderr, "the GNU Library General Public License instead.)  You can apply it to\n");
-	fprintf(stderr, "your programs, too.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  When we speak of free software, we are referring to freedom, not\n");
-	fprintf(stderr, "price.  Our General Public Licenses are designed to make sure that you\n");
-	fprintf(stderr, "have the freedom to distribute copies of free software (and charge for\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "this service if you wish), that you receive source code or can get it\n");
-	fprintf(stderr, "if you want it, that you can change the software or use pieces of it\n");
-	fprintf(stderr, "in new free programs; and that you know you can do these things.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  To protect your rights, we need to make restrictions that forbid\n");
-	fprintf(stderr, "anyone to deny you these rights or to ask you to surrender the rights.\n");
-	fprintf(stderr, "These restrictions translate to certain responsibilities for you if you\n");
-	fprintf(stderr, "distribute copies of the software, or if you modify it.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  For example, if you distribute copies of such a program, whether\n");
-	fprintf(stderr, "gratis or for a fee, you must give the recipients all the rights that\n");
-	fprintf(stderr, "you have.  You must make sure that they, too, receive or can get the\n");
-	fprintf(stderr, "source code.  And you must show them these terms so they know their\n");
-	fprintf(stderr, "rights.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  We protect your rights with two steps: (1) copyright the software, and\n");
-	fprintf(stderr, "(2) offer you this license which gives you legal permission to copy,\n");
-	fprintf(stderr, "distribute and/or modify the software.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  Also, for each author's protection and ours, we want to make certain\n");
-	fprintf(stderr, "that everyone understands that there is no warranty for this free\n");
-	fprintf(stderr, "software.  If the software is modified by someone else and passed on, we\n");
-	fprintf(stderr, "want its recipients to know that what they have is not the original, so\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "that any problems introduced by others will not reflect on the original\n");
-	fprintf(stderr, "authors' reputations.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  Finally, any free program is threatened constantly by software\n");
-	fprintf(stderr, "patents.  We wish to avoid the danger that redistributors of a free\n");
-	fprintf(stderr, "program will individually obtain patent licenses, in effect making the\n");
-	fprintf(stderr, "program proprietary.  To prevent this, we have made it clear that any\n");
-	fprintf(stderr, "patent must be licensed for everyone's free use or not licensed at all.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  The precise terms and conditions for copying, distribution and\n");
-	fprintf(stderr, "modification follow.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "		    GNU GENERAL PUBLIC LICENSE\n");
-	fprintf(stderr, "   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  0. This License applies to any program or other work which contains\n");
-	fprintf(stderr, "a notice placed by the copyright holder saying it may be distributed\n");
-	fprintf(stderr, "under the terms of this General Public License.  The 'Program', below,\n");
-	fprintf(stderr, "refers to any such program or work, and a 'work based on the Program'\n");
-	fprintf(stderr, "means either the Program or any derivative work under copyright law:\n");
-	fprintf(stderr, "that is to say, a work containing the Program or a portion of it,\n");
-	fprintf(stderr, "either verbatim or with modifications and/or translated into another\n");
-	fprintf(stderr, "language.  (Hereinafter, translation is included without limitation in\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "the term 'modification'.)  Each licensee is addressed as 'you'.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Activities other than copying, distribution and modification are not\n");
-	fprintf(stderr, "covered by this License; they are outside its scope.  The act of\n");
-	fprintf(stderr, "running the Program is not restricted, and the output from the Program\n");
-	fprintf(stderr, "is covered only if its contents constitute a work based on the\n");
-	fprintf(stderr, "Program (independent of having been made by running the Program).\n");
-	fprintf(stderr, "Whether that is true depends on what the Program does.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  1. You may copy and distribute verbatim copies of the Program's\n");
-	fprintf(stderr, "source code as you receive it, in any medium, provided that you\n");
-	fprintf(stderr, "conspicuously and appropriately publish on each copy an appropriate\n");
-	fprintf(stderr, "copyright notice and disclaimer of warranty; keep intact all the\n");
-	fprintf(stderr, "notices that refer to this License and to the absence of any warranty;\n");
-	fprintf(stderr, "and give any other recipients of the Program a copy of this License\n");
-	fprintf(stderr, "along with the Program.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "You may charge a fee for the physical act of transferring a copy, and\n");
-	fprintf(stderr, "you may at your option offer warranty protection in exchange for a fee.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  2. You may modify your copy or copies of the Program or any portion\n");
-	fprintf(stderr, "of it, thus forming a work based on the Program, and copy and\n");
-	fprintf(stderr, "distribute such modifications or work under the terms of Section 1\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "above, provided that you also meet all of these conditions:\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    a) You must cause the modified files to carry prominent notices\n");
-	fprintf(stderr, "    stating that you changed the files and the date of any change.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    b) You must cause any work that you distribute or publish, that in\n");
-	fprintf(stderr, "    whole or in part contains or is derived from the Program or any\n");
-	fprintf(stderr, "    part thereof, to be licensed as a whole at no charge to all third\n");
-	fprintf(stderr, "    parties under the terms of this License.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    c) If the modified program normally reads commands interactively\n");
-	fprintf(stderr, "    when run, you must cause it, when started running for such\n");
-	fprintf(stderr, "    interactive use in the most ordinary way, to print or display an\n");
-	fprintf(stderr, "    announcement including an appropriate copyright notice and a\n");
-	fprintf(stderr, "    notice that there is no warranty (or else, saying that you provide\n");
-	fprintf(stderr, "    a warranty) and that users may redistribute the program under\n");
-	fprintf(stderr, "    these conditions, and telling the user how to view a copy of this\n");
-	fprintf(stderr, "    License.  (Exception: if the Program itself is interactive but\n");
-	fprintf(stderr, "    does not normally print such an announcement, your work based on\n");
-	fprintf(stderr, "    the Program is not required to print an announcement.)\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "These requirements apply to the modified work as a whole.  If\n");
-	fprintf(stderr, "identifiable sections of that work are not derived from the Program,\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "and can be reasonably considered independent and separate works in\n");
-	fprintf(stderr, "themselves, then this License, and its terms, do not apply to those\n");
-	fprintf(stderr, "sections when you distribute them as separate works.  But when you\n");
-	fprintf(stderr, "distribute the same sections as part of a whole which is a work based\n");
-	fprintf(stderr, "on the Program, the distribution of the whole must be on the terms of\n");
-	fprintf(stderr, "this License, whose permissions for other licensees extend to the\n");
-	fprintf(stderr, "entire whole, and thus to each and every part regardless of who wrote it.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Thus, it is not the intent of this section to claim rights or contest\n");
-	fprintf(stderr, "your rights to work written entirely by you; rather, the intent is to\n");
-	fprintf(stderr, "exercise the right to control the distribution of derivative or\n");
-	fprintf(stderr, "collective works based on the Program.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "In addition, mere aggregation of another work not based on the Program\n");
-	fprintf(stderr, "with the Program (or with a work based on the Program) on a volume of\n");
-	fprintf(stderr, "a storage or distribution medium does not bring the other work under\n");
-	fprintf(stderr, "the scope of this License.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  3. You may copy and distribute the Program (or a work based on it,\n");
-	fprintf(stderr, "under Section 2) in object code or executable form under the terms of\n");
-	fprintf(stderr, "Sections 1 and 2 above provided that you also do one of the following:\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    a) Accompany it with the complete corresponding machine-readable\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    source code, which must be distributed under the terms of Sections\n");
-	fprintf(stderr, "    1 and 2 above on a medium customarily used for software interchange; or,\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    b) Accompany it with a written offer, valid for at least three\n");
-	fprintf(stderr, "    years, to give any third party, for a charge no more than your\n");
-	fprintf(stderr, "    cost of physically performing source distribution, a complete\n");
-	fprintf(stderr, "    machine-readable copy of the corresponding source code, to be\n");
-	fprintf(stderr, "    distributed under the terms of Sections 1 and 2 above on a medium\n");
-	fprintf(stderr, "    customarily used for software interchange; or,\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    c) Accompany it with the information you received as to the offer\n");
-	fprintf(stderr, "    to distribute corresponding source code.  (This alternative is\n");
-	fprintf(stderr, "    allowed only for noncommercial distribution and only if you\n");
-	fprintf(stderr, "    received the program in object code or executable form with such\n");
-	fprintf(stderr, "    an offer, in accord with Subsection b above.)\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "The source code for a work means the preferred form of the work for\n");
-	fprintf(stderr, "making modifications to it.  For an executable work, complete source\n");
-	fprintf(stderr, "code means all the source code for all modules it contains, plus any\n");
-	fprintf(stderr, "associated interface definition files, plus the scripts used to\n");
-	fprintf(stderr, "control compilation and installation of the executable.  However, as a\n");
-	fprintf(stderr, "special exception, the source code distributed need not include\n");
-	fprintf(stderr, "anything that is normally distributed (in either source or binary\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "form) with the major components (compiler, kernel, and so on) of the\n");
-	fprintf(stderr, "operating system on which the executable runs, unless that component\n");
-	fprintf(stderr, "itself accompanies the executable.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "If distribution of executable or object code is made by offering\n");
-	fprintf(stderr, "access to copy from a designated place, then offering equivalent\n");
-	fprintf(stderr, "access to copy the source code from the same place counts as\n");
-	fprintf(stderr, "distribution of the source code, even though third parties are not\n");
-	fprintf(stderr, "compelled to copy the source along with the object code.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  4. You may not copy, modify, sublicense, or distribute the Program\n");
-	fprintf(stderr, "except as expressly provided under this License.  Any attempt\n");
-	fprintf(stderr, "otherwise to copy, modify, sublicense or distribute the Program is\n");
-	fprintf(stderr, "void, and will automatically terminate your rights under this License.\n");
-	fprintf(stderr, "However, parties who have received copies, or rights, from you under\n");
-	fprintf(stderr, "this License will not have their licenses terminated so long as such\n");
-	fprintf(stderr, "parties remain in full compliance.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  5. You are not required to accept this License, since you have not\n");
-	fprintf(stderr, "signed it.  However, nothing else grants you permission to modify or\n");
-	fprintf(stderr, "distribute the Program or its derivative works.  These actions are\n");
-	fprintf(stderr, "prohibited by law if you do not accept this License.  Therefore, by\n");
-	fprintf(stderr, "modifying or distributing the Program (or any work based on the\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Program), you indicate your acceptance of this License to do so, and\n");
-	fprintf(stderr, "all its terms and conditions for copying, distributing or modifying\n");
-	fprintf(stderr, "the Program or works based on it.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  6. Each time you redistribute the Program (or any work based on the\n");
-	fprintf(stderr, "Program), the recipient automatically receives a license from the\n");
-	fprintf(stderr, "original licensor to copy, distribute or modify the Program subject to\n");
-	fprintf(stderr, "these terms and conditions.  You may not impose any further\n");
-	fprintf(stderr, "restrictions on the recipients' exercise of the rights granted herein.\n");
-	fprintf(stderr, "You are not responsible for enforcing compliance by third parties to\n");
-	fprintf(stderr, "this License.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  7. If, as a consequence of a court judgment or allegation of patent\n");
-	fprintf(stderr, "infringement or for any other reason (not limited to patent issues),\n");
-	fprintf(stderr, "conditions are imposed on you (whether by court order, agreement or\n");
-	fprintf(stderr, "otherwise) that contradict the conditions of this License, they do not\n");
-	fprintf(stderr, "excuse you from the conditions of this License.  If you cannot\n");
-	fprintf(stderr, "distribute so as to satisfy simultaneously your obligations under this\n");
-	fprintf(stderr, "License and any other pertinent obligations, then as a consequence you\n");
-	fprintf(stderr, "may not distribute the Program at all.  For example, if a patent\n");
-	fprintf(stderr, "license would not permit royalty-free redistribution of the Program by\n");
-	fprintf(stderr, "all those who receive copies directly or indirectly through you, then\n");
-	fprintf(stderr, "the only way you could satisfy both it and this License would be to\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "refrain entirely from distribution of the Program.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "If any portion of this section is held invalid or unenforceable under\n");
-	fprintf(stderr, "any particular circumstance, the balance of the section is intended to\n");
-	fprintf(stderr, "apply and the section as a whole is intended to apply in other\n");
-	fprintf(stderr, "circumstances.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "It is not the purpose of this section to induce you to infringe any\n");
-	fprintf(stderr, "patents or other property right claims or to contest validity of any\n");
-	fprintf(stderr, "such claims; this section has the sole purpose of protecting the\n");
-	fprintf(stderr, "integrity of the free software distribution system, which is\n");
-	fprintf(stderr, "implemented by public license practices.  Many people have made\n");
-	fprintf(stderr, "generous contributions to the wide range of software distributed\n");
-	fprintf(stderr, "through that system in reliance on consistent application of that\n");
-	fprintf(stderr, "system; it is up to the author/donor to decide if he or she is willing\n");
-	fprintf(stderr, "to distribute software through any other system and a licensee cannot\n");
-	fprintf(stderr, "impose that choice.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "This section is intended to make thoroughly clear what is believed to\n");
-	fprintf(stderr, "be a consequence of the rest of this License.\n");
-	fprintf(stderr, "  8. If the distribution and/or use of the Program is restricted in\n");
-	fprintf(stderr, "certain countries either by patents or by copyrighted interfaces, the\n");
-	fprintf(stderr, "original copyright holder who places the Program under this License\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-		
-	fprintf(stderr, "\n");
-	fprintf(stderr, "may add an explicit geographical distribution limitation excluding\n");
-	fprintf(stderr, "those countries, so that distribution is permitted only in or among\n");
-	fprintf(stderr, "countries not thus excluded.  In such case, this License incorporates\n");
-	fprintf(stderr, "the limitation as if written in the body of this License.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  9. The Free Software Foundation may publish revised and/or new versions\n");
-	fprintf(stderr, "of the General Public License from time to time.  Such new versions will\n");
-	fprintf(stderr, "be similar in spirit to the present version, but may differ in detail to\n");
-	fprintf(stderr, "address new problems or concerns.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Each version is given a distinguishing version number.  If the Program\n");
-	fprintf(stderr, "specifies a version number of this License which applies to it and 'any\n");
-	fprintf(stderr, "later version', you have the option of following the terms and conditions\n");
-	fprintf(stderr, "either of that version or of any later version published by the Free\n");
-	fprintf(stderr, "Software Foundation.  If the Program does not specify a version number of\n");
-	fprintf(stderr, "this License, you may choose any version ever published by the Free Software\n");
-	fprintf(stderr, "Foundation.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  10. If you wish to incorporate parts of the Program into other free\n");
-	fprintf(stderr, "programs whose distribution conditions are different, write to the author\n");
-	fprintf(stderr, "to ask for permission.  For software which is copyrighted by the Free\n");
-	fprintf(stderr, "Software Foundation, write to the Free Software Foundation; we sometimes\n");
-	fprintf(stderr, "make exceptions for this.  Our decision will be guided by the two goals\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "of preserving the free status of all derivatives of our free software and\n");
-	fprintf(stderr, "of promoting the sharing and reuse of software generally.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "			    NO WARRANTY\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n");
-	fprintf(stderr, "FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\n");
-	fprintf(stderr, "OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n");
-	fprintf(stderr, "PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n");
-	fprintf(stderr, "OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n");
-	fprintf(stderr, "MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\n");
-	fprintf(stderr, "TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\n");
-	fprintf(stderr, "PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n");
-	fprintf(stderr, "REPAIR OR CORRECTION.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n");
-	fprintf(stderr, "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n");
-	fprintf(stderr, "REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n");
-	fprintf(stderr, "INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n");
-	fprintf(stderr, "OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n");
-	fprintf(stderr, "TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n");
-	fprintf(stderr, "YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n");
-	fprintf(stderr, "PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "POSSIBILITY OF SUCH DAMAGES.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "		     END OF TERMS AND CONDITIONS\n");
-	fprintf(stderr, "	    How to Apply These Terms to Your New Programs\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  If you develop a new program, and you want it to be of the greatest\n");
-	fprintf(stderr, "possible use to the public, the best way to achieve this is to make it\n");
-	fprintf(stderr, "free software which everyone can redistribute and change under these terms.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  To do so, attach the following notices to the program.  It is safest\n");
-	fprintf(stderr, "to attach them to the start of each source file to most effectively\n");
-	fprintf(stderr, "convey the exclusion of warranty; and each file should have at least\n");
-	fprintf(stderr, "the 'copyright' line and a pointer to where the full notice is found.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    <one line to give the program's name and a brief idea of what it does.>\n");
-	fprintf(stderr, "    Copyright (C) <year>  <name of author>\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    This program is free software; you can redistribute it and/or modify\n");
-	fprintf(stderr, "    it under the terms of the GNU General Public License as published by\n");
-	fprintf(stderr, "    the Free Software Foundation; either version 2 of the License, or\n");
-	fprintf(stderr, "    (at your option) any later version.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    This program is distributed in the hope that it will be useful,\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    but WITHOUT ANY WARRANTY; without even the implied warranty of\n");
-	fprintf(stderr, "    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n");
-	fprintf(stderr, "    GNU General Public License for more details.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    You should have received a copy of the GNU General Public License\n");
-	fprintf(stderr, "    along with this program; if not, write to the Free Software\n");
-	fprintf(stderr, "    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "Also add information on how to contact you by electronic and paper mail.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "If the program is interactive, make it output a short notice like this\n");
-	fprintf(stderr, "when it starts in an interactive mode:\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "    Gnomovision version 69, Copyright (C) year name of author\n");
-	fprintf(stderr, "    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n");
-	fprintf(stderr, "    This is free software, and you are welcome to redistribute it\n");
-	fprintf(stderr, "    under certain conditions; type `show c' for details.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "The hypothetical commands `show w' and `show c' should show the appropriate\n");
-	fprintf(stderr, "parts of the General Public License.  Of course, the commands you use may\n");
-	fprintf(stderr, "be called something other than `show w' and `show c'; they could even be\n");
-	fprintf(stderr, "mouse-clicks or menu items--whatever suits your program.\n");
-	fprintf(stderr, "\n");
-	
-		waitForReturn();
-	
-	fprintf(stderr, "\n");
-	fprintf(stderr, "You should also get your employer (if you work as a programmer) or your\n");
-	fprintf(stderr, "school, if any, to sign a 'copyright disclaimer' for the program, if\n");
-	fprintf(stderr, "necessary.  Here is a sample; alter the names:\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n");
-	fprintf(stderr, "  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "  <signature of Ty Coon>, 1 April 1989\n");
-	fprintf(stderr, "  Ty Coon, President of Vice\n");
-	fprintf(stderr, "\n");
-	fprintf(stderr, "This General Public License does not permit incorporating your program into\n");
-	fprintf(stderr, "proprietary programs.  If your program is a subroutine library, you may\n");
-	fprintf(stderr, "consider it more useful to permit linking proprietary applications with the\n");
-	fprintf(stderr, "library.  If this is what you want to do, use the GNU Library General\n");
-	fprintf(stderr, "Public License instead of this License.\n");
-	fprintf(stderr, "\n");
-	
+	/* Fix fuxored GPL display */
+
+	FILE	*GPL;
+
+	char    gpl_file[] = "/usr/share/common-licenses/GPL";
+	char    *buff = NULL;
+	char    *check = NULL;
+
+	int     lines = 23;
+	int     buff_size = 4096;
+	int     count = 0;
+
+	if (!(GPL = fopen(gpl_file, "r"))) {
+		perror("gpl():\t");
+		return;
+	}
+
+	if (!(buff = calloc(buff_size, sizeof(char)))) {
+		perror("gpl():\t");
+		fclose(GPL);
+		return;
+	}
+
+	do {
+		while (count < lines && (check = fgets(buff, buff_size, GPL))) {
+			fputs(buff, stderr);
+			count++;
+		}
+
+		/* Pause */
 		waitForReturn();
+		count = 0;
+	} while (check);
 
+	fclose(GPL);
+	free(buff);
 }
--- ninvaders-0.1.1.orig/nInvaders.c
+++ ninvaders-0.1.1/nInvaders.c
@@ -32,9 +32,13 @@
 
 #define FPS 50
 
+// todo: let's try to not having to declare these "public"
 int lives;
 long score;
 int status; // status handled in timer
+int weite;
+int level;
+int skill_level;
 
 #define GAME_LOOP 1
 #define GAME_NEXTLEVEL 2
@@ -61,11 +65,11 @@ static void initLevel()
 
 
 /**
- * evaluate command line parameters 
+ * evaluate command line parameters
  */
 static void evaluateCommandLine(int argc, char **argv)
 {
-	
+
 	// -l : set skill level
 	if (argc == 3 && strcmp(argv[1], "-l") == 0) {
 		if (argv[2][0] >= '0' && argv[2][0] <= '9') {
@@ -93,12 +97,12 @@ static void finish(int sig)
 {
         endwin();
 	showGplShort();
-	
+
 	fprintf(stderr,"\n");
 	fprintf(stderr,"\n");
 	fprintf(stderr,"=========================================================================\n");
 	fprintf(stderr,"\n");
-	
+
 	fprintf(stderr,"Final score: %7.7ld, Final level: %2.2d\nFinal rating... ",score,level);
 	if (lives>0)
 		fprintf(stderr,"Quitter\n\n");
@@ -116,7 +120,7 @@ static void finish(int sig)
 		fprintf(stderr,"Earth Defender\n\n");
 	else if(score>19999)
 		fprintf(stderr,"Supreme Protector\n\n");
-	
+
 	showVersion();
         exit(0);
 }
@@ -146,7 +150,7 @@ void readInput()
 			status = GAME_LOOP;
 		}
 		break;
-		       
+
 	case GAME_HIGHSCORE:
 
 		if (ch == ' ') {
@@ -173,7 +177,7 @@ void readInput()
 			}
 			playerMoveRight();		// move player
 			lastmove = 'l';			// remember last move for turbo mode
-		} else if (ch == 'h' || ch == KEY_LEFT) {	// move player left 
+		} else if (ch == 'h' || ch == KEY_LEFT) {	// move player left
 			if (lastmove == 'h') {
 				playerTurboOn();	// enable Turbo
 			} else {
@@ -198,60 +202,60 @@ void readInput()
 		}
 
 	} // switch
-	
+
 }
-	
-	
+
+
 /**
  * timer
- * this method is executed every 1 / FPS seconds  
+ * this method is executed every 1 / FPS seconds
  */
 void handleTimer()
 {
-	static int aliens_move_counter = 0; 
+	static int aliens_move_counter = 0;
 	static int aliens_shot_counter = 0;
 	static int player_shot_counter = 0;
 	static int ufo_move_counter = 0;
 	static int title_animation_counter = 0;
 	static int game_over_counter = 0;
-	
+
 	switch (status) {
-		 
+
 	case GAME_NEXTLEVEL:    // go to next level
-		
+
 		level++;	// increase level
 
 		initLevel();	// initialize level
-		
-		aliens_move_counter = 0; 
+
+		aliens_move_counter = 0;
 		aliens_shot_counter = 0;
 		player_shot_counter = 0;
 		ufo_move_counter = 0;
-		
+
 		weite = (shipnum+(skill_level*10)-(level*5)+5)/10;
-		
+
 		if (weite < 0) {
 			weite = 0;
 		}
-		
+
 		// change status and start game!
 		status = GAME_LOOP;
 
 	case GAME_LOOP:   	 // do game handling
-		
-		// move aliens			
+
+		// move aliens
 		if (aliens_move_counter == 0 && aliensMove() == 1) {
 			// aliens reached player
 			lives = 0;
 			status = GAME_OVER;
 		}
-		
-		// move player missile			
+
+		// move player missile
 		if (player_shot_counter == 0 && playerMoveMissile() == 1) {
 			// no aliens left
 			status = GAME_NEXTLEVEL;
 		}
-		
+
 		// move aliens' missiles
 		if (aliens_shot_counter == 0 && aliensMissileMove() == 1) {
 			// player was hit
@@ -262,24 +266,24 @@ void handleTimer()
 				status = GAME_OVER;		// ... exit game
 			}
 		}
-		
+
 		// move ufo
 		if (ufo_move_counter == 0 && ufoShowUfo() == 1) {
 			ufoMoveLeft();			// move it one position to the left
 		}
-		
-		
+
+
 		if (aliens_shot_counter++ >= 5) {aliens_shot_counter=0;}     // speed of alien shot
 		if (player_shot_counter++ >= 1) {player_shot_counter=0;}     // speed of player shot
 		if (aliens_move_counter++ >= weite) {aliens_move_counter=0;} // speed of aliend
 		if (ufo_move_counter++ >= 3) {ufo_move_counter=0;}           // speed of ufo
-		
+
 		refreshScreen();
 		break;
-		
+
 	case GAME_PAUSED:    // game is paused
 		break;
-		
+
 	case GAME_OVER:      // game over
 		if (game_over_counter == 100) {
 			battleFieldClear();
@@ -290,11 +294,11 @@ void handleTimer()
 			game_over_counter++;
 		}
 		break;
-		
+
 	case GAME_EXIT:      // exit game
 		finish(0);
 		break;
-		
+
 	case GAME_HIGHSCORE: // display highscore
 		if (title_animation_counter == 0) {
 			titleScreenDisplay();
@@ -302,7 +306,7 @@ void handleTimer()
 
 		if (title_animation_counter++ >= 6) {title_animation_counter = 0;} // speed of animation
 		break;
-		
+
 	}
 }
 
@@ -319,7 +323,7 @@ void setUpTimer()
 	myTimer.it_interval.tv_sec = 0;
 	myTimer.it_interval.tv_usec = 1000000 / FPS;
 	setitimer(ITIMER_REAL, &myTimer, NULL);
-	
+
 	myAction.sa_handler = &handleTimer;
 	myAction.sa_flags = SA_RESTART;
 	sigaction(SIGALRM, &myAction, NULL);
@@ -336,9 +340,9 @@ int main(int argc, char **argv)
 
 	evaluateCommandLine(argc, argv);	// evaluate command line parameters
 	graphicEngineInit();			// initialize graphic engine
-	
+
 	// set up timer/ game handling
-	setUpTimer();		
+	setUpTimer();
 	status = GAME_HIGHSCORE;
 
 	// read keyboard input
@@ -346,7 +350,7 @@ int main(int argc, char **argv)
 		// do movements and key-checking
 		readInput();
 	} while (0 == 0);
-	
+
 	return 0;
 }
 
@@ -354,14 +358,14 @@ int main(int argc, char **argv)
 void doScoring(int alienType)
 {
 	int points[4] = {500, 200, 150, 100};   	// 0: ufo, 1:red, 2:green, 3:blue
-	
+
 	score += points[alienType];		// every alien type does different scoring points
-	
+
 	// every 6000 pts player gets a new live
 	if (score % 6000 == 0){
 		lives++;
 	}
-	
+
 	drawscore();	// display score
 }
 
--- ninvaders-0.1.1.orig/nInvaders.h
+++ ninvaders-0.1.1/nInvaders.h
@@ -20,7 +20,7 @@
  * mailto: ninvaders-devel@lists.sourceforge.net
  *
  */
- 
+
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -34,22 +34,21 @@
 #define UFO_ALIEN_TYPE   0
 #define RED_ALIEN_TYPE   1
 #define GREEN_ALIEN_TYPE 2
-#define BLUE_ALIEN_TYPE  3 
+#define BLUE_ALIEN_TYPE  3
+
+extern int weite;
+extern int level;
+extern int skill_level;
 
 int main(int argv, char **argc);	// hey! it has to start somewhere!
 
 extern void render(void);
-	
+
 void game_over(int a);
 void drawscore();
-		
+
 void doScoring(int alienType);
 
-// todo: let's try to not having to declare these "public"
-int weite;
-int level;
-int skill_level;
-	
 // included from globals.h
 extern void doSleep();
 extern void showUsage();
--- ninvaders-0.1.1.orig/ufo.c
+++ ninvaders-0.1.1/ufo.c
@@ -20,7 +20,7 @@
  * mailto: ninvaders-devel@lists.sourceforge.net
  *
  */
- 
+
 
 #include "ufo.h"
 #include "aliens.h"
@@ -28,6 +28,8 @@
 
 static int fShowUfo = 0;
 
+Ufo ufo;
+
 /**
  * initialize ufo attributes
  */
@@ -57,7 +59,7 @@ static void ufoMove(int posX)
  */
 void ufoMoveLeft()
 {
-	// check if space between ufo and screen border is big enough 
+	// check if space between ufo and screen border is big enough
 	if (ufo.posX > 1) {
 		// desired movement is possible
 		ufoMove(ufo.posX - 1);
@@ -87,7 +89,7 @@ int ufoShowUfo()
 int ufoHitCheck(int shotX, int shotY)
 {
 	int fUfoWasHit = 0;
-	
+
 	// if shot reached vertikal position of ufo
 	if (shotY == UFOPOSY) {
 		// if shot hits ufo
@@ -96,6 +98,6 @@ int ufoHitCheck(int shotX, int shotY)
 			fUfoWasHit = 1;
 		}
 	}
-	
+
 	return fUfoWasHit;
 }
--- ninvaders-0.1.1.orig/ufo.h
+++ ninvaders-0.1.1/ufo.h
@@ -20,7 +20,7 @@
  * mailto: ninvaders-devel@lists.sourceforge.net
  *
  */
- 
+
 
 #include "view.h"
 
@@ -28,19 +28,19 @@
 #define UFO
 
 typedef struct Ufo Ufo;
-		
+
 struct Ufo {
 	int posX;	  // horizontal position of aliens
 	int posY;	  // vertical position of aliens
 };
-	
-Ufo ufo;
+
+extern Ufo ufo;
 
 void ufoReset();
 int ufoShowUfo();
 void ufoMoveLeft();
 int ufoHitCheck(int shotX, int shotY);
-	
+
 // methods that handle graphic display, from view.c
 extern void ufoDisplay(int x, int y);
 extern void ufoRefresh();
