Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-projects commit in portage-utils: .depend qcheck.c
Date: Mon, 03 Oct 2011 16:18:36
Message-Id: 20111003161825.5366B2004B@flycatcher.gentoo.org
1 vapier 11/10/03 16:18:25
2
3 Modified: .depend qcheck.c
4 Log:
5 use array helpers from pax-utils
6
7 Revision Changes Path
8 1.45 portage-utils/.depend
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/.depend?rev=1.45&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/.depend?rev=1.45&content-type=text/plain
12 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/.depend?r1=1.44&r2=1.45
13
14 Index: .depend
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo-projects/portage-utils/.depend,v
17 retrieving revision 1.44
18 retrieving revision 1.45
19 diff -u -r1.44 -r1.45
20 --- .depend 3 Oct 2011 01:25:54 -0000 1.44
21 +++ .depend 3 Oct 2011 16:18:25 -0000 1.45
22 @@ -3,8 +3,8 @@
23 libq/hash_fd.c libq/md5_sha1_sum.c libq/human_readable.c libq/rmspace.c \
24 libq/which.c libq/compat.c libq/copy_file.c libq/safe_io.c libq/xchdir.c \
25 libq/xgetcwd.c libq/xmkdir.c libq/xreadlink.c libq/xregex.c \
26 - libq/xsystem.c libq/atom_explode.c libq/atom_compare.c libq/basename.c \
27 - libq/prelink.c libq/profile.c libq/vdb_get_next_dir.c libq/virtuals.c \
28 - applets.h include_applets.h q.c qcheck.c qdepends.c qfile.c qlist.c \
29 - qlop.c qsearch.c qsize.c qtbz2.c quse.c qxpak.c qpkg.c qgrep.c qatom.c \
30 - qmerge.c qcache.c qglsa.c
31 + libq/xsystem.c libq/xarray.c libq/atom_explode.c libq/atom_compare.c \
32 + libq/basename.c libq/prelink.c libq/profile.c libq/vdb_get_next_dir.c \
33 + libq/virtuals.c applets.h include_applets.h q.c qcheck.c qdepends.c \
34 + qfile.c qlist.c qlop.c qsearch.c qsize.c qtbz2.c quse.c qxpak.c qpkg.c \
35 + qgrep.c qatom.c qmerge.c qcache.c qglsa.c
36
37
38
39 1.51 portage-utils/qcheck.c
40
41 file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qcheck.c?rev=1.51&view=markup
42 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qcheck.c?rev=1.51&content-type=text/plain
43 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qcheck.c?r1=1.50&r2=1.51
44
45 Index: qcheck.c
46 ===================================================================
47 RCS file: /var/cvsroot/gentoo-projects/portage-utils/qcheck.c,v
48 retrieving revision 1.50
49 retrieving revision 1.51
50 diff -u -r1.50 -r1.51
51 --- qcheck.c 3 Oct 2011 03:18:10 -0000 1.50
52 +++ qcheck.c 3 Oct 2011 16:18:25 -0000 1.51
53 @@ -1,7 +1,7 @@
54 /*
55 * Copyright 2005-2010 Gentoo Foundation
56 * Distributed under the terms of the GNU General Public License v2
57 - * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcheck.c,v 1.50 2011/10/03 03:18:10 vapier Exp $
58 + * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcheck.c,v 1.51 2011/10/03 16:18:25 vapier Exp $
59 *
60 * Copyright 2005-2010 Ned Ludd - <solar@g.o>
61 * Copyright 2005-2010 Mike Frysinger - <vapier@g.o>
62 @@ -34,30 +34,16 @@
63 "Undo prelink when calculating checksums",
64 COMMON_OPTS_HELP
65 };
66 -static const char qcheck_rcsid[] = "$Id: qcheck.c,v 1.50 2011/10/03 03:18:10 vapier Exp $";
67 +static const char qcheck_rcsid[] = "$Id: qcheck.c,v 1.51 2011/10/03 16:18:25 vapier Exp $";
68 #define qcheck_usage(ret) usage(ret, QCHECK_FLAGS, qcheck_long_opts, qcheck_opts_help, lookup_applet_idx("qcheck"))
69
70 static bool bad_only = false;
71 #define qcprintf(fmt, args...) if (!bad_only) printf(_(fmt), ## args)
72
73 -static void qcheck_cleanup(regex_t **regex_head, const size_t regex_count)
74 -{
75 - size_t i;
76 -
77 - if (regex_head == NULL)
78 - return;
79 -
80 - for (i = 0; i < regex_count; ++i) {
81 - regfree(regex_head[i]);
82 - free(regex_head[i]);
83 - }
84 - free(regex_head);
85 -}
86 -
87 static int qcheck_process_contents(int portroot_fd, int pkg_fd,
88 - const char *catname, const char *pkgname, regex_t **regex_head,
89 - size_t regex_count, bool qc_update, bool chk_afk,
90 - bool chk_hash, bool chk_mtime, bool undo_prelink)
91 + const char *catname, const char *pkgname, array_t *regex_arr,
92 + bool qc_update, bool chk_afk, bool chk_hash, bool chk_mtime,
93 + bool undo_prelink)
94 {
95 int fd;
96 FILE *fp, *fpx;
97 @@ -104,12 +90,13 @@
98
99 /* run our little checks */
100 ++num_files;
101 - if (regex_count) {
102 - size_t j;
103 - for (j = 0; j < regex_count; ++j)
104 - if (!regexec(regex_head[j], e->name, 0, NULL, 0))
105 + if (array_cnt(regex_arr)) {
106 + size_t n;
107 + regex_t *regex;
108 + array_for_each(regex_arr, n, regex)
109 + if (!regexec(regex, e->name, 0, NULL, 0))
110 break;
111 - if (j < regex_count) {
112 + if (n < array_cnt(regex_arr)) {
113 --num_files;
114 ++num_files_ignored;
115 continue;
116 @@ -290,8 +277,7 @@
117 bool chk_hash = true;
118 bool chk_mtime = true;
119 bool undo_prelink = false;
120 - regex_t **regex_head = NULL;
121 - size_t regex_count = 0;
122 + DECLARE_ARRAY(regex_arr);
123
124 DBG("argc=%d argv[0]=%s argv[1]=%s",
125 argc, argv[0], argc > 1 ? argv[1] : "NULL?");
126 @@ -302,12 +288,11 @@
127 case 'a': search_all = true; break;
128 case 'e': exact = 1; break;
129 case 's': {
130 - regex_head = xrealloc(regex_head, (regex_count + 1) * sizeof(*regex_head));
131 - regex_head[regex_count] = xmalloc(sizeof(*regex_head[0]));
132 - xregcomp(regex_head[regex_count], optarg, REG_EXTENDED|REG_NOSUB);
133 - ++regex_count;
134 - }
135 + regex_t regex;
136 + xregcomp(&regex, optarg, REG_EXTENDED|REG_NOSUB);
137 + xarraypush(regex_arr, &regex, sizeof(regex));
138 break;
139 + }
140 case 'u': qc_update = true; break;
141 case 'A': chk_afk = false; break;
142 case 'B': bad_only = true; break;
143 @@ -379,14 +364,14 @@
144 continue;
145
146 ret = qcheck_process_contents(portroot_fd, pkg_fd,
147 - dentry->d_name, de->d_name, regex_head, regex_count,
148 + dentry->d_name, de->d_name, regex_arr,
149 qc_update, chk_afk, chk_hash, chk_mtime, undo_prelink);
150 close(pkg_fd);
151 }
152 closedir(dirp);
153 }
154
155 - qcheck_cleanup(regex_head, regex_count);
156 + xarrayfree(regex_arr);
157 close(portroot_fd);
158 return ret;
159 }