请大家给我分析一下这个程序!看看有什么错误,谢谢!
#include <string.h>
#include "stdio.h"
#include <conio.h>
void main()
{
FILE *funny,*fp;
    char a[101];
char line[101],line2[101];
char *pdest,*pdest2,*pdest3;
funny=fopen("E:\\liuyi\\d\\boot.ini","r");
fp=fopen("a.txt","w");
do 
{   
        fgets(a,100,funny);
if (strchr(a,';')==NULL)
{
if (strchr(a,'['))
{
pdest=strchr(a,'[');
if (strchr(a,']'))
{
pdest2=strchr(a,']');
           *pdest2='\n';
strcpy(line,a);
          if (strchr(line,' '))
                                                     {
           pdest3=strchr(line,' ');
           *pdest3=NULL;
strcpy(line2,line);
fputs(line2,fp);
}
fputs(line,fp);     
}
}
else if (strchr(a,'='))
        strcpy(line,a);
        fputs(line,fp);
            
}
else pdest=strchr(a,';');
                          *pdest='\n';
     strcpy(line,a);
               fputs(line,fp);
} while (!feof(funny));
    fclose (funny);
fclose (fp);
    getch();
}