FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor


 
 
LinkBack Thread Tools
 
Old 08-05-2012, 09:46 AM
Daniel Wallace
 
Default add color to callback

Signed-off-by: Daniel Wallace <daniel.wallace@gatech.edu>
---
src/pacman/callback.c | 164 +++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 128 insertions(+), 36 deletions(-)

diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index 01c6b61..1c766e5 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -33,6 +33,7 @@
/* pacman */
#include "callback.h"
#include "util.h"
+#include "color.h"
#include "conf.h"

/* download progress bar */
@@ -223,16 +224,28 @@ void cb_event(alpm_event_t event, void *data1, void *data2)
printf(_("generating %s with %s... "), (char *)data1, (char *)data2);
break;
case ALPM_EVENT_DELTA_PATCH_DONE:
- printf(_("success!
"));
+ if (config->color) {
+ color_printf(COLOR_GREEN_ALL, _("success!
"));
+ } else {
+ printf(_("success!
"));
+ }
break;
case ALPM_EVENT_DELTA_PATCH_FAILED:
- printf(_("failed.
"));
+ if (config->color) {
+ color_printf(COLOR_RED_ALL, _("failed.
"));
+ } else {
+ printf(_("failed.
"));
+ }
break;
case ALPM_EVENT_SCRIPTLET_INFO:
fputs((const char *)data1, stdout);
break;
case ALPM_EVENT_RETRIEVE_START:
- printf(_(":: Retrieving packages ...
"));
+ if (config->color) {
+ color_printf(COLOR_DOUBLECOLON, _(":: Retrieving packages ...
"));
+ } else {
+ printf(_(":: Retrieving packages ...
"));
+ }
break;
case ALPM_EVENT_DISKSPACE_START:
if(config->noprogressbar) {
@@ -266,32 +279,63 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
switch(event) {
case ALPM_QUESTION_INSTALL_IGNOREPKG:
if(!config->op_s_downloadonly) {
- *response = yesno(_(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
+ if (config->color) {
+ *response = color_yesno(COLOR_DOUBLECOLON, _(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
alpm_pkg_get_name(data1));
+
+ } else {
+ *response = yesno(_(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
+ alpm_pkg_get_name(data1));
+ }
} else {
*response = 1;
}
break;
case ALPM_QUESTION_REPLACE_PKG:
- *response = yesno(_(":: Replace %s with %s/%s?"),
- alpm_pkg_get_name(data1),
- (char *)data3,
- alpm_pkg_get_name(data2));
+ if (config->color) {
+ *response = color_yesno(COLOR_DOUBLECOLON,
+ _(":: Replace %s with %s/%s?"),
+ alpm_pkg_get_name(data1),
+ (char *)data3,
+ alpm_pkg_get_name(data2));
+ } else {
+ *response = yesno(_(":: Replace %s with %s/%s?"),
+ alpm_pkg_get_name(data1),
+ (char *)data3,
+ alpm_pkg_get_name(data2));
+ }
break;
case ALPM_QUESTION_CONFLICT_PKG:
/* data parameters: target package, local package, conflict (strings) */
/* print conflict only if it contains new information */
if(strcmp(data1, data3) == 0 || strcmp(data2, data3) == 0) {
- *response = noyes(_(":: %s and %s are in conflict. Remove %s?"),
- (char *)data1,
- (char *)data2,
- (char *)data2);
+ if (config->color) {
+ *response = color_noyes(COLOR_DOUBLECOLON,
+ _(":: %s and %s are in conflict. Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data2);
+ } else {
+ *response = noyes(_(":: %s and %s are in conflict. Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data2);
+ }
} else {
- *response = noyes(_(":: %s and %s are in conflict (%s). Remove %s?"),
- (char *)data1,
- (char *)data2,
- (char *)data3,
- (char *)data2);
+ if (config->color) {
+ *response = color_noyes(COLOR_DOUBLECOLON,
+ _(":: %s and %s are in conflict (%s). Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data3,
+ (char *)data2);
+ } else {
+ *response = noyes(_(":: %s and %s are in conflict (%s). Remove %s?"),
+ (char *)data1,
+ (char *)data2,
+ (char *)data3,
+ (char *)data2);
+ }
}
break;
case ALPM_QUESTION_REMOVE_PKGS:
@@ -304,10 +348,17 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
(char *)alpm_pkg_get_name(i->data));
count++;
}
- printf(_n(
- ":: The following package cannot be upgraded due to unresolvable dependencies:
",
- ":: The following packages cannot be upgraded due to unresolvable dependencies:
",
- count));
+ if (config->color) {
+ color_printf(COLOR_DOUBLECOLON, _n(
+ ":: The following package cannot be upgraded due to unresolvable dependencies:
",
+ ":: The following packages cannot be upgraded due to unresolvable dependencies:
",
+ count));
+ } else {
+ printf(_n(
+ ":: The following package cannot be upgraded due to unresolvable dependencies:
",
+ ":: The following packages cannot be upgraded due to unresolvable dependencies:
",
+ count));
+ }
list_display(" ", namelist, getcols(fileno(stdout)));
printf("
");
*response = noyes(_n(
@@ -322,8 +373,13 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
alpm_list_t *providers = data1;
size_t count = alpm_list_count(providers);
char *depstring = alpm_dep_compute_string((alpm_depend_t *)data2);
- printf(_(":: There are %zd providers available for %s:
"), count,
- depstring);
+ if (config->color) {
+ color_printf(COLOR_DOUBLECOLON, _(":: There are %zd providers available for %s:
"),
+ count, depstring);
+ } else {
+ printf(_(":: There are %zd providers available for %s:
"), count,
+ depstring);
+ }
free(depstring);
select_display(providers);
*response = select_question(count);
@@ -331,18 +387,33 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
break;
case ALPM_QUESTION_LOCAL_NEWER:
if(!config->op_s_downloadonly) {
- *response = yesno(_(":: %s-%s: local version is newer. Upgrade anyway?"),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
+ if (config->color) {
+ *response = color_yesno(COLOR_DOUBLECOLON,
+ _(":: %s-%s: local version is newer. Upgrade anyway?"),
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ } else {
+ *response = yesno(_(":: %s-%s: local version is newer. Upgrade anyway?"),
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ }
} else {
*response = 1;
}
break;
case ALPM_QUESTION_CORRUPTED_PKG:
- *response = yesno(_(":: File %s is corrupted (%s).
"
- "Do you want to delete it?"),
- (char *)data1,
- alpm_strerror(*(alpm_errno_t *)data2));
+ if (config->color) {
+ *response = color_yesno(COLOR_DOUBLECOLON,
+ _(":: File %s is corrupted (%s).
"
+ "Do you want to delete it?"),
+ (char *)data1,
+ alpm_strerror(*(alpm_errno_t *)data2));
+ } else {
+ *response = yesno(_(":: File %s is corrupted (%s).
"
+ "Do you want to delete it?"),
+ (char *)data1,
+ alpm_strerror(*(alpm_errno_t *)data2));
+ }
break;
case ALPM_QUESTION_IMPORT_KEY:
{
@@ -356,8 +427,14 @@ void cb_question(alpm_question_t event, void *data1, void *data2,
revoked = " (revoked)";
}

- *response = yesno(_(":: Import PGP key %d%c/%s, "%s", created: %s%s?"),
- key->length, key->pubkey_algo, key->fingerprint, key->uid, created, revoked);
+ if (config->color) {
+ *response = color_yesno(COLOR_DOUBLECOLON,
+ _(":: Import PGP key %d%c/%s, "%s", created: %s%s?"),
+ key->length, key->pubkey_algo, key->fingerprint, key->uid, created, revoked);
+ } else {
+ *response = yesno(_(":: Import PGP key %d%c/%s, "%s", created: %s%s?"),
+ key->length, key->pubkey_algo, key->fingerprint, key->uid, created, revoked);
+ }
}
break;
}
@@ -490,8 +567,15 @@ void cb_progress(alpm_progress_t event, const char *pkgname, int percent,

}

- printf("(%*ld/%*ld) %ls%-*s", digits, (unsigned long)current,
- digits, (unsigned long)howmany, wcstr, padwid, "");
+ if (config->color) {
+ color_printf(COLOR_BLUE_ALL,
+ "(%*ld/%*ld)", digits, (unsigned long)current,
+ digits, (unsigned long)howmany);
+ } else {
+ printf("(%*ld/%*ld)", digits, (unsigned long)current,
+ digits, (unsigned long)howmany);
+ }
+ printf(" %ls%-*s", wcstr, padwid, "");

free(wcstr);

@@ -747,12 +831,20 @@ void cb_log(alpm_loglevel_t level, const char *fmt, va_list args)

if(on_progress) {
char *string = NULL;
- pm_vasprintf(&string, level, fmt, args);
+ if (config->color) {
+ color_pm_vasprintf(&string, level, fmt, args);
+ } else {
+ pm_vasprintf(&string, level, fmt, args);
+ }
if(string != NULL) {
output = alpm_list_add(output, string);
}
} else {
- pm_vfprintf(stderr, level, fmt, args);
+ if (config->color) {
+ color_pm_vfprintf(stderr, level, fmt, args);
+ } else {
+ pm_vfprintf(stderr, level, fmt, args);
+ }
}
}

--
1.7.11.4
 

Thread Tools




All times are GMT. The time now is 07:02 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org