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

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 06-02-2008, 09:55 AM
Xavier
 
Default src/pacman/sync.c : cleanup of pacman_sync

>From 4cc1e73f8fcc5920fd2880b8d6fcb8ce6f9841cb Mon Sep 17 00:00:00 2001
From: Xavier Chantry <shiningxc@gmail.com>
Date: Wed, 28 May 2008 22:55:03 +0200
Subject: [PATCH] src/pacman/sync.c : cleanup of pacman_sync

By putting the search / group / info / list operations just after the -Sy
op, we can simplify several checks :
1) the check for "missing targets". Since we took care of the above
operations, we now have less cases to consider :
* -Sy : we can end now (this is actually a bugfix)
* -Su : we can proceed
* -S : this op requires targets, so exit with an error
2) the check to see if a transaction is needed. If we arrive at the end of
the function, it is either because we have -Su or -S <targets> so we already
know a transaction is needed there.

Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
---
src/pacman/sync.c | 76 +++++++++++++++++++++++++---------------------------
1 files changed, 37 insertions(+), 39 deletions(-)

diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 134d4db..7fb8649 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -794,15 +794,6 @@ int pacman_sync(alpm_list_t *targets)
return(1);
}

- if(targets == NULL && !(config->op_s_sync || config->op_s_upgrade
- || config->op_s_search || config->group
- || config->op_s_info || config->op_q_list)) {
- /* don't proceed here unless we have an operation that doesn't require
- * a target list */
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)
"));
- return(1);
- }
-
if(config->op_s_sync) {
/* grab a fresh package list */
printf(_(":: Synchronizing package databases...
"));
@@ -810,35 +801,6 @@ int pacman_sync(alpm_list_t *targets)
if(!sync_synctree(config->op_s_sync, sync_dbs)) {
return(1);
}
- config->op_s_sync = 0;
- }
-
- if(needs_transaction()) {
- alpm_list_t *targs = alpm_list_strdup(targets);
- if(!(config->flags & (PM_TRANS_FLAG_DOWNLOADONLY |
PM_TRANS_FLAG_PRINTURIS))) {
- /* check for newer versions of packages to be upgraded first */
- alpm_list_t *packages = syncfirst();
- if(packages) {
- printf(_(":: The following packages should be upgraded first :
"));
- list_display(" ", packages);
- if(yesno(1, _(":: Do you want to cancel the current operation
"
- ":: and upgrade these packages now?"))) {
- FREELIST(targs);
- targs = packages;
- config->flags = 0;
- config->op_s_upgrade = 0;
- } else {
- FREELIST(packages);
- }
- printf("
");
- }
- }
-
- int ret = sync_trans(targs);
- FREELIST(targs);
- if(ret == 1) {
- return(1);
- }
}

/* search for a package */
@@ -861,7 +823,43 @@ int pacman_sync(alpm_list_t *targets)
return(sync_list(sync_dbs, targets));
}

- return(0);
+ if(targets == NULL) {
+ if(config->op_s_sync) {
+ return(0);
+ } else if(config->op_s_upgrade) {
+ /* proceed */
+ } else {
+ /* don't proceed here unless we have an operation that doesn't require a
+ * target list */
+ pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)
"));
+ return(1);
+ }
+ }
+
+ alpm_list_t *targs = alpm_list_strdup(targets);
+ if(!(config->flags & (PM_TRANS_FLAG_DOWNLOADONLY |
PM_TRANS_FLAG_PRINTURIS))) {
+ /* check for newer versions of packages to be upgraded first */
+ alpm_list_t *packages = syncfirst();
+ if(packages) {
+ printf(_(":: The following packages should be upgraded first :
"));
+ list_display(" ", packages);
+ if(yesno(1, _(":: Do you want to cancel the current operation
"
+ ":: and upgrade these packages now?"))) {
+ FREELIST(targs);
+ targs = packages;
+ config->flags = 0;
+ config->op_s_upgrade = 0;
+ } else {
+ FREELIST(packages);
+ }
+ printf("
");
+ }
+ }
+
+ int ret = sync_trans(targs);
+ FREELIST(targs);
+
+ return(ret);
}

/* vim: set ts=2 sw=2 noet: */
--
1.5.5.1

_______________________________________________
pacman-dev mailing list
pacman-dev@archlinux.org
http://archlinux.org/mailman/listinfo/pacman-dev
 

Thread Tools




All times are GMT. The time now is 09:29 PM.

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