diff options
-rw-r--r-- | git_part.c | 30 |
1 files changed, 18 insertions, 12 deletions
@@ -2,6 +2,17 @@ #define VOLGIT_GIT_PART_C VOLGIT_GIT_PART_C #include <git_part.h> +static const char *special_chars[256] + = + { + ['\"']=""", + ['\'']="'", + ['&']="&", + ['<']="<", + ['>']=">", + + }; + int print_diff_line(const git_diff_delta *delta,const git_diff_hunk *hunk,const git_diff_line *line,FILE *out) { size_t i; @@ -14,8 +25,13 @@ int print_diff_line(const git_diff_delta *delta,const git_diff_hunk *hunk,const fprintf(out,"%c ",line->origin); for(i=0;i<line->content_len;++i) - fprintf(out,"%c",line->content[i]); - + if(special_chars[line->content[i]]) + { + fwrite(special_chars[line->content[i]],1,strlen(special_chars[line->content[i]]),out); + }else + { + fwrite(line->content+i,1,1,out); + } fprintf(out,"</div>"); return 0; @@ -208,16 +224,6 @@ int print_entry(FILE *index_file,const git_tree_entry *entry,int base_dir_fd,git size_t i; git_blob *blob; - static const char *special_chars[256] - = - { - ['\"']=""", - ['\'']="'", - ['&']="&", - ['<']="<", - ['>']=">", - - }; blob=(git_blob*)obj; |