Another attempt at untangling the logic so the compiler can follow it and not

generate pointless warnings.
This commit is contained in:
Rob Landley 2006-09-23 19:56:21 +00:00
parent a94554d010
commit 29d94b907f

View File

@ -142,41 +142,40 @@ int uudecode_main(int argc, char **argv)
/* Search for the start of the encoding */ /* Search for the start of the encoding */
while ((line = bb_get_chomped_line_from_file(src_stream)) != NULL) { while ((line = bb_get_chomped_line_from_file(src_stream)) != NULL) {
int (*decode_fn_ptr)(FILE * src, FILE * dst); 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) { if (strncmp(line, "begin-base64 ", 13) == 0) {
line_ptr = line + 13; line_ptr = line + 13;
decode_fn_ptr = read_base64; decode_fn_ptr = read_base64;
} else if (strncmp(line, "begin ", 6) == 0) { } else if (strncmp(line, "begin ", 6) == 0) {
line_ptr = line + 6; line_ptr = line + 6;
decode_fn_ptr = read_stduu; decode_fn_ptr = read_stduu;
} else {
free(line);
continue;
} }
if (line_ptr) { mode = strtoul(line_ptr, NULL, 8);
FILE *dst_stream; if (outname == NULL) {
int mode; outname = strchr(line_ptr, ' ');
int ret; if ((outname == NULL) || (*outname == '\0')) {
break;
mode = strtoul(line_ptr, NULL, 8);
if (outname == NULL) {
outname = strchr(line_ptr, ' ');
if ((outname == NULL) || (*outname == '\0')) {
break;
}
outname++;
} }
if (strcmp(outname, "-") == 0) { outname++;
dst_stream = stdout; }
} else { if (strcmp(outname, "-") == 0) {
dst_stream = xfopen(outname, "w"); dst_stream = stdout;
chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO)); } else {
} dst_stream = xfopen(outname, "w");
free(line); chmod(outname, mode & (S_IRWXU | S_IRWXG | S_IRWXO));
ret = decode_fn_ptr(src_stream, dst_stream);
bb_fclose_nonstdin(src_stream);
return(ret);
} }
free(line); 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"); bb_error_msg_and_die("No `begin' line");
} }