Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Fri, 9 Nov 2001 11:16:17 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Setup snpshot bug no skip/keep Message-ID: <20011109111617.F24506@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <200111091357 DOT IAA29622 AT cs DOT umb DOT edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.21i On Fri, Nov 09, 2001 at 10:13:41AM -0500, Brian Keener wrote: >John P. Rouillard wrote: >> Yes. I think you must ALWAYS have a keep or skip option available. >> >The change definitely makes sense and was in the code at one point in time. >During the heavy rewrites in choose.cc and the new way the structures and the >TRUSTS are handled this got lost. Like I said - I had started a change but the >installed version is in a different part of the structure from Prev, Curr, Test >Versions and it makes this logic difficult (for me). > >I believe the structure needs an entry for Installed - just like it has one for >Prev, curr, and test Here's the structure. Notice anything? typedef struct { char *name; /* package name, like "cygwin" */ char *sdesc; /* short description (replaces "name" if provided) */ char *ldesc; /* long description (multi-line) */ Category *category; /* the categories the package belongs to */ Dependency *required; /* the packages required for this package to work */ actions action; /* A range of states applicable to this package */ trusts trust; /* Selects among info[] below, a subset of action */ int srcpicked; /* True if source is required */ Info *installed; /* Info on installed package */ trusts installed_ix; /* Index into info array for currently installed package */ excludes exclude; /* true if this package should be excluded */ /* The reason for this weird layout is to allow for loops that scan either the info array, based on trust value or the infoscan array based on a pointer, looking for a particular version. */ Info info[1]; /* First element. Intentionally allocated prior to infoscan */ Info infoscan[NTRUST - 1]; /* +1 for TRUST_UNKNOWN */ Info infoend[0]; /* end marker */ } Package; cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/