From 0d3dde49e65c9de9dff41933ceb64fa28635499d Mon Sep 17 00:00:00 2001 From: midipix Date: Sat, 28 Nov 2015 07:14:21 -0500 Subject: pretty printer: yaml support: initial implementation. --- src/output/pe_output_import_libraries.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'src/output') diff --git a/src/output/pe_output_import_libraries.c b/src/output/pe_output_import_libraries.c index 1e47d81..2b864fb 100644 --- a/src/output/pe_output_import_libraries.c +++ b/src/output/pe_output_import_libraries.c @@ -8,13 +8,32 @@ #include #include "perk_output_impl.h" +enum impsym_prefix_tag { + IMPSYM_PREFIX_DEFAULT, + IMPSYM_PREFIX_YAML +}; + +static const char * const impsym_prefix_arr[] = { + "--> ", + "- " +}; + +static const char * pretty_impsym_prefix(const struct pe_common_ctx * cctx) +{ + if (cctx->fmtflags & PERK_PRETTY_YAML) + return impsym_prefix_arr[IMPSYM_PREFIX_YAML]; + else + return impsym_prefix_arr[IMPSYM_PREFIX_DEFAULT]; +} + int pe_output_import_libraries( const struct pe_image_meta * m, const struct pe_common_ctx * cctx, FILE * fout) { - FILE * ftmp; - int i,j; + FILE * ftmp; + int i,j; + const char * impsym_prefix; if (!m->summary.num_of_implibs) return 0; @@ -22,6 +41,8 @@ int pe_output_import_libraries( if (!(fout = pe_output_prolog(cctx,fout,&ftmp))) return -1; + impsym_prefix = pretty_impsym_prefix(cctx); + for (i=0; isummary.num_of_implibs; i++) { if (cctx->fmtflags & PERK_OUTPUT_IMPORT_SYMS) fprintf(fout,"%s:\n",m->idata[i].name); @@ -31,8 +52,8 @@ int pe_output_import_libraries( if (cctx->fmtflags & PERK_OUTPUT_IMPORT_SYMS) for (j=0; jidata[i].count; j++) if (m->idata[i].items[j].name) - fprintf(fout,"==> %s\n", - m->idata[i].items[j].name); + fprintf(fout,"%s%s\n", + impsym_prefix,m->idata[i].items[j].name); } return pe_output_epilog(0,ftmp); -- cgit v1.2.3