Replace status defines with const int to conform to sytle guide, adds 32 bytes

This commit is contained in:
Glenn L McGrath 2001-02-10 03:19:51 +00:00
parent c900575dc4
commit af8c65deaa
2 changed files with 110 additions and 116 deletions

View File

@ -42,35 +42,43 @@
#define UDPKG_QUIET "UDPKG_QUIET"
#define DEPENDSMAX 64 /* maximum number of depends we can handle */
#define STATUS_WANTSTART (0)
#define STATUS_WANTUNKNOWN (1 << 0)
#define STATUS_WANTINSTALL (1 << 1)
#define STATUS_WANTHOLD (1 << 2)
#define STATUS_WANTDEINSTALL (1 << 3)
#define STATUS_WANTPURGE (1 << 4)
#define STATUS_WANTMASK ~(STATUS_WANTUNKNOWN | STATUS_WANTINSTALL | STATUS_WANTHOLD | STATUS_WANTDEINSTALL | STATUS_WANTPURGE)
//static const int status_wantstart = 0;
//static const int status_wantunknown = (1 << 0);
static const int status_wantinstall = (1 << 1);
//static const int status_wanthold = (1 << 2);
//static const int status_wantdeinstall = (1 << 3);
//static const int status_wantpurge = (1 << 4);
static const int status_wantmask = 31;
#define STATUS_FLAGSTART (5)
#define STATUS_FLAGOK (1 << 5)
#define STATUS_FLAGREINSTREQ (1 << 6)
#define STATUS_FLAGHOLD (1 << 7)
#define STATUS_FLAGHOLDREINSTREQ (1 << 8)
#define STATUS_FLAGMASK ~(STATUS_FLAGOK | STATUS_FLAGREINSTREQ | STATUS_FLAGHOLD | STATUS_FLAGHOLDREINSTREQ)
//static const int status_flagstart = 5;
static const int status_flagok = (1 << 5); /* 32 */
//static const int status_flagreinstreq = (1 << 6);
//static const int status_flaghold = (1 << 7);
//static const int status_flagholdreinstreq = (1 << 8);
static const int status_flagmask = 480;
#define STATUS_STATUSSTART (9)
#define STATUS_STATUSNOTINSTALLED (1 << 9)
#define STATUS_STATUSUNPACKED (1 << 10)
#define STATUS_STATUSHALFCONFIGURED (1 << 11)
#define STATUS_STATUSINSTALLED (1 << 12)
#define STATUS_STATUSHALFINSTALLED (1 << 13)
#define STATUS_STATUSCONFIGFILES (1 << 14)
#define STATUS_STATUSPOSTINSTFAILED (1 << 15)
#define STATUS_STATUSREMOVALFAILED (1 << 16)
#define STATUS_STATUSMASK ~(STATUS_STATUSNOTINSTALLED | STATUS_STATUSUNPACKED | STATUS_STATUSHALFCONFIGURED | STATUS_STATUSCONFIGFILES | STATUS_STATUSPOSTINSTFAILED | STATUS_STATUSREMOVALFAILED | STATUS_STATUSHALFINSTALLED)
//static const int status_statusstart = 9;
//static const int status_statusnoninstalled = (1 << 9); /* 512 */
static const int status_statusunpacked = (1 << 10);
static const int status_statushalfconfigured = (1 << 11);
static const int status_statusinstalled = (1 << 12);
static const int status_statushalfinstalled = (1 << 13);
//static const int status_statusconfigfiles = (1 << 14);
//static const int status_statuspostinstfailed = (1 << 15);
//static const int status_statusremovalfailed = (1 << 16);
static const int status_statusmask = 130560; /* i assume status_statusinstalled is supposed to be included */
#define COLOR_WHITE 0
#define COLOR_GRAY 1
#define COLOR_BLACK 2
static const char *statuswords[][10] = {
{ (char *) 0, "unknown", "install", "hold", "deinstall", "purge", 0 },
{ (char *) 5, "ok", "reinstreq", "hold", "hold-reinstreq", 0 },
{ (char *) 9, "not-installed", "unpacked", "half-configured",
"installed", "half-installed", "config-files",
"post-inst-failed", "removal-failed", 0 }
};
const int color_white = 0;
const int color_grey = 1;
const int color_black = 2;
/* data structures */
struct package_t {
@ -147,11 +155,11 @@ static void depends_sort_visit(struct package_t **ordered,
unsigned short i;
/* mark node as processing */
pkg->color = COLOR_GRAY;
pkg->color = color_grey;
/* visit each not-yet-visited node */
for (i = 0; i < pkg->requiredcount; i++)
if (pkg->requiredfor[i]->color == COLOR_WHITE)
if (pkg->requiredfor[i]->color == color_white)
depends_sort_visit(ordered, pkgs, pkg->requiredfor[i]);
#if 0
@ -166,7 +174,7 @@ static void depends_sort_visit(struct package_t **ordered,
*ordered = pkg;
/* mark node as done */
pkg->color = COLOR_BLACK;
pkg->color = color_black;
}
static struct package_t *depends_sort(struct package_t *pkgs)
@ -177,10 +185,10 @@ static struct package_t *depends_sort(struct package_t *pkgs)
struct package_t *pkg;
for (pkg = pkgs; pkg != 0; pkg = pkg->next)
pkg->color = COLOR_WHITE;
pkg->color = color_white;
for (pkg = pkgs; pkg != 0; pkg = pkg->next)
if (pkg->color == COLOR_WHITE)
if (pkg->color == color_white)
depends_sort_visit(&ordered, pkgs, pkg);
/* Leaks the old list... return the new one... */
@ -217,8 +225,8 @@ struct package_t *depends_resolve(struct package_t *pkgs, void *status)
dependpkg.package = dependsvec[i];
if ((found = tfind(&dependpkg, &status, package_compare)) == 0 ||
((chk = *(struct package_t **)found) &&
(chk->status & (STATUS_FLAGOK | STATUS_STATUSINSTALLED)) !=
(STATUS_FLAGOK | STATUS_STATUSINSTALLED)))
(chk->status & (status_flagok | status_statusinstalled)) !=
(status_flagok | status_statusinstalled)))
{
/* if it fails, we look through the list of packages we are going to
* install */
@ -268,17 +276,6 @@ struct package_t *depends_resolve(struct package_t *pkgs, void *status)
* read using the status_read function is written back to the status file
*/
static const char *statuswords[][10] = {
{ (char *)STATUS_WANTSTART, "unknown", "install", "hold",
"deinstall", "purge", 0 },
{ (char *)STATUS_FLAGSTART, "ok", "reinstreq", "hold",
"hold-reinstreq", 0 },
{ (char *)STATUS_STATUSSTART, "not-installed", "unpacked", "half-configured",
"installed", "half-installed",
"config-files", "post-inst-failed",
"removal-failed", 0 }
};
int package_compare(const void *p1, const void *p2)
{
return strcmp(((struct package_t *)p1)->package,
@ -596,7 +593,7 @@ static int dpkg_doconfigure(struct package_t *pkg)
char postinst[1024];
char buf[1024];
DPRINTF("Configuring %s\n", pkg->package);
pkg->status &= STATUS_STATUSMASK;
pkg->status &= status_statusmask;
snprintf(postinst, sizeof(postinst), "%s%s.postinst", INFODIR, pkg->package);
if (is_file(postinst))
{
@ -604,12 +601,12 @@ static int dpkg_doconfigure(struct package_t *pkg)
if ((r = do_system(buf)) != 0)
{
fprintf(stderr, "postinst exited with status %d\n", r);
pkg->status |= STATUS_STATUSHALFCONFIGURED;
pkg->status |= status_statushalfconfigured;
return 1;
}
}
pkg->status |= STATUS_STATUSINSTALLED;
pkg->status |= status_statusinstalled;
return 0;
}
@ -690,15 +687,15 @@ static int dpkg_dounpack(struct package_t *pkg)
fclose(outfp);
}
}
pkg->status &= STATUS_WANTMASK;
pkg->status |= STATUS_WANTINSTALL;
pkg->status &= STATUS_FLAGMASK;
pkg->status |= STATUS_FLAGOK;
pkg->status &= STATUS_STATUSMASK;
pkg->status &= status_wantmask;
pkg->status |= status_wantinstall;
pkg->status &= status_flagmask;
pkg->status |= status_flagok;
pkg->status &= status_statusmask;
if (r == 0)
pkg->status |= STATUS_STATUSUNPACKED;
pkg->status |= status_statusunpacked;
else
pkg->status |= STATUS_STATUSHALFINSTALLED;
pkg->status |= status_statushalfinstalled;
}
chdir(cwd);
return r;
@ -824,14 +821,14 @@ static int dpkg_install(struct package_t *pkgs)
/* Stage 3: install */
for (p = ordered; p != 0; p = p->next)
{
p->status &= STATUS_WANTMASK;
p->status |= STATUS_WANTINSTALL;
p->status &= status_wantmask;
p->status |= status_wantinstall;
/* for now the flag is always set to ok... this is probably
* not what we want
*/
p->status &= STATUS_FLAGMASK;
p->status |= STATUS_FLAGOK;
p->status &= status_flagmask;
p->status |= status_flagok;
if (dpkg_doinstall(p) != 0)
{

113
dpkg.c
View File

@ -42,35 +42,43 @@
#define UDPKG_QUIET "UDPKG_QUIET"
#define DEPENDSMAX 64 /* maximum number of depends we can handle */
#define STATUS_WANTSTART (0)
#define STATUS_WANTUNKNOWN (1 << 0)
#define STATUS_WANTINSTALL (1 << 1)
#define STATUS_WANTHOLD (1 << 2)
#define STATUS_WANTDEINSTALL (1 << 3)
#define STATUS_WANTPURGE (1 << 4)
#define STATUS_WANTMASK ~(STATUS_WANTUNKNOWN | STATUS_WANTINSTALL | STATUS_WANTHOLD | STATUS_WANTDEINSTALL | STATUS_WANTPURGE)
//static const int status_wantstart = 0;
//static const int status_wantunknown = (1 << 0);
static const int status_wantinstall = (1 << 1);
//static const int status_wanthold = (1 << 2);
//static const int status_wantdeinstall = (1 << 3);
//static const int status_wantpurge = (1 << 4);
static const int status_wantmask = 31;
#define STATUS_FLAGSTART (5)
#define STATUS_FLAGOK (1 << 5)
#define STATUS_FLAGREINSTREQ (1 << 6)
#define STATUS_FLAGHOLD (1 << 7)
#define STATUS_FLAGHOLDREINSTREQ (1 << 8)
#define STATUS_FLAGMASK ~(STATUS_FLAGOK | STATUS_FLAGREINSTREQ | STATUS_FLAGHOLD | STATUS_FLAGHOLDREINSTREQ)
//static const int status_flagstart = 5;
static const int status_flagok = (1 << 5); /* 32 */
//static const int status_flagreinstreq = (1 << 6);
//static const int status_flaghold = (1 << 7);
//static const int status_flagholdreinstreq = (1 << 8);
static const int status_flagmask = 480;
#define STATUS_STATUSSTART (9)
#define STATUS_STATUSNOTINSTALLED (1 << 9)
#define STATUS_STATUSUNPACKED (1 << 10)
#define STATUS_STATUSHALFCONFIGURED (1 << 11)
#define STATUS_STATUSINSTALLED (1 << 12)
#define STATUS_STATUSHALFINSTALLED (1 << 13)
#define STATUS_STATUSCONFIGFILES (1 << 14)
#define STATUS_STATUSPOSTINSTFAILED (1 << 15)
#define STATUS_STATUSREMOVALFAILED (1 << 16)
#define STATUS_STATUSMASK ~(STATUS_STATUSNOTINSTALLED | STATUS_STATUSUNPACKED | STATUS_STATUSHALFCONFIGURED | STATUS_STATUSCONFIGFILES | STATUS_STATUSPOSTINSTFAILED | STATUS_STATUSREMOVALFAILED | STATUS_STATUSHALFINSTALLED)
//static const int status_statusstart = 9;
//static const int status_statusnoninstalled = (1 << 9); /* 512 */
static const int status_statusunpacked = (1 << 10);
static const int status_statushalfconfigured = (1 << 11);
static const int status_statusinstalled = (1 << 12);
static const int status_statushalfinstalled = (1 << 13);
//static const int status_statusconfigfiles = (1 << 14);
//static const int status_statuspostinstfailed = (1 << 15);
//static const int status_statusremovalfailed = (1 << 16);
static const int status_statusmask = 130560; /* i assume status_statusinstalled is supposed to be included */
#define COLOR_WHITE 0
#define COLOR_GRAY 1
#define COLOR_BLACK 2
static const char *statuswords[][10] = {
{ (char *) 0, "unknown", "install", "hold", "deinstall", "purge", 0 },
{ (char *) 5, "ok", "reinstreq", "hold", "hold-reinstreq", 0 },
{ (char *) 9, "not-installed", "unpacked", "half-configured",
"installed", "half-installed", "config-files",
"post-inst-failed", "removal-failed", 0 }
};
const int color_white = 0;
const int color_grey = 1;
const int color_black = 2;
/* data structures */
struct package_t {
@ -147,11 +155,11 @@ static void depends_sort_visit(struct package_t **ordered,
unsigned short i;
/* mark node as processing */
pkg->color = COLOR_GRAY;
pkg->color = color_grey;
/* visit each not-yet-visited node */
for (i = 0; i < pkg->requiredcount; i++)
if (pkg->requiredfor[i]->color == COLOR_WHITE)
if (pkg->requiredfor[i]->color == color_white)
depends_sort_visit(ordered, pkgs, pkg->requiredfor[i]);
#if 0
@ -166,7 +174,7 @@ static void depends_sort_visit(struct package_t **ordered,
*ordered = pkg;
/* mark node as done */
pkg->color = COLOR_BLACK;
pkg->color = color_black;
}
static struct package_t *depends_sort(struct package_t *pkgs)
@ -177,10 +185,10 @@ static struct package_t *depends_sort(struct package_t *pkgs)
struct package_t *pkg;
for (pkg = pkgs; pkg != 0; pkg = pkg->next)
pkg->color = COLOR_WHITE;
pkg->color = color_white;
for (pkg = pkgs; pkg != 0; pkg = pkg->next)
if (pkg->color == COLOR_WHITE)
if (pkg->color == color_white)
depends_sort_visit(&ordered, pkgs, pkg);
/* Leaks the old list... return the new one... */
@ -217,8 +225,8 @@ struct package_t *depends_resolve(struct package_t *pkgs, void *status)
dependpkg.package = dependsvec[i];
if ((found = tfind(&dependpkg, &status, package_compare)) == 0 ||
((chk = *(struct package_t **)found) &&
(chk->status & (STATUS_FLAGOK | STATUS_STATUSINSTALLED)) !=
(STATUS_FLAGOK | STATUS_STATUSINSTALLED)))
(chk->status & (status_flagok | status_statusinstalled)) !=
(status_flagok | status_statusinstalled)))
{
/* if it fails, we look through the list of packages we are going to
* install */
@ -268,17 +276,6 @@ struct package_t *depends_resolve(struct package_t *pkgs, void *status)
* read using the status_read function is written back to the status file
*/
static const char *statuswords[][10] = {
{ (char *)STATUS_WANTSTART, "unknown", "install", "hold",
"deinstall", "purge", 0 },
{ (char *)STATUS_FLAGSTART, "ok", "reinstreq", "hold",
"hold-reinstreq", 0 },
{ (char *)STATUS_STATUSSTART, "not-installed", "unpacked", "half-configured",
"installed", "half-installed",
"config-files", "post-inst-failed",
"removal-failed", 0 }
};
int package_compare(const void *p1, const void *p2)
{
return strcmp(((struct package_t *)p1)->package,
@ -596,7 +593,7 @@ static int dpkg_doconfigure(struct package_t *pkg)
char postinst[1024];
char buf[1024];
DPRINTF("Configuring %s\n", pkg->package);
pkg->status &= STATUS_STATUSMASK;
pkg->status &= status_statusmask;
snprintf(postinst, sizeof(postinst), "%s%s.postinst", INFODIR, pkg->package);
if (is_file(postinst))
{
@ -604,12 +601,12 @@ static int dpkg_doconfigure(struct package_t *pkg)
if ((r = do_system(buf)) != 0)
{
fprintf(stderr, "postinst exited with status %d\n", r);
pkg->status |= STATUS_STATUSHALFCONFIGURED;
pkg->status |= status_statushalfconfigured;
return 1;
}
}
pkg->status |= STATUS_STATUSINSTALLED;
pkg->status |= status_statusinstalled;
return 0;
}
@ -690,15 +687,15 @@ static int dpkg_dounpack(struct package_t *pkg)
fclose(outfp);
}
}
pkg->status &= STATUS_WANTMASK;
pkg->status |= STATUS_WANTINSTALL;
pkg->status &= STATUS_FLAGMASK;
pkg->status |= STATUS_FLAGOK;
pkg->status &= STATUS_STATUSMASK;
pkg->status &= status_wantmask;
pkg->status |= status_wantinstall;
pkg->status &= status_flagmask;
pkg->status |= status_flagok;
pkg->status &= status_statusmask;
if (r == 0)
pkg->status |= STATUS_STATUSUNPACKED;
pkg->status |= status_statusunpacked;
else
pkg->status |= STATUS_STATUSHALFINSTALLED;
pkg->status |= status_statushalfinstalled;
}
chdir(cwd);
return r;
@ -824,14 +821,14 @@ static int dpkg_install(struct package_t *pkgs)
/* Stage 3: install */
for (p = ordered; p != 0; p = p->next)
{
p->status &= STATUS_WANTMASK;
p->status |= STATUS_WANTINSTALL;
p->status &= status_wantmask;
p->status |= status_wantinstall;
/* for now the flag is always set to ok... this is probably
* not what we want
*/
p->status &= STATUS_FLAGMASK;
p->status |= STATUS_FLAGOK;
p->status &= status_flagmask;
p->status |= status_flagok;
if (dpkg_doinstall(p) != 0)
{