فهرست منبع

(read_and): Treat only two successive zero filled blocks as an EOF indicator. Issue a warning if a single one is encountered.

uid65697 21 سال پیش
والد
کامیت
67a6a93b2f
1فایلهای تغییر یافته به همراه12 افزوده شده و 3 حذف شده
  1. 12 3
      src/list.c

+ 12 - 3
src/list.c

@@ -130,10 +130,19 @@ read_and (void (*do_something) (void))
 	    }
 
 	  set_next_block_after (current_header);
+
+	  if (!ignore_zeros_option)
+	    {
+	      char buf[UINTMAX_STRSIZE_BOUND];
+
+	      status = read_header (false);
+	      if (status == HEADER_ZERO_BLOCK)
+		break;
+	      WARN ((0, 0, _("A lone zero block at %s"),
+		     STRINGIFY_BIGINT (current_block_ordinal (), buf)));
+	    }
 	  status = prev_status;
-	  if (ignore_zeros_option)
-	    continue;
-	  break;
+	  continue;
 
 	case HEADER_END_OF_FILE:
 	  if (block_number_option)