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();
}
示例#4
0
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();
}
示例#10
0
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();
}