From 930e93b8925874a3c6d3460d2c0cebcda5fc0d09 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 9 Mar 2012 14:24:48 -0600 Subject: Prefer fputs/fputc over fprintf when writing local database Using fputs should be faster as no format string parsing is required. It also prevents silly errors related to unescaped '%' signs, and removes the need to double them up in a lot of places. Signed-off-by: Dan McGee --- lib/libalpm/be_local.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 55d949fa..9090c815 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -759,7 +759,8 @@ static void write_deps(FILE *fp, const char *header, alpm_list_t *deplist) fputc('\n', fp); for(lp = deplist; lp; lp = lp->next) { char *depstring = alpm_dep_compute_string(lp->data); - fprintf(fp, "%s\n", depstring); + fputs(depstring, fp); + fputc('\n', fp); free(depstring); } fputc('\n', fp); @@ -802,9 +803,10 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t inforeq if(info->groups) { fputs("%GROUPS%\n", fp); for(lp = info->groups; lp; lp = lp->next) { - fprintf(fp, "%s\n", (char *)lp->data); + fputs(lp->data, fp); + fputc('\n', fp); } - fprintf(fp, "\n"); + fputc('\n', fp); } if(info->url) { fprintf(fp, "%%URL%%\n" @@ -813,9 +815,10 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t inforeq if(info->licenses) { fputs("%LICENSE%\n", fp); for(lp = info->licenses; lp; lp = lp->next) { - fprintf(fp, "%s\n", (char *)lp->data); + fputs(lp->data, fp); + fputc('\n', fp); } - fprintf(fp, "\n"); + fputc('\n', fp); } if(info->arch) { fprintf(fp, "%%ARCH%%\n" @@ -856,7 +859,7 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t inforeq if(info->validation & ALPM_PKG_VALIDATION_SIGNATURE) { fputs("pgp\n", fp); } - fprintf(fp, "\n"); + fputc('\n', fp); } write_deps(fp, "%REPLACES%", info->replaces); @@ -885,20 +888,21 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, alpm_dbinfrq_t inforeq free(path); if(info->files.count) { size_t i; - fprintf(fp, "%%FILES%%\n"); + fputs("%FILES%\n", fp); for(i = 0; i < info->files.count; i++) { const alpm_file_t *file = info->files.files + i; - fprintf(fp, "%s\n", file->name); + fputs(file->name, fp); + fputc('\n', fp); } - fprintf(fp, "\n"); + fputc('\n', fp); } if(info->backup) { - fprintf(fp, "%%BACKUP%%\n"); + fputs("%BACKUP%\n", fp); for(lp = info->backup; lp; lp = lp->next) { const alpm_backup_t *backup = lp->data; fprintf(fp, "%s\t%s\n", backup->name, backup->hash); } - fprintf(fp, "\n"); + fputc('\n', fp); } fclose(fp); fp = NULL; -- cgit v1.2.3-70-g09d2