>From 0c25a17fb3ecabe397e9acb6bc7818395ed17756 Mon Sep 17 00:00:00 2001
From: Nagy Gabor <[EMAIL PROTECTED]>
Date: Thu, 31 Jul 2008 13:38:30 +0200
Subject: [PATCH] Move the the description parsing logic to string_display()

So dump_pkg_full will indent all strings correctly.

Signed-off-by: Nagy Gabor <[EMAIL PROTECTED]>
---
 src/pacman/package.c |   18 ++----------------
 src/pacman/util.c    |   13 +++++++++++--
 2 files changed, 13 insertions(+), 18 deletions(-)

diff --git a/src/pacman/package.c b/src/pacman/package.c
index 0680037..87ffd98 100644
--- a/src/pacman/package.c
+++ b/src/pacman/package.c
@@ -44,13 +44,11 @@
  */
 void dump_pkg_full(pmpkg_t *pkg, int level)
 {
-       const char *reason, *descheader;
+       const char *reason;
        time_t bdate, idate;
        char bdatestr[50] = "", idatestr[50] = "";
        const alpm_list_t *i;
        alpm_list_t *requiredby = NULL, *depstrings = NULL;
-       wchar_t *wcstr;
-       int len;
 
        if(pkg == NULL) {
                return;
@@ -132,19 +130,7 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
        if(level < 0) {
                string_display(_("MD5 Sum        :"), alpm_pkg_get_md5sum(pkg));
        }
-
-       /* printed using a variable to make i18n safe */
-       descheader = _("Description    : ");
-       /* len goes from # bytes -> # chars -> # cols */
-       len = strlen(descheader) + 1;
-       wcstr = calloc(len, sizeof(wchar_t));
-       len = mbstowcs(wcstr, descheader, len);
-       len = wcswidth(wcstr, len);
-       free(wcstr);
-       /* we can finally print the darn thing */
-       printf("%s", descheader);
-       indentprint(alpm_pkg_get_desc(pkg), len);
-       printf("\n\n");
+       string_display(_("Description    :"), alpm_pkg_get_desc(pkg));
 
        /* Print additional package info if info flag passed more than once */
        if(level > 1) {
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 82c460b..c7cdb78 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -425,12 +425,21 @@ alpm_list_t *strsplit(const char *str, const char 
splitchar)
 
 void string_display(const char *title, const char *string)
 {
+       wchar_t *wcstr;
+       int len;
+       /* compute the length of title */
+       len = strlen(title) + 1;
+       wcstr = calloc(len, sizeof(wchar_t));
+       len = mbstowcs(wcstr, title, len);
+       len = wcswidth(wcstr, len);
+       free(wcstr);
        printf("%s ", title);
        if(string == NULL || string[0] == '\0') {
-               printf(_("None\n"));
+               printf(_("None"));
        } else {
-               printf("%s\n", string);
+               indentprint(string, len + 1);
        }
+       putchar('\n');
 }
 
 void list_display(const char *title, const alpm_list_t *list)
-- 
1.5.6.4


_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to