On Fri, Mar 09, 2012 at 02:11:08PM -0600, Dan McGee wrote: > This reduces a lot of code duplication in the write function, which > cleans it up a bit. > > Signed-off-by: Dan McGee <d...@archlinux.org> > --- > lib/libalpm/be_local.c | 67 > ++++++++++++++++-------------------------------- > 1 file changed, 22 insertions(+), 45 deletions(-) > > diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c > index 16c794e..7cce022 100644 > --- a/lib/libalpm/be_local.c > +++ b/lib/libalpm/be_local.c > @@ -749,6 +749,22 @@ int _alpm_local_db_prepare(alpm_db_t *db, alpm_pkg_t > *info) > return retval; > } > > +void write_deps(FILE *fp, const char *header, alpm_list_t *deplist)
static? > +{ > + alpm_list_t *lp; > + if(!deplist) { > + return; > + } > + fputs(header, fp); > + fputc('\n', fp); > + for(lp = deplist; lp; lp = lp->next) { > + char *depstring = alpm_dep_compute_string(lp->data); > + fprintf(fp, "%s\n", depstring); if you're going to use the fputs/fputc combo above for the header, why not here as well? > + free(depstring); > + } > + fputc('\n', fp); > +} > + > int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t > inforeq) > { > FILE *fp = NULL; > @@ -790,15 +806,6 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t > *info, alpm_dbinfrq_t inforeq > } > fprintf(fp, "\n"); > } > - if(info->replaces) { > - fputs("%REPLACES%\n", fp); > - for(lp = info->replaces; lp; lp = lp->next) { > - char *depstring = > alpm_dep_compute_string(lp->data); > - fprintf(fp, "%s\n", depstring); > - free(depstring); > - } > - fprintf(fp, "\n"); > - } > if(info->url) { > fprintf(fp, "%%URL%%\n" > "%s\n\n", info->url); > @@ -851,42 +858,12 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t > *info, alpm_dbinfrq_t inforeq > } > fprintf(fp, "\n"); > } > - if(info->depends) { > - fputs("%DEPENDS%\n", fp); > - for(lp = info->depends; lp; lp = lp->next) { > - char *depstring = > alpm_dep_compute_string(lp->data); > - fprintf(fp, "%s\n", depstring); > - free(depstring); > - } > - fprintf(fp, "\n"); > - } > - if(info->optdepends) { > - fputs("%OPTDEPENDS%\n", fp); > - for(lp = info->optdepends; lp; lp = lp->next) { > - char *optstring = > alpm_dep_compute_string(lp->data); > - fprintf(fp, "%s\n", optstring); > - free(optstring); > - } > - fprintf(fp, "\n"); > - } > - if(info->conflicts) { > - fputs("%CONFLICTS%\n", fp); > - for(lp = info->conflicts; lp; lp = lp->next) { > - char *depstring = > alpm_dep_compute_string(lp->data); > - fprintf(fp, "%s\n", depstring); > - free(depstring); > - } > - fprintf(fp, "\n"); > - } > - if(info->provides) { > - fputs("%PROVIDES%\n", fp); > - for(lp = info->provides; lp; lp = lp->next) { > - char *depstring = > alpm_dep_compute_string(lp->data); > - fprintf(fp, "%s\n", depstring); > - free(depstring); > - } > - fprintf(fp, "\n"); > - } > + > + write_deps(fp, "%REPLACES%", info->replaces); > + write_deps(fp, "%DEPENDS%", info->depends); > + write_deps(fp, "%OPTDEPENDS%", info->optdepends); > + write_deps(fp, "%CONFLICTS%", info->conflicts); > + write_deps(fp, "%PROVIDES%", info->provides); > > fclose(fp); > fp = NULL; > -- > 1.7.9.3 > >