On 28/06/10 11:56, Andres P wrote:
Instead of throwing away the return value, make a single function handle
errors.

Signed-off-by: Andres P<[email protected]>
---

I strongly disagree with making this void, but until all these void
funcions get a rework then I guess this is better than outright ignoring.

Then make it return an int. The functions calling this can be adjusted later, but at least adding the error message is a step in the right direction.

  src/pacman/util.c |   33 ++++++++++++++++++++++-----------
  1 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index de1b162..1b2f451 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -44,6 +44,17 @@
  #include "conf.h"
  #include "callback.h"

+/* error handling in a single fn please */

Seriously, this is one of the my useless pieces of function documentation I have ever seen.

+void vw_asprintf(char **str, const char *fmt, ...)

Why "vw_"? We have several other similar wrappers called pm_<foo> in util.c already, so stick with that naming for consistency.

Also, add the function proto to util.h.

+{
+       va_list args;
+       va_start(args, fmt);
+       if(vasprintf(str, fmt, args) != 0) {

...   oh, I see you flag this issue in the next email

+               pm_fprintf(stderr, PM_LOG_ERROR,  _("failed to allocate 
string\n"));
+               /* goto halt */
+       }
+       va_end(args);
+}

  int trans_init(pmtransflag_t flags)
  {
@@ -530,10 +541,10 @@ void display_targets(const alpm_list_t *pkgs, int install)
                        double mbsize = 0.0;
                        mbsize = alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);

-                       asprintf(&str, "%s-%s [%.2f MB]", 
alpm_pkg_get_name(pkg),
+                       vw_asprintf(&str, "%s-%s [%.2f MB]", 
alpm_pkg_get_name(pkg),
                                        alpm_pkg_get_version(pkg), mbsize);
<snip>

As an aside, it was obvious that this was something I was working on. So duplicating the work is a waste of both of our time. On that note, do not bother resubmitting with my comments addressed as it would make the patch almost identical to what I have locally.

Allan


Reply via email to