[pacman-dev] [PATCH] Make all error messages use pm_fprintf

Allan McRae mcrae_allan at hotmail.com
Sat May 10 23:30:27 EDT 2008


Tested using many easily generated error conditions.
Also added "malloc failure" (conf.c) and "segmentation fault" (pacman.c)
error messages for translation

Signed-off-by: Allan McRae <mcrae_allan at hotmail.com>
---
 src/pacman/conf.c    |    2 +-
 src/pacman/package.c |    7 +++----
 src/pacman/pacman.c  |    6 +++---
 src/pacman/query.c   |   15 ++++++++-------
 src/pacman/remove.c  |    6 +++---
 src/pacman/sync.c    |   44 ++++++++++++++++++++++++++------------------
 src/pacman/upgrade.c |    7 ++++---
 src/pacman/util.c    |    4 ++--
 8 files changed, 50 insertions(+), 41 deletions(-)

diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index bf3a462..bf3909a 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -33,7 +33,7 @@ config_t *config_new(void)
 {
 	config_t *newconfig = calloc(1, sizeof(config_t));
 	if(!newconfig) {
-			fprintf(stderr, "malloc failure: could not allocate %zd bytes\n",
+			pm_fprintf(stderr, PM_LOG_ERROR, _("malloc failure: could not allocate %zd bytes\n"),
 			        sizeof(config_t));
 			return(NULL);
 	}
diff --git a/src/pacman/package.c b/src/pacman/package.c
index 76e8e4f..7f587e0 100644
--- a/src/pacman/package.c
+++ b/src/pacman/package.c
@@ -195,8 +195,8 @@ void dump_pkg_backups(pmpkg_t *pkg)
 				char *md5sum = alpm_get_md5sum(path);
 
 				if(md5sum == NULL) {
-					fprintf(stderr, _("error: could not calculate checksums for %s\n"),
-							path);
+					pm_fprintf(stderr, PM_LOG_ERROR, 
+						_("could not calculate checksums for %s\n"), path);
 					free(str);
 					continue;
 				}
@@ -245,8 +245,7 @@ void dump_pkg_changelog(pmpkg_t *pkg)
 	void *fp = NULL;
 
 	if((fp = alpm_pkg_changelog_open(pkg)) == NULL) {
-		/* TODO after string freeze use pm_fprintf */
-		fprintf(stderr, _("error: no changelog available for '%s'.\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("no changelog available for '%s'.\n"),
 				alpm_pkg_get_name(pkg));
 		return;
 	} else {
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 9468d51..53a96cf 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -213,9 +213,9 @@ static RETSIGTYPE handler(int signum)
 	if(signum==SIGSEGV)
 	{
 		/* write a log message and write to stderr */
-		pm_printf(PM_LOG_ERROR, "segmentation fault\n");
-		pm_fprintf(stderr, PM_LOG_ERROR, "Internal pacman error: Segmentation fault.\n"
-		        "Please submit a full bug report with --debug if appropriate.\n");
+		pm_printf(PM_LOG_ERROR, _("segmentation fault\n"));
+		pm_fprintf(stderr, PM_LOG_ERROR, _("Internal pacman error: Segmentation fault.\n")
+		        _("Please submit a full bug report with --debug if appropriate.\n"));
 		exit(signum);
 	} else if((signum == SIGINT)) {
 		if(alpm_trans_interrupt() == 0) {
diff --git a/src/pacman/query.c b/src/pacman/query.c
index 0b6ce0c..74d3ff2 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -62,7 +62,7 @@ static int query_fileowner(alpm_list_t *targets)
 
 	/* This code is here for safety only */
 	if(targets == NULL) {
-		fprintf(stderr, _("error: no file was specified for --owns\n"));
+		pm_fprintf(stderr, PM_LOG_ERROR, _("no file was specified for --owns\n"));
 		return(1);
 	}
 
@@ -75,14 +75,15 @@ static int query_fileowner(alpm_list_t *targets)
 		alpm_list_t *i, *j;
 
 		if(stat(filename, &buf) == -1) {
-			fprintf(stderr, _("error: failed to read file '%s': %s\n"),
+			pm_fprintf(stderr, PM_LOG_ERROR, _("failed to read file '%s': %s\n"),
 					filename, strerror(errno));
 			ret++;
 			continue;
 		}
 
 		if(S_ISDIR(buf.st_mode)) {
-			fprintf(stderr, _("error: cannot determine ownership of a directory\n"));
+			pm_fprintf(stderr, PM_LOG_ERROR,
+				_("cannot determine ownership of a directory\n"));
 			ret++;
 			continue;
 		}
@@ -93,7 +94,7 @@ static int query_fileowner(alpm_list_t *targets)
 		free(dname);
 
 		if(!rpath) {
-			fprintf(stderr, _("error: cannot determine real path for '%s': %s\n"),
+			pm_fprintf(stderr, PM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"),
 					filename, strerror(errno));
 			free(rpath);
 			ret++;
@@ -133,7 +134,7 @@ static int query_fileowner(alpm_list_t *targets)
 			}
 		}
 		if(!found) {
-			fprintf(stderr, _("error: No package owns %s\n"), filename);
+			pm_fprintf(stderr, PM_LOG_ERROR, _("No package owns %s\n"), filename);
 			ret++;
 		}
 		free(rpath);
@@ -237,7 +238,7 @@ static int query_group(alpm_list_t *targets)
 					printf("%s %s\n", grpname, alpm_pkg_get_name(alpm_list_getdata(p)));
 				}
 			} else {
-				fprintf(stderr, _("error: group \"%s\" was not found\n"), grpname);
+				pm_fprintf(stderr, PM_LOG_ERROR, _("group \"%s\" was not found\n"), grpname);
 				ret++;
 			}
 		}
@@ -415,7 +416,7 @@ int pacman_query(alpm_list_t *targets)
 		}
 
 		if(pkg == NULL) {
-			fprintf(stderr, _("error: package \"%s\" not found\n"), strname);
+			pm_fprintf(stderr, PM_LOG_ERROR, _("package \"%s\" not found\n"), strname);
 			ret++;
 			continue;
 		}
diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index a2209ac..4fe9bc8 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -86,7 +86,7 @@ int pacman_remove(alpm_list_t *targets)
 	for(i = finaltargs; i; i = alpm_list_next(i)) {
 		char *targ = alpm_list_getdata(i);
 		if(alpm_trans_addtarget(targ) == -1) {
-			fprintf(stderr, _("error: '%s': %s\n"),
+			pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
 					targ, alpm_strerrorlast());
 			trans_release();
 			FREELIST(finaltargs);
@@ -96,7 +96,7 @@ int pacman_remove(alpm_list_t *targets)
 
 	/* Step 2: prepare the transaction based on its type, targets and flags */
 	if(alpm_trans_prepare(&data) == -1) {
-		fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
 		        alpm_strerrorlast());
 		switch(pm_errno) {
 			case PM_ERR_UNSATISFIED_DEPS:
@@ -142,7 +142,7 @@ int pacman_remove(alpm_list_t *targets)
 
 	/* Step 3: actually perform the removal */
 	if(alpm_trans_commit(NULL) == -1) {
-		fprintf(stderr, _("error: failed to commit transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
 		        alpm_strerrorlast());
 		trans_release();
 		FREELIST(finaltargs);
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 3c6dfd5..a41b79e 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -46,7 +46,7 @@ static int sync_cleandb(const char *dbpath, int keep_used) {
 
 	dir = opendir(dbpath);
 	if(dir == NULL) {
-		fprintf(stderr, _("error: could not access database directory\n"));
+		pm_fprintf(stderr, PM_LOG_ERROR, _("could not access database directory\n"));
 		return(1);
 	}
 
@@ -90,7 +90,8 @@ static int sync_cleandb(const char *dbpath, int keep_used) {
 			}
 
 			if(rmrf(path)) {
-				fprintf(stderr, _("error: could not remove repository directory\n"));
+				pm_fprintf(stderr, PM_LOG_ERROR, 
+					_("could not remove repository directory\n"));
 				return(1);
 			}
 		}
@@ -151,7 +152,7 @@ static int sync_cleancache(int level)
 
 		dir = opendir(cachedir);
 		if(dir == NULL) {
-			fprintf(stderr, _("error: could not access cache directory\n"));
+			pm_fprintf(stderr, PM_LOG_ERROR, _("could not access cache directory\n"));
 			return(1);
 		}
 
@@ -220,12 +221,12 @@ static int sync_cleancache(int level)
 		printf(_("removing all packages from cache... "));
 
 		if(rmrf(cachedir)) {
-			fprintf(stderr, _("error: could not remove cache directory\n"));
+			pm_fprintf(stderr, PM_LOG_ERROR, _("could not remove cache directory\n"));
 			return(1);
 		}
 
 		if(makepath(cachedir)) {
-			fprintf(stderr, _("error: could not create new cache directory\n"));
+			pm_fprintf(stderr, PM_LOG_ERROR, _("could not create new cache directory\n"));
 			return(1);
 		}
 		printf(_("done.\n"));
@@ -248,7 +249,7 @@ static int sync_synctree(int level, alpm_list_t *syncs)
 
 		ret = alpm_db_update((level < 2 ? 0 : 1), db);
 		if(ret < 0) {
-			fprintf(stderr, _("error: failed to update %s (%s)\n"),
+			pm_fprintf(stderr, PM_LOG_ERROR, _("failed to update %s (%s)\n"),
 					alpm_db_get_name(db), alpm_strerrorlast());
 		} else if(ret == 1) {
 			printf(_(" %s is up to date\n"), alpm_db_get_name(db));
@@ -266,7 +267,7 @@ static int sync_synctree(int level, alpm_list_t *syncs)
 	 * expected
 	 */
 	if(!success) {
-		fprintf(stderr, _("error: failed to synchronize any databases\n"));
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to synchronize any databases\n"));
 	}
 	return(success > 0);
 }
@@ -418,7 +419,8 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
 				}
 
 				if(!db) {
-					fprintf(stderr, _("error: repository '%s' does not exist\n"), repo);
+					pm_fprintf(stderr, PM_LOG_ERROR, 
+						_("repository '%s' does not exist\n"), repo);
 					return(1);
 				}
 
@@ -433,7 +435,8 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
 				}
 
 				if(!foundpkg) {
-					fprintf(stderr, _("error: package '%s' was not found in repository '%s'\n"), pkgstr, repo);
+					pm_fprintf(stderr, PM_LOG_ERROR, 
+						_("package '%s' was not found in repository '%s'\n"), pkgstr, repo);
 					ret++;
 				}
 			} else {
@@ -453,7 +456,8 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
 					}
 				}
 				if(!foundpkg) {
-					fprintf(stderr, _("error: package '%s' was not found\n"), pkgstr);
+					pm_fprintf(stderr, PM_LOG_ERROR, 
+						_("package '%s' was not found\n"), pkgstr);
 					ret++;
 				}
 			}
@@ -490,7 +494,8 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
 			}
 
 			if(db == NULL) {
-				fprintf(stderr, _("error: repository \"%s\" was not found.\n"),repo);
+				pm_fprintf(stderr, PM_LOG_ERROR, 
+					_("repository \"%s\" was not found.\n"),repo);
 				alpm_list_free(ls);
 				return(1);
 			}
@@ -538,7 +543,7 @@ static int sync_trans(alpm_list_t *targets)
 		printf(_(":: Starting full system upgrade...\n"));
 		alpm_logaction("starting full system upgrade\n");
 		if(alpm_trans_sysupgrade() == -1) {
-			fprintf(stderr, _("error: %s\n"), alpm_strerrorlast());
+			pm_fprintf(stderr, PM_LOG_ERROR, "%s\n", alpm_strerrorlast());
 			retval = 1;
 			goto cleanup;
 		}
@@ -567,7 +572,8 @@ static int sync_trans(alpm_list_t *targets)
 							return(1);
 						}
 						if(alpm_trans_addtarget("pacman") == -1) {
-							fprintf(stderr, _("error: pacman: %s\n"), alpm_strerrorlast());
+							pm_fprintf(stderr, PM_LOG_ERROR, _("pacman: %s\n"), 
+								alpm_strerrorlast());
 							return(1);
 						}
 						break;
@@ -591,7 +597,7 @@ static int sync_trans(alpm_list_t *targets)
 					continue;
 				}
 				if(pm_errno != PM_ERR_PKG_NOT_FOUND) {
-					fprintf(stderr, _("error: '%s': %s\n"),
+					pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
 							targ, alpm_strerrorlast());
 					retval = 1;
 					goto cleanup;
@@ -647,7 +653,8 @@ static int sync_trans(alpm_list_t *targets)
 							targets = alpm_list_add(targets, strdup(pname));
 						} else {
 							alpm_list_t *k;
-							fprintf(stderr, _("error: several packages provide %s, please specify one :\n"), targ);
+							pm_fprintf(stderr, PM_LOG_ERROR, 
+								_("several packages provide %s, please specify one :\n"), targ);
 							for(k = prov; k; k = alpm_list_next(k)) {
 								pmpkg_t *pkg = alpm_list_getdata(k);
 								printf("%s ", alpm_pkg_get_name(pkg));
@@ -658,7 +665,8 @@ static int sync_trans(alpm_list_t *targets)
 							goto cleanup;
 						}
 					} else {
-						fprintf(stderr, _("error: '%s': not found in sync db\n"), targ);
+						pm_fprintf(stderr, PM_LOG_ERROR, 
+							_("'%s': not found in sync db\n"), targ);
 						retval = 1;
 						goto cleanup;
 					}
@@ -669,7 +677,7 @@ static int sync_trans(alpm_list_t *targets)
 
 	/* Step 2: "compute" the transaction based on targets and flags */
 	if(alpm_trans_prepare(&data) == -1) {
-		fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
 		        alpm_strerrorlast());
 		switch(pm_errno) {
 			alpm_list_t *i;
@@ -722,7 +730,7 @@ static int sync_trans(alpm_list_t *targets)
 
 	/* Step 3: actually perform the installation */
 	if(alpm_trans_commit(&data) == -1) {
-		fprintf(stderr, _("error: failed to commit transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
 		        alpm_strerrorlast());
 		switch(pm_errno) {
 			alpm_list_t *i;
diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c
index 589970e..927f1f4 100644
--- a/src/pacman/upgrade.c
+++ b/src/pacman/upgrade.c
@@ -73,7 +73,7 @@ int pacman_upgrade(alpm_list_t *targets)
 	for(i = targets; i; i = alpm_list_next(i)) {
 		char *targ = alpm_list_getdata(i);
 		if(alpm_trans_addtarget(targ) == -1) {
-			fprintf(stderr, _("error: '%s': %s\n"),
+			pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
 					targ, alpm_strerrorlast());
 			trans_release();
 			return(1);
@@ -83,7 +83,7 @@ int pacman_upgrade(alpm_list_t *targets)
 	/* Step 2: "compute" the transaction based on targets and flags */
 	/* TODO: No, compute nothing. This is stupid. */
 	if(alpm_trans_prepare(&data) == -1) {
-		fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
 		        alpm_strerrorlast());
 		switch(pm_errno) {
 			case PM_ERR_UNSATISFIED_DEPS:
@@ -137,7 +137,8 @@ int pacman_upgrade(alpm_list_t *targets)
 
 	/* Step 3: perform the installation */
 	if(alpm_trans_commit(NULL) == -1) {
-		fprintf(stderr, _("error: failed to commit transaction (%s)\n"), alpm_strerrorlast());
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"), 
+			alpm_strerrorlast());
 		trans_release();
 		return(1);
 	}
diff --git a/src/pacman/util.c b/src/pacman/util.c
index f1f098f..2e4ee86 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -49,7 +49,7 @@ int trans_init(pmtranstype_t type, pmtransflag_t flags)
 {
 	if(alpm_trans_init(type, flags, cb_trans_evt,
 				cb_trans_conv, cb_trans_progress) == -1) {
-		fprintf(stderr, _("error: failed to init transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to init transaction (%s)\n"),
 				alpm_strerrorlast());
 		if(pm_errno == PM_ERR_HANDLE_LOCK) {
 			fprintf(stderr, _("  if you're sure a package manager is not already\n"
@@ -63,7 +63,7 @@ int trans_init(pmtranstype_t type, pmtransflag_t flags)
 int trans_release()
 {
 	if(alpm_trans_release() == -1) {
-		fprintf(stderr, _("error: failed to release transaction (%s)\n"),
+		pm_fprintf(stderr, PM_LOG_ERROR, _("failed to release transaction (%s)\n"),
 				alpm_strerrorlast());
 		return(-1);
 	}
-- 
1.5.5.1





More information about the pacman-dev mailing list