Explorar o código

Use new enum for trigdef_update_start() return values

Instead of cryptic literal integers use named enums.
Guillem Jover %!s(int64=15) %!d(string=hai) anos
pai
achega
0f1668f799
Modificáronse 4 ficheiros con 28 adicións e 19 borrados
  1. 10 1
      lib/dpkg/trigdeferred.h
  2. 6 6
      lib/dpkg/trigdeferred.l
  3. 7 7
      lib/dpkg/triglib.c
  4. 5 5
      src/trigcmd.c

+ 10 - 1
lib/dpkg/trigdeferred.h

@@ -35,6 +35,14 @@ enum trigdef_updateflags {
 	tduf_writeifenoent =      020,
 };
 
+enum trigdef_update_status {
+	tdus_error_no_dir = -1,
+	tdus_error_empty_deferred = -2,
+	tdus_error_no_deferred = -3,
+	tdus_no_deferred = 1,
+	tdus_ok = 2,
+};
+
 struct trigdefmeths {
 	void (*trig_begin)(const char *trig);
 	void (*package)(const char *awname);
@@ -43,7 +51,8 @@ struct trigdefmeths {
 
 void trigdef_set_methods(const struct trigdefmeths *methods);
 
-int trigdef_update_start(enum trigdef_updateflags uf, const char *admindir);
+enum trigdef_update_status trigdef_update_start(enum trigdef_updateflags uf,
+                                                const char *admindir);
 void trigdef_update_printf(const char *format, ...) DPKG_ATTR_PRINTF(1);
 int trigdef_parse(void);
 void trigdef_process_done(void);

+ 6 - 6
lib/dpkg/trigdeferred.l

@@ -116,7 +116,7 @@ constructfn(struct varbuf *vb, const char *dir, const char *tail)
  *
  * For positive return values the caller must call trigdef_update_done!
  */
-int
+enum trigdef_update_status
 trigdef_update_start(enum trigdef_updateflags uf, const char *admindir)
 {
 	struct stat stab;
@@ -133,7 +133,7 @@ trigdef_update_start(enum trigdef_updateflags uf, const char *admindir)
 					ohshite(_("unable to open/create "
 					          "triggers lockfile `%.250s'"),
 					        fn.buf);
-				return -1;
+				return tdus_error_no_dir;
 			}
 		}
 
@@ -152,7 +152,7 @@ trigdef_update_start(enum trigdef_updateflags uf, const char *admindir)
 	} else if (!stab.st_size) {
 		if (!(uf & tduf_writeifempty)) {
 			pop_cleanup(ehflag_normaltidy);
-			return -2;
+			return tdus_error_empty_deferred;
 		}
 	}
 
@@ -165,7 +165,7 @@ trigdef_update_start(enum trigdef_updateflags uf, const char *admindir)
 			        fn.buf);
 		if (!(uf & tduf_writeifenoent)) {
 			pop_cleanup(ehflag_normaltidy);
-			return -3;
+			return tdus_error_no_deferred;
 		}
 	}
 
@@ -180,12 +180,12 @@ trigdef_update_start(enum trigdef_updateflags uf, const char *admindir)
 	}
 
 	if (!old_deferred)
-		return 1;
+		return tdus_no_deferred;
 
 	trigdef_yyrestart(old_deferred);
 	BEGIN(0);
 
-	return 2;
+	return tdus_ok;
 }
 
 void

+ 7 - 7
lib/dpkg/triglib.c

@@ -782,7 +782,7 @@ static const struct trigdefmeths tdm_incorp = {
 void
 trig_incorporate(enum modstatdb_rw cstatus, const char *admindir)
 {
-	int ur;
+	enum trigdef_update_status ur;
 	enum trigdef_updateflags tduf;
 
 	free(triggersdir);
@@ -805,7 +805,7 @@ trig_incorporate(enum modstatdb_rw cstatus, const char *admindir)
 	}
 
 	ur = trigdef_update_start(tduf, admindir);
-	if (ur == -1 && cstatus >= msdbrw_write) {
+	if (ur == tdus_error_no_dir && cstatus >= msdbrw_write) {
 		if (mkdir(triggersdir, 0755)) {
 			if (errno != EEXIST)
 				ohshite(_("unable to create triggers state"
@@ -817,17 +817,17 @@ trig_incorporate(enum modstatdb_rw cstatus, const char *admindir)
 		ur = trigdef_update_start(tduf, admindir);
 	}
 	switch (ur) {
-	case -2:
+	case tdus_error_empty_deferred:
 		return;
-	case -1:
-	case -3:
+	case tdus_error_no_dir:
+	case tdus_error_no_deferred:
 		if (!trigh.transitional_activate)
 			return;
 	/* Fall through. */
-	case 1:
+	case tdus_no_deferred:
 		trigh.transitional_activate(cstatus);
 		break;
-	case 2:
+	case tdus_ok:
 		/* Read and incorporate triggers. */
 		trigdef_parse();
 		break;

+ 5 - 5
src/trigcmd.c

@@ -146,20 +146,20 @@ static const struct trigdefmeths tdm_add = {
 static void DPKG_ATTR_NORET
 do_check(void)
 {
-	int uf;
+	enum trigdef_update_status uf;
 
 	uf = trigdef_update_start(tduf_nolockok, admindir);
 	switch (uf) {
-	case -1:
+	case tdus_error_no_dir:
 		fprintf(stderr, _("%s: triggers data directory not yet created\n"),
 		        thisname);
 		exit(1);
-	case -3:
+	case tdus_error_no_deferred:
 		fprintf(stderr, _("%s: trigger records not yet in existence\n"),
 		        thisname);
 		exit(1);
-	case 2:
-	case -2:
+	case tdus_ok:
+	case tdus_error_empty_deferred:
 		exit(0);
 	default:
 		internerr("unknown trigdef_update_start return value '%d'", uf);