summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNagy Gabor <ngaba@bibl.u-szeged.hu>2008-07-31 13:38:30 +0200
committerDan McGee <dan@archlinux.org>2008-08-23 15:38:11 +0200
commit9451b2e4f23a3c566fcfe3420c379b3cb3eb1f90 (patch)
treefa47f6756811bd9f85b259199964a6b1e5169cd0 /src
parent901e4aa5c203f605e9d527e474821426a40e5cea (diff)
downloadpacman-9451b2e4f23a3c566fcfe3420c379b3cb3eb1f90.tar.gz
pacman-9451b2e4f23a3c566fcfe3420c379b3cb3eb1f90.tar.xz
Move the the description parsing logic to string_display()
So dump_pkg_full will indent all strings correctly. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> [Xav: add string_length function] Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/pacman/package.c18
-rw-r--r--src/pacman/util.c31
2 files changed, 30 insertions, 19 deletions
diff --git a/src/pacman/package.c b/src/pacman/package.c
index 06800378..87ffd985 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 82c460b7..43835047 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -423,14 +423,39 @@ alpm_list_t *strsplit(const char *str, const char splitchar)
return(list);
}
+static int string_length(const char *s)
+{
+ int len;
+ wchar_t *wcstr;
+
+ if(!s) {
+ return(0);
+ }
+ /* len goes from # bytes -> # chars -> # cols */
+ len = strlen(s) + 1;
+ wcstr = calloc(len, sizeof(wchar_t));
+ len = mbstowcs(wcstr, s, len);
+ len = wcswidth(wcstr, len);
+ free(wcstr);
+
+ return(len);
+}
+
void string_display(const char *title, const char *string)
{
- printf("%s ", title);
+ int len = 0;
+
+ if(title) {
+ /* compute the length of title + a space */
+ len = string_length(title) + 1;
+ printf("%s ", title);
+ }
if(string == NULL || string[0] == '\0') {
- printf(_("None\n"));
+ printf(_("None"));
} else {
- printf("%s\n", string);
+ indentprint(string, len);
}
+ printf("\n");
}
void list_display(const char *title, const alpm_list_t *list)