svn commit: trunk/busybox/coreutils
landley at busybox.net
landley at busybox.net
Sat Sep 23 19:56:21 UTC 2006
Author: landley
Date: 2006-09-23 12:56:21 -0700 (Sat, 23 Sep 2006)
New Revision: 16209
Log:
Another attempt at untangling the logic so the compiler can follow it and not
generate pointless warnings.
Modified:
trunk/busybox/coreutils/uudecode.c
Changeset:
Modified: trunk/busybox/coreutils/uudecode.c
===================================================================
--- trunk/busybox/coreutils/uudecode.c 2006-09-23 17:49:09 UTC (rev 16208)
+++ trunk/busybox/coreutils/uudecode.c 2006-09-23 19:56:21 UTC (rev 16209)
@@ -142,41 +142,40 @@
/* Search for the start of the encoding */
while ((line = bb_get_chomped_line_from_file(src_stream)) != NULL) {
int (*decode_fn_ptr)(FILE * src, FILE * dst);
- char *line_ptr = NULL;
-
+ char *line_ptr;
+ FILE *dst_stream;
+ int mode;
+ int ret;
+
if (strncmp(line, "begin-base64 ", 13) == 0) {
line_ptr = line + 13;
decode_fn_ptr = read_base64;
} else if (strncmp(line, "begin ", 6) == 0) {
line_ptr = line + 6;
decode_fn_ptr = read_stduu;
+ } else {
+ free(line);
+ continue;
}
- if (line_ptr) {
- FILE *dst_stream;
- int mode;
- int ret;
-
- mode = strtoul(line_ptr, NULL, 8);
- if (outname == NULL) {
- outname = strchr(line_ptr, ' ');
- if ((outname == NULL) || (*outname == '\0')) {
- break;
- }
- outname++;
+ mode = strtoul(line_ptr, NULL, 8);
+ if (outname == NULL) {
+ outname = strchr(line_ptr, ' ');
+ if ((outname == NULL) || (*outname == '\0')) {
+ break;
}
- if (strcmp(outname, "-") == 0) {
- dst_stream = stdout;
- } else {
- dst_stream = xfopen(outname, "w");
- chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO));
- }
- free(line);
- ret = decode_fn_ptr(src_stream, dst_stream);
- bb_fclose_nonstdin(src_stream);
- return(ret);
+ outname++;
}
+ if (strcmp(outname, "-") == 0) {
+ dst_stream = stdout;
+ } else {
+ dst_stream = xfopen(outname, "w");
+ chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO));
+ }
free(line);
+ ret = decode_fn_ptr(src_stream, dst_stream);
+ bb_fclose_nonstdin(src_stream);
+ return(ret);
}
bb_error_msg_and_die("No `begin' line");
}
More information about the busybox-cvs
mailing list