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