diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-08-20 17:35:13 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-08-20 17:35:13 +0000 |
commit | d591a360d39f9bca3479b913fe4c5773965d18cf (patch) | |
tree | 994b43e608bc4640dff7d1bd333938229b874d82 /archival/rpm.c | |
parent | 13068a4fdbe558daea85820fec663db3536aacff (diff) | |
download | busybox-w32-d591a360d39f9bca3479b913fe4c5773965d18cf.tar.gz busybox-w32-d591a360d39f9bca3479b913fe4c5773965d18cf.tar.bz2 busybox-w32-d591a360d39f9bca3479b913fe4c5773965d18cf.zip |
- merge -r15463:15564 from busybox_scratch branch through these changesets:
------------------------------------------------------------------------
r15465 | aldot | 2006-06-21 20:48:06 +0200 (Wed, 21 Jun 2006) | 3 lines
- use CONFIG_BUSYBOX_EXEC_PATH as before it one was broken by a recent revert.
- use xchdir() since all is invain if it fails there anyways, supposedly
------------------------------------------------------------------------
r15466 | aldot | 2006-06-21 20:55:16 +0200 (Wed, 21 Jun 2006) | 2 lines
- adjust docs to take CONFIG_BUSYBOX_EXEC_PATH into account.
------------------------------------------------------------------------
r15467 | aldot | 2006-06-21 21:31:24 +0200 (Wed, 21 Jun 2006) | 18 lines
- partial fallout of my TREE_USED touchup against gcc-4.2: rip unused vars, save
s 144 bytes
text data bss dec hex filename
862434 10156 645924 1518514 172bb2 busybox.old
862322 10156 645892 1518370 172b22 busybox
function old new delta
z_len 4 - -4
textend 4 - -4
part_nb 4 - -4
insize 4 - -4
ifile_size 4 - -4
do_link 4 - -4
new_text 70 60 -10
ipaddr_list_link 33 23 -10
gzip_main 898 822 -76
------------------------------------------------------------------------------
(add/remove: 0/6 grow/shrink: 0/3 up/down: 0/-120) Total: -120 bytes
------------------------------------------------------------------------
r15468 | aldot | 2006-06-21 21:43:05 +0200 (Wed, 21 Jun 2006) | 19 lines
- remove useless global exports
function old new delta
rpm_main 940 1601 +661
rpm_getstring 107 112 +5
rpm_getint 148 153 +5
loop_through_files 103 106 +3
fileaction_dobackup 115 113 -2
fileaction_list 5 - -5
rpm_getcount 42 - -42
extract_cpio_gz 161 - -161
rpm_gettags 504 - -504
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 4/1 up/down: 674/-714) Total: -40 bytes
text data bss dec hex filename
862322 10156 645892 1518370 172b22 busybox.old
862290 10156 645892 1518338 172b02 busybox
------------------------------------------------------------------------
r15555 | aldot | 2006-06-30 14:10:11 +0200 (Fri, 30 Jun 2006) | 22 lines
- shrink syslog a little bit, move a big buffer (for 'line') off the bss, fold s
emaphore stuff into single caller manually.
stats:
function old new delta
logMessage 395 427 +32
message 1245 1257 +12
opts - 4 +4
small 1 - -1
local_logging 4 - -4
doRemoteLog 4 - -4
circular_logging 4 - -4
syslogd_main 1299 1285 -14
static.res 36 16 -20
.rodata 186650 186586 -64
static.line 1025 - -1025
------------------------------------------------------------------------------
(add/remove: 1/5 grow/shrink: 2/3 up/down: 48/-1136) Total: -1088 bytes
cow@s37:~/src/busybox_scratch$ size sysklogd/syslogd.o{.orig,}
text data bss dec hex filename
3723 348 5242 9313 2461 sysklogd/syslogd.o.orig
3697 348 4188 8233 2029 sysklogd/syslogd.o
==============================================================================
Overall bloatcheck for the changeset mentioned above:
function old new delta
rpm_main 953 1608 +655
logMessage 395 427 +32
message 1245 1257 +12
opts - 4 +4
rpm_getstring 107 110 +3
rpm_getint 148 151 +3
loop_through_files 103 104 +1
small 1 - -1
fileaction_dobackup 115 113 -2
z_len 4 - -4
textend 4 - -4
part_nb 4 - -4
local_logging 4 - -4
insize 4 - -4
ifile_size 4 - -4
do_link 4 - -4
doRemoteLog 4 - -4
circular_logging 4 - -4
fileaction_list 5 - -5
new_text 70 60 -10
ipaddr_list_link 33 23 -10
clear_bufs 31 21 -10
syslogd_main 1287 1273 -14
builtin_help 190 176 -14
static.res 36 16 -20
builtin_source 229 199 -30
rpm_getcount 42 - -42
gzip_main 842 786 -56
.rodata 227176 227112 -64
lash_main 609 527 -82
busy_loop 3883 3739 -144
extract_cpio_gz 155 - -155
rpm_gettags 501 - -501
static.line 1025 - -1025
------------------------------------------------------------------------------
(add/remove: 1/15 grow/shrink: 6/12 up/down: 710/-2221) Total: -1511 bytes
Diffstat (limited to 'archival/rpm.c')
-rw-r--r-- | archival/rpm.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/archival/rpm.c b/archival/rpm.c index 7b27c0250..d399e0ea2 100644 --- a/archival/rpm.c +++ b/archival/rpm.c | |||
@@ -70,17 +70,15 @@ static void *map; | |||
70 | static rpm_index **mytags; | 70 | static rpm_index **mytags; |
71 | static int tagcount; | 71 | static int tagcount; |
72 | 72 | ||
73 | void extract_cpio_gz(int fd); | 73 | static void extract_cpio_gz(int fd); |
74 | rpm_index **rpm_gettags(int fd, int *num_tags); | 74 | static rpm_index **rpm_gettags(int fd, int *num_tags); |
75 | int bsearch_rpmtag(const void *key, const void *item); | 75 | static int bsearch_rpmtag(const void *key, const void *item); |
76 | char *rpm_getstring(int tag, int itemindex); | 76 | static char *rpm_getstring(int tag, int itemindex); |
77 | int rpm_getint(int tag, int itemindex); | 77 | static int rpm_getint(int tag, int itemindex); |
78 | int rpm_getcount(int tag); | 78 | static int rpm_getcount(int tag); |
79 | void exec_script(int progtag, int datatag, char *prefix); | 79 | static void fileaction_dobackup(char *filename, int fileref); |
80 | void fileaction_dobackup(char *filename, int fileref); | 80 | static void fileaction_setowngrp(char *filename, int fileref); |
81 | void fileaction_setowngrp(char *filename, int fileref); | 81 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); |
82 | void fileaction_list(char *filename, int itemno); | ||
83 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); | ||
84 | 82 | ||
85 | int rpm_main(int argc, char **argv) | 83 | int rpm_main(int argc, char **argv) |
86 | { | 84 | { |
@@ -169,7 +167,7 @@ int rpm_main(int argc, char **argv) | |||
169 | return 0; | 167 | return 0; |
170 | } | 168 | } |
171 | 169 | ||
172 | void extract_cpio_gz(int fd) { | 170 | static void extract_cpio_gz(int fd) { |
173 | archive_handle_t *archive_handle; | 171 | archive_handle_t *archive_handle; |
174 | unsigned char magic[2]; | 172 | unsigned char magic[2]; |
175 | 173 | ||
@@ -196,7 +194,7 @@ void extract_cpio_gz(int fd) { | |||
196 | } | 194 | } |
197 | 195 | ||
198 | 196 | ||
199 | rpm_index **rpm_gettags(int fd, int *num_tags) | 197 | static rpm_index **rpm_gettags(int fd, int *num_tags) |
200 | { | 198 | { |
201 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ | 199 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ |
202 | int pass, tagindex = 0; | 200 | int pass, tagindex = 0; |
@@ -235,14 +233,14 @@ rpm_index **rpm_gettags(int fd, int *num_tags) | |||
235 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ | 233 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ |
236 | } | 234 | } |
237 | 235 | ||
238 | int bsearch_rpmtag(const void *key, const void *item) | 236 | static int bsearch_rpmtag(const void *key, const void *item) |
239 | { | 237 | { |
240 | int *tag = (int *)key; | 238 | int *tag = (int *)key; |
241 | rpm_index **tmp = (rpm_index **) item; | 239 | rpm_index **tmp = (rpm_index **) item; |
242 | return (*tag - tmp[0]->tag); | 240 | return (*tag - tmp[0]->tag); |
243 | } | 241 | } |
244 | 242 | ||
245 | int rpm_getcount(int tag) | 243 | static int rpm_getcount(int tag) |
246 | { | 244 | { |
247 | rpm_index **found; | 245 | rpm_index **found; |
248 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 246 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -250,7 +248,7 @@ int rpm_getcount(int tag) | |||
250 | else return found[0]->count; | 248 | else return found[0]->count; |
251 | } | 249 | } |
252 | 250 | ||
253 | char *rpm_getstring(int tag, int itemindex) | 251 | static char *rpm_getstring(int tag, int itemindex) |
254 | { | 252 | { |
255 | rpm_index **found; | 253 | rpm_index **found; |
256 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 254 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -263,7 +261,7 @@ char *rpm_getstring(int tag, int itemindex) | |||
263 | } else return NULL; | 261 | } else return NULL; |
264 | } | 262 | } |
265 | 263 | ||
266 | int rpm_getint(int tag, int itemindex) | 264 | static int rpm_getint(int tag, int itemindex) |
267 | { | 265 | { |
268 | rpm_index **found; | 266 | rpm_index **found; |
269 | int n, *tmpint; | 267 | int n, *tmpint; |
@@ -284,7 +282,7 @@ int rpm_getint(int tag, int itemindex) | |||
284 | } else return -1; | 282 | } else return -1; |
285 | } | 283 | } |
286 | 284 | ||
287 | void fileaction_dobackup(char *filename, int fileref) | 285 | static void fileaction_dobackup(char *filename, int fileref) |
288 | { | 286 | { |
289 | struct stat oldfile; | 287 | struct stat oldfile; |
290 | int stat_res; | 288 | int stat_res; |
@@ -301,7 +299,7 @@ void fileaction_dobackup(char *filename, int fileref) | |||
301 | } | 299 | } |
302 | } | 300 | } |
303 | 301 | ||
304 | void fileaction_setowngrp(char *filename, int fileref) | 302 | static void fileaction_setowngrp(char *filename, int fileref) |
305 | { | 303 | { |
306 | int uid, gid; | 304 | int uid, gid; |
307 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); | 305 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); |
@@ -309,12 +307,7 @@ void fileaction_setowngrp(char *filename, int fileref) | |||
309 | chown (filename, uid, gid); | 307 | chown (filename, uid, gid); |
310 | } | 308 | } |
311 | 309 | ||
312 | void fileaction_list(char *filename, int ATTRIBUTE_UNUSED fileref) | 310 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) |
313 | { | ||
314 | printf("%s\n", filename); | ||
315 | } | ||
316 | |||
317 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) | ||
318 | { | 311 | { |
319 | int count = 0; | 312 | int count = 0; |
320 | while (rpm_getstring(filetag, count)) { | 313 | while (rpm_getstring(filetag, count)) { |