+ changed a static array (FileList) into a dynamically allocated one
in an attempt to make the .bss section smaller.
This commit is contained in:
		| @@ -23,6 +23,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "internal.h" | #include "internal.h" | ||||||
|  | #include <errno.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  |  | ||||||
| static const char tee_usage[] = | static const char tee_usage[] = | ||||||
| @@ -38,7 +39,7 @@ static const char tee_usage[] = | |||||||
| /* FileList _______________________________________________________________ */ | /* FileList _______________________________________________________________ */ | ||||||
|  |  | ||||||
| #define FL_MAX	1024 | #define FL_MAX	1024 | ||||||
| static FILE *FileList[FL_MAX]; | static FILE **FileList; | ||||||
| static int FL_end; | static int FL_end; | ||||||
|  |  | ||||||
| typedef void (FL_Function) (FILE * file, char c); | typedef void (FL_Function) (FILE * file, char c); | ||||||
| @@ -99,6 +100,11 @@ int tee_main(int argc, char **argv) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* init FILE pointers */ | 	/* init FILE pointers */ | ||||||
|  | 	FileList = calloc(FL_MAX, sizeof(FILE*)); | ||||||
|  | 	if (!FileList) { | ||||||
|  | 		fprintf(stderr, "tee: %s\n", strerror(errno)); | ||||||
|  | 		exit(1); | ||||||
|  | 	} | ||||||
| 	FL_end = 0; | 	FL_end = 0; | ||||||
| 	FileList[0] = stdout; | 	FileList[0] = stdout; | ||||||
| 	for (; i < argc; i++) { | 	for (; i < argc; i++) { | ||||||
| @@ -119,7 +125,8 @@ int tee_main(int argc, char **argv) | |||||||
|  |  | ||||||
| 	/* clean up */ | 	/* clean up */ | ||||||
| 	FL_apply(tee_fclose, 0); | 	FL_apply(tee_fclose, 0); | ||||||
|  | 	free(FileList); | ||||||
| 	exit(0); | 	exit(0); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* $Id: tee.c,v 1.6 2000/02/08 19:58:47 erik Exp $ */ | /* $Id: tee.c,v 1.7 2000/03/08 00:14:35 beppu Exp $ */ | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								tee.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								tee.c
									
									
									
									
									
								
							| @@ -23,6 +23,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "internal.h" | #include "internal.h" | ||||||
|  | #include <errno.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  |  | ||||||
| static const char tee_usage[] = | static const char tee_usage[] = | ||||||
| @@ -38,7 +39,7 @@ static const char tee_usage[] = | |||||||
| /* FileList _______________________________________________________________ */ | /* FileList _______________________________________________________________ */ | ||||||
|  |  | ||||||
| #define FL_MAX	1024 | #define FL_MAX	1024 | ||||||
| static FILE *FileList[FL_MAX]; | static FILE **FileList; | ||||||
| static int FL_end; | static int FL_end; | ||||||
|  |  | ||||||
| typedef void (FL_Function) (FILE * file, char c); | typedef void (FL_Function) (FILE * file, char c); | ||||||
| @@ -99,6 +100,11 @@ int tee_main(int argc, char **argv) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* init FILE pointers */ | 	/* init FILE pointers */ | ||||||
|  | 	FileList = calloc(FL_MAX, sizeof(FILE*)); | ||||||
|  | 	if (!FileList) { | ||||||
|  | 		fprintf(stderr, "tee: %s\n", strerror(errno)); | ||||||
|  | 		exit(1); | ||||||
|  | 	} | ||||||
| 	FL_end = 0; | 	FL_end = 0; | ||||||
| 	FileList[0] = stdout; | 	FileList[0] = stdout; | ||||||
| 	for (; i < argc; i++) { | 	for (; i < argc; i++) { | ||||||
| @@ -119,7 +125,8 @@ int tee_main(int argc, char **argv) | |||||||
|  |  | ||||||
| 	/* clean up */ | 	/* clean up */ | ||||||
| 	FL_apply(tee_fclose, 0); | 	FL_apply(tee_fclose, 0); | ||||||
|  | 	free(FileList); | ||||||
| 	exit(0); | 	exit(0); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* $Id: tee.c,v 1.6 2000/02/08 19:58:47 erik Exp $ */ | /* $Id: tee.c,v 1.7 2000/03/08 00:14:35 beppu Exp $ */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user