about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/libpamwrite.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/libpamwrite.c b/lib/libpamwrite.c
index 73e5e78a..9f86e359 100644
--- a/lib/libpamwrite.c
+++ b/lib/libpamwrite.c
@@ -22,6 +22,7 @@
 #include <math.h>
 
 #include "pm_config.h"
+#include "pm_c_util.h"
 #include "pam.h"
 
 
@@ -354,7 +355,9 @@ pnm_writepamrow(const struct pam * const pamP,
        pnm_writepaminit().
     */
     
-    if (pm_plain_output || pamP->plainformat) {
+    if (pamP->format == PAM_FORMAT || !(pm_plain_output || pamP->plainformat))
+        writePamRawRow(pamP, tuplerow, 1);
+    else {
         switch (PAM_FORMAT_TYPE(pamP->format)) {
         case PBM_TYPE:
             writePamPlainPbmRow(pamP, tuplerow);
@@ -364,18 +367,13 @@ pnm_writepamrow(const struct pam * const pamP,
             writePamPlainRow(pamP, tuplerow);
             break;
         case PAM_TYPE:
-            /* pm_plain_output is impossible here due to assumption stated
-               above about pnm_writepaminit() having checked it.  The
-               pamP->plainformat is meaningless for PAM.
-            */
-            writePamRawRow(pamP, tuplerow, 1);
+            assert(false);
             break;
         default:
             pm_error("Invalid 'format' value %u in pam structure", 
                      pamP->format);
         }
-    } else
-        writePamRawRow(pamP, tuplerow, 1);
+    }
 }