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(®ex, optarg, REG_EXTENDED|REG_NOSUB); |
137 |
+ xarraypush(regex_arr, ®ex, 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 |
} |