Initial version
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| a.out | ||||
| bin2xpm | ||||
							
								
								
									
										145
									
								
								bin2xpm.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								bin2xpm.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,145 @@ | ||||
| /* | ||||
|  * This file was originally written by Gergely Polonkai, and is | ||||
|  * licensed inder the DBAD: | ||||
|  * | ||||
|  * Do whatever you like with the original work, just don't be a dick. | ||||
|  * | ||||
|  * Being a dick includes - but is not limited to - the following | ||||
|  * instances: | ||||
|  | ||||
|  *   1a. Outright copyright infringement - Don't just copy this and | ||||
|  *       change the name. | ||||
|  *   1b. Selling the unmodified original with no work done | ||||
|  *       what-so-ever, that's REALLY being a dick. | ||||
|  *   1c. Modifying the original work to contain hidden harmful | ||||
|  *       content. That would make you a PROPER dick. | ||||
|  * | ||||
|  * If you become rich through modifications, related works/services, | ||||
|  * or supporting the original work, share the love. Only a dick would | ||||
|  * make loads off this work and not buy the original work's creator(s) | ||||
|  * a pint. | ||||
|  * | ||||
|  * Code is provided with no warranty. Using somebody else's code and | ||||
|  * bitching when it goes wrong makes you a DONKEY dick. Fix the | ||||
|  * problem yourself. A non-dick would submit the fix back. | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
| #include <math.h> | ||||
| #include <stdlib.h> | ||||
| #include <sys/mman.h> | ||||
| #include <string.h> | ||||
|  | ||||
| int | ||||
| main(int argc, char **argv) | ||||
| { | ||||
|     FILE *binfile; | ||||
|     struct stat ret; | ||||
|     int i; | ||||
|     signed int found_width = -1; | ||||
|     unsigned int less_height = -1; | ||||
|     int found_height; | ||||
|     void *filemap; | ||||
|     off_t a; | ||||
|     char *xpm_line; | ||||
|  | ||||
|     static int valid_widths[] = {320, 640, 800, 1024, 1280, 1600}; | ||||
|  | ||||
|     if (argc < 2) { | ||||
|         fprintf(stderr, "Usage: %s <binfile>\n", argv[0]); | ||||
|         fprintf(stderr, | ||||
|                 "\tWhere <binfile> is a binary representation of a file,\n" | ||||
|                 "created with bindump\n"); | ||||
|  | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     if ((binfile = fopen(argv[1], "r")) == NULL) { | ||||
|         fprintf(stderr, "Unable to open file '%s'\n", argv[1]); | ||||
|  | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     if (stat(argv[1], &ret) != 0) { | ||||
|         fprintf(stderr, "Unable to stat file '%s'\n", argv[1]); | ||||
|  | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     for (i = 0; i < sizeof(valid_widths) / sizeof(int); i++) { | ||||
|         int height; | ||||
|         int best_height; | ||||
|         int diff; | ||||
|  | ||||
|         best_height = (int)ceil(valid_widths[i] * 0.75); | ||||
|         height = (int)ceil(ret.st_size / valid_widths[i]); | ||||
|         diff = abs(best_height - height); | ||||
|  | ||||
|         if (diff < less_height) { | ||||
|             less_height = diff; | ||||
|             found_width = i; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (found_width == -1) { | ||||
|         fprintf(stderr, | ||||
|                 "Couldn't find the best size for the image\n" | ||||
|                 "(VERY strange... should never happen)\n"); | ||||
|  | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     found_height = (int)ceil((float)ret.st_size | ||||
|                    / (float)valid_widths[found_width]); | ||||
|  | ||||
|     filemap = mmap(NULL, | ||||
|                    ret.st_size, | ||||
|                    PROT_READ, | ||||
|                    MAP_PRIVATE, | ||||
|                    fileno(binfile), | ||||
|                    0); | ||||
|  | ||||
|     if (filemap == NULL) { | ||||
|         fprintf(stderr, "Unable to mmap file '%s'\n", argv[1]); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     fprintf(stdout, "/* XPM */\n"); | ||||
|     fprintf(stdout, "static char * data[] = {\n"); | ||||
|     fprintf(stdout, | ||||
|             "\"%d %d 3 1\",\n", | ||||
|             valid_widths[found_width], | ||||
|             found_height); | ||||
|     fprintf(stdout, "\"0\tc #000000\",\n"); | ||||
|     fprintf(stdout, "\"1\tc #ffffff\",\n"); | ||||
|     fprintf(stdout, "\"2\tc #ff00ff\""); | ||||
|  | ||||
|     xpm_line = malloc(valid_widths[found_width] + 1); | ||||
|  | ||||
|     for (a = 0; a < ret.st_size; a++) { | ||||
|         if (a % valid_widths[found_width] == 0) { | ||||
|             if (a != 0) { | ||||
|                 fprintf(stdout, ",\n"); | ||||
|                 fprintf(stdout, "\"%s\"", xpm_line); | ||||
|             } | ||||
|  | ||||
|             memset(xpm_line, 0, valid_widths[found_width] + 1); | ||||
|         } | ||||
|  | ||||
|         xpm_line[a % valid_widths[found_width]] = ((char *)filemap)[a]; | ||||
|     } | ||||
|  | ||||
|     if (*xpm_line != 0) { | ||||
|         for (i = strlen(xpm_line); i < valid_widths[found_width]; i++) { | ||||
|             xpm_line[i] = '2'; | ||||
|         } | ||||
|  | ||||
|         fprintf(stdout, ",\n\"%s\"};\n", xpm_line); | ||||
|     } | ||||
|  | ||||
|     munmap(filemap, ret.st_size); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										52
									
								
								bindump.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								bindump.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| /* | ||||
|  * This file was originally written by Gergely Polonkai, and is | ||||
|  * licensed inder the DBAD: | ||||
|  * | ||||
|  * Do whatever you like with the original work, just don't be a dick. | ||||
|  * | ||||
|  * Being a dick includes - but is not limited to - the following | ||||
|  * instances: | ||||
|  | ||||
|  *   1a. Outright copyright infringement - Don't just copy this and | ||||
|  *       change the name. | ||||
|  *   1b. Selling the unmodified original with no work done | ||||
|  *       what-so-ever, that's REALLY being a dick. | ||||
|  *   1c. Modifying the original work to contain hidden harmful | ||||
|  *       content. That would make you a PROPER dick. | ||||
|  * | ||||
|  * If you become rich through modifications, related works/services, | ||||
|  * or supporting the original work, share the love. Only a dick would | ||||
|  * make loads off this work and not buy the original work's creator(s) | ||||
|  * a pint. | ||||
|  * | ||||
|  * Code is provided with no warranty. Using somebody else's code and | ||||
|  * bitching when it goes wrong makes you a DONKEY dick. Fix the | ||||
|  * problem yourself. A non-dick would submit the fix back. | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| int | ||||
| main(int argc, char **argv) | ||||
| { | ||||
|     FILE *file; | ||||
|     int c; | ||||
|  | ||||
|     if ((file = fopen(argv[1], "r")) == NULL) { | ||||
|         fprintf(stderr, "Unable to open file!\n"); | ||||
|  | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     while ((c = fgetc(file)) != EOF) { | ||||
|         int i; | ||||
|  | ||||
|         // For each byte in a file, print the byte as a binary string | ||||
|         // (a bunch of '0' and '1' characters | ||||
|         for (i = 7; i>= 0; i--) { | ||||
|             printf(((c & (2 ^i)) != 0) ? "0" : "1"); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										9
									
								
								i-love-you.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								i-love-you.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #include <stdio.h> | ||||
|  | ||||
| int | ||||
| main(int argc, char **argv) | ||||
| { | ||||
|     printf("I love you!\n"); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										9
									
								
								programmer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								programmer.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #include <stdio.h> | ||||
|  | ||||
| int | ||||
| main(int argc, char **argv) | ||||
| { | ||||
|     printf("I'm a C programmer on GNU/Linux.\n"); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user