F diff --git a/git_part.c b/git_part.c --- a/git_part.c +++ b/git_part.cprint_commit(current_commit,NULL,log_file,diff_directory_fd,repo);git_revwalk_free(walker);- fclose(log_file);+ close_file(log_file);}void print_commit(git_commit *current_commit,git_commit *parent_commit,FILE *log_file,int diff_directory_fd,git_repository *repo){push_html_link_for_blob(index_file,entry_name,entry_oid);{FILE *blob_file;- const void *blob_data;+ const unsigned char *blob_data;size_t blob_size;+ size_t i;git_blob *blob;+ static const char *special_chars[256]+ =+ {+ ['\"']=""",+ ['\'']="'",+ ['&']="&",+ ['<']="<",+ ['>']=">",++ };+blob=(git_blob*)obj;blob_file=create_file(base_dir_fd,entry_oid);blob_size=git_blob_rawsize(blob);blob_data=git_blob_rawcontent(blob);- fwrite(blob_data,blob_size,1,blob_file);-- fclose(blob_file);+ fprintf(blob_file,"<code><pre>\n");+ for(i=0;i<blob_size;++i)+ {+ if(special_chars[blob_data[i]])+ {+ fwrite(special_chars[blob_data[i]],1,strlen(special_chars[blob_data[i]]),blob_file);+ }else+ {+ fwrite(blob_data+i,1,1,blob_file);+ }+ }+ fprintf(blob_file,"</pre></code>\n");++ close_file(blob_file);}break;}