Explorar o código

Use new namevalue_find_by_name function instead of ad-hoc code

Guillem Jover %!s(int64=15) %!d(string=hai) anos
pai
achega
28007d02c3
Modificáronse 2 ficheiros con 8 adicións e 10 borrados
  1. 4 8
      lib/dpkg/fields.c
  2. 4 2
      src/select.c

+ 4 - 8
lib/dpkg/fields.c

@@ -40,17 +40,13 @@ convert_string(struct parsedb_state *ps, const char *what, int otherwise,
                const char **endpp)
 {
   const char *ep;
-  const struct namevalue *nvip = ivip;
+  const struct namevalue *nvip;
 
   if (!*startp)
     parse_error(ps, pigp, _("%s is missing"), what);
-  while (nvip->name) {
-    if (strncasecmp(nvip->name, startp, nvip->length))
-      nvip++;
-    else
-      break;
-  }
-  if (!nvip->name) {
+
+  nvip = namevalue_find_by_name(ivip, startp);
+  if (nvip == NULL) {
     if (otherwise != -1) return otherwise;
     parse_error(ps, pigp, _("`%.*s' is not allowed for %s"),
                 (int)strnlen(startp, 50), startp, what);

+ 4 - 2
src/select.c

@@ -127,8 +127,10 @@ void setselections(const char *const *argv) {
     varbufaddc(&selvb,0);
     e = pkg_name_is_illegal(namevb.buf, NULL);
     if (e) ohshit(_("illegal package name at line %d: %.250s"),lno,e);
-    for (nvp=wantinfos; nvp->name && strcmp(nvp->name,selvb.buf); nvp++);
-    if (!nvp->name) ohshit(_("unknown wanted status at line %d: %.250s"),lno,selvb.buf);
+
+    nvp = namevalue_find_by_name(wantinfos, selvb.buf);
+    if (nvp == NULL)
+      ohshit(_("unknown wanted status at line %d: %.250s"), lno, selvb.buf);
     pkg = pkg_db_find(namevb.buf);
     pkg->want= nvp->value;
     if (c == EOF) break;