summaryrefslogtreecommitdiff
path: root/src/pacman
diff options
context:
space:
mode:
Diffstat (limited to 'src/pacman')
-rw-r--r--src/pacman/pacman.c4
-rw-r--r--src/pacman/sync.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 48d45ad1..d5e600a5 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -130,7 +130,7 @@ static void usage(int op, const char * const myname)
printf(_(" -l, --list <repo> view a list of packages in a repo\n"));
printf(_(" -p, --print-uris print out URIs for given packages and their dependencies\n"));
printf(_(" -s, --search <regex> search remote repositories for matching strings\n"));
- printf(_(" -u, --sysupgrade upgrade all packages that are out of date\n"));
+ printf(_(" -u, --sysupgrade upgrade all outdated packages (-uu enables downgrade)\n"));
printf(_(" -w, --downloadonly download packages but do not install/upgrade anything\n"));
printf(_(" -y, --refresh download fresh package databases from the server\n"));
printf(_(" --needed don't reinstall up to date packages\n"));
@@ -508,7 +508,7 @@ static int parseargs(int argc, char *argv[])
config->op_q_unrequired = 1;
break;
case 'u':
- config->op_s_upgrade = 1;
+ (config->op_s_upgrade)++;
config->op_q_upgrade = 1;
config->flags |= PM_TRANS_FLAG_UNNEEDED;
break;
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index cb0b8b19..4da65400 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -563,7 +563,7 @@ static int sync_trans(alpm_list_t *targets)
if(config->op_s_upgrade) {
printf(_(":: Starting full system upgrade...\n"));
alpm_logaction("starting full system upgrade\n");
- if(alpm_trans_sysupgrade() == -1) {
+ if(alpm_trans_sysupgrade(config->op_s_upgrade >= 2) == -1) {
pm_fprintf(stderr, PM_LOG_ERROR, "%s\n", alpm_strerrorlast());
retval = 1;
goto cleanup;