This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Setup snpshot bug no skip/keep


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]