void unblankc(char *namein, char *nameout, char ch1, char ch2) { int a; int i=0; najin(namein); najout(nameout); while(1) { a = fgetc(naji_input); if (a == EOF) break; if (a == ch1) i++; if ((a == ch2) && (i != 0)) { fputc((i-1), naji_output); i = 0; } } najinclose(); najoutclose(); }
void e2ahtml(char *namein, char *nameout) { int letter; najin(namein); najout(nameout); loop { letter = fgetc(naji_input); if (letter == EOF) endloop; letter = naji_e2a_unicode(letter); if (letter == '\n') fprintf(naji_output, "\n<br>"); else fprintf(naji_output, "&#%i;", letter); } najinclose(); najoutclose(); }
void hmakerf(char *namein, char *nameout) { char buffer[402]; najin(namein); najout(nameout); loop { fgets(buffer, 400, naji_input); if (feof(naji_input)) endloop; if (!strncmp("int", buffer, 3)) fprintf(naji_output, buffer); if (!strncmp("FILE", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("void", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("char", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("long", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("uint", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("UINT", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("auto", buffer, 4)) fprintf(naji_output, buffer); if (!strncmp("uchar", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("ulong", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("UCHAR", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("ULONG", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("short", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("float", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("class", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("union", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("const", buffer, 5)) fprintf(naji_output, buffer); if (!strncmp("double", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("struct", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("signed", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("static", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("extern", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("size_t", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("time_t", buffer, 6)) fprintf(naji_output, buffer); if (!strncmp("wchar_t", buffer, 7)) fprintf(naji_output, buffer); if (!strncmp("typedef", buffer, 7)) fprintf(naji_output, buffer); if (!strncmp("unsigned", buffer, 8)) fprintf(naji_output, buffer); if (!strncmp("register", buffer, 8)) fprintf(naji_output, buffer); if (!strncmp("volatile", buffer, 8)) fprintf(naji_output, buffer); if (!strncmp("#include", buffer, 8)) fprintf(naji_output, buffer); } najinclose(); najoutclose(); }
int main() { char temp[4096]; char buffer[4096]; char *p = NULL; int i = 0; najin("index.html"); while (1) { if (feof(naji_input)) break; najifgets(temp, 4095, naji_input); p = strstr(temp, "<a href=\""); if (p != NULL) { i = 0; p += 9; while (1) { if ( (*p == '\0') || (*p == '\"') ) { buffer[i] = '\0'; printf("Making empty file: \"%s\"\n", buffer); najout(buffer); najoutclose(); break; } buffer[i] = *p; i++; p++; } } } najinclose(); }
void makarray(char *namein, char *nameout, char *namevar) { /* Don't worry, the memory taken up by variables in functions * are freed when the function ends, in case you didn't know. */ char buffer[1050]; int i; najin(namein); najout(nameout); fprintf(naji_output, "char *%s[] = {\n", namevar); while(1) { fgets(buffer, 1024, naji_input); if (feof(naji_input)) break; for (i=0; buffer[i] != 0; i++) { if (buffer[i] == '\n') { buffer[i] = '\0'; break; } if (buffer[i] == '\r') { buffer[i] = '\0'; break; } } fprintf(naji_output, "\"%s\",\n", buffer); } najinclose(); najoutclose(); najed(nameout); fseek(naji_edit, -2, SEEK_END); fprintf(naji_edit, "\n};\n"); najedclose(); }
void bin2c(char *namein, char *nameout, char *array_name) { int a; int i=0; int end=15; int fsize_var=0; int fsize_max=0; najin(namein); najout(nameout); fsize_max = najinsize(); fsize_var = fsize_max; fprintf(naji_output, "\n/* converted with najitool with the command: */\n"); fprintf(naji_output, "\n/* najitool bin2c %s %s %s */\n\n", namein, nameout, array_name); fprintf(naji_output, "/* please keep these comments here so others can use */\n"); fprintf(naji_output, "/* najitool the completely free tool for doing this as well. */\n"); fprintf(naji_output, "/* you can get najitool here: http://najitool.sf.net/ */\n\n"); fprintf(naji_output,"unsigned char %s[%i] = \n{\n", array_name, fsize_max); loop { a = fgetc(naji_input); if (fsize_var == 1) endloop; if (i == end) { fprintf(naji_output, "\n"); i=0; } fprintf(naji_output, "0x%02X,", a); i++; fsize_var--; } fprintf(naji_output, "\n0x%02X", a); fprintf(naji_output, "};\n\n"); najinclose(); najoutclose(); }
void leetfile(char *namein, char *nameout) { int a; najin(namein); najout(nameout); loop { a = fgetc(naji_input); if (a == EOF) endloop; elite_char_fprint((char)a, naji_output); } najinclose(); najoutclose(); }
void file2oct(char *namein, char *nameout) { int a; najin(namein); najout(nameout); while (1) { a = fgetc(naji_input); if (a == EOF) break; fprintf(naji_output, "%o\n", a); } najinclose(); najoutclose(); }
void arab2eng(char *namein, char *nameout) { int letter; najin(namein); najout(nameout); loop { letter = fgetc(naji_input); if (letter == EOF) endloop; letter = naji_a2e(letter); fputc(letter, naji_output); } najinclose(); najoutclose(); }
void najin(char *namein) { int a; naji_input = fopen(namein, "rb"); if (naji_input == NULL) { fprintf(stderr, "\n\nError, cannot open input file: %s", namein); perror(" "); fprintf(stderr, "\n\n"); exit(2); } a = fgetc(naji_input); if (a == EOF) { fprintf(stderr, "\n\nError, empty file.\n\n"); exit(1); } else { najinclose(); naji_input = fopen(namein, "rb"); if (naji_input == NULL) { fprintf(stderr, "\n\nError, cannot open input file: %s", namein); perror(" "); fprintf(stderr, "\n\n"); exit(2); } } }
void file2bmp(char *namein, char *nameout) { int a; najin(namein); bmpout(nameout); while (1) { a = fgetc(naji_input); if (a == EOF) break; fputc(a, naji_bmp_out); } najinclose(); bmpoutclose(); }
void blankc(char *namein, char *nameout, char ch1, char ch2) { int a; int i; najin(namein); najout(nameout); while(1) { a = fgetc(naji_input); if (a == EOF) break; for (i=0; i<=a; i++) fputc(ch1, naji_output); fputc(ch2, naji_output); } najinclose(); najoutclose(); }
void printftx(char *namein, char *nameout) { char buffer[1050]; int i; najin(namein); najout(nameout); while(1) { fgets(buffer, 1024, naji_input); if (feof(naji_input)) break; for (i=0; buffer[i] != 0; i++) { if (buffer[i] == '\n') { buffer[i] = '\0'; break; } if (buffer[i] == '\r') { buffer[i] = '\0'; break; } } fprintf(naji_output, "printf(\""); for (i=0; buffer[i] != 0; i++) { if (buffer[i] == '\"') { fputc('\\', naji_output); fputc('\"', naji_output); } else if (buffer[i] == '\\') { fputc('\\', naji_output); fputc('\\', naji_output); } else fputc(buffer[i], naji_output); } fprintf(naji_output, "\\n\");\n"); } najinclose(); najoutclose(); }
void maxxnewl(char *namein, char *nameout, int maxnl) { int a; int putnl; putnl = 0; najin(namein); najout(nameout); while(1) { a = fgetc(naji_input); if (a == EOF) break; if (a == '\n') { fputc(a, naji_output); while (1) { a = fgetc(naji_input); if (a == EOF) break; else if (a == '\n') { if (putnl < maxnl) { fputc(a, naji_output); putnl++; } } else { fputc(a, naji_output); putnl=0; break; } } } else fputc(a, naji_output); } najinclose(); najoutclose(); }
void mkpatch(char *original, char *patched, char *patchfile) { int a; int b; unsigned long offset = 0; unsigned long bytes = 0; long insize = 0; long in2size = 0; najin(original); najin2(patched); najout(patchfile); insize = najinsize(); in2size = najin2size(); if (insize != in2size) { fprintf(stderr, "Error, orginal file and patched file must be the same size for the patch to be made.\n"); return; } offset--; loop { a = fgetc(naji_input); b = fgetc(naji_input2); if (a == EOF) break; offset++; if (a != b) { fprintf(naji_output, "%lu\n", offset); fprintf(naji_output, "%lu\n", (unsigned long)b); bytes++; } } printf("\n"); printf("Patch file %s successfully made which patches %lu bytes.\n", patchfile, bytes); printf("\n"); printf("Feel free to bundle najitool with your patch file,\n"); printf("if you are releasing it or backing it up to CD or floppy etc.\n"); printf("\n"); printf("You might want to make a patch.bat or patch.sh file containing:\n"); printf("najitool qpatch %s %s\n", original, patchfile); printf("\n"); najinclose(); najin2close(); najoutclose(); }
void qpatch(char *named, char *patch_file) { char *end; char buffer[200]; char converted_buffer[200]; int value = 0; unsigned long offset = 0; unsigned long bytes_patched = 0; long filesize = 0; int i; najin(patch_file); najed(named); filesize = najedsize(); loop { /* gets offset */ if ( fgets(buffer, 100, naji_input) == NULL ) break; for (i=0; i<100; i++) if ( ! (buffer[i] < '0' && buffer[i] > '9') ) converted_buffer[i] = buffer[i]; offset = strtoul(converted_buffer, &end, 0); if (offset > filesize) { fprintf(stderr, "Patch file error, offset cannot be greater than filesize.\n"); break; } /* gets value */ if ( fgets(buffer, 100, naji_input) == NULL ) break; for (i=0; i<100; i++) if ( ! (buffer[i] < '0' && buffer[i] > '9') ) converted_buffer[i] = buffer[i]; value = atoi(converted_buffer); if (value > 255) { fprintf(stderr, "Patch file error, value cannot be greater than 255.\n"); break; } if (value < 0) { fprintf(stderr, "Patch file error, value cannot be less than 0.\n"); break; } /* seek to offset */ fseek(naji_edit, offset, SEEK_SET); /* write value */ fputc(value, naji_edit); bytes_patched++; } printf("Sucessfully patched %lu bytes of data.\n", bytes_patched); if (bytes_patched > filesize) { fprintf(stderr, "WARNING: The amount of bytes patched were more than the filesize.\n"); fprintf(stderr, "This means certain location(s) were patched more than once,\n"); fprintf(stderr, "because they were specified in the patch file more than once.\n"); fprintf(stderr, "There is a minor bug in the patch file, it is recommended that\n"); fprintf(stderr, "delete the duplicate patcher instructions in the patch file before\n"); fprintf(stderr, "you release it.\n"); } najinclose(); najedclose(); }