diff options
author | Dan McGee <dan@archlinux.org> | 2012-03-09 21:24:48 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-03-16 15:49:31 +0100 |
commit | 930e93b8925874a3c6d3460d2c0cebcda5fc0d09 (patch) | |
tree | 3ff466196bcd1a969ff0780903236003bc166fa5 /lib | |
parent | 89f4dd88d784632fed134ae88284074511cf4567 (diff) | |
download | pacman-930e93b8925874a3c6d3460d2c0cebcda5fc0d09.tar.gz pacman-930e93b8925874a3c6d3460d2c0cebcda5fc0d09.tar.xz |
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 <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/be_local.c | 26 |
1 files 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; |