+ difftotal = 0;
+ for (i = 0; i < maph * mapw; ++i) {
+ if (map[i] < 0) {
+ i_push_errorf(0, "errdiff_map values must be non-negative, errdiff[%d] is negative", i);
+ return 0;
+ }
+ difftotal += map[i];
+ }
+
+ if (!difftotal) {
+ i_push_error(0, "error diffusion map must contain some non-zero values");
+ return 0;
+ }
+