about summary refs log tree commit diff
path: root/editor/ppmcolormask.c
diff options
context:
space:
mode:
Diffstat (limited to 'editor/ppmcolormask.c')
-rw-r--r--editor/ppmcolormask.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/editor/ppmcolormask.c b/editor/ppmcolormask.c
index 0d7a214c..5ef8d1c1 100644
--- a/editor/ppmcolormask.c
+++ b/editor/ppmcolormask.c
@@ -9,6 +9,7 @@
   Contributed to the public domain by its author.
 =========================================================================*/
 
+#define _XOPEN_SOURCE 500  /* Make sure strdup() is in string.h */
 #define _BSD_SOURCE  /* Make sure strdup() is in <string.h> */
 #include <assert.h>
 #include <string.h>
@@ -59,7 +60,7 @@ parseColorOpt(const char *         const colorOpt,
     colorCount = 0; /* initial value */
     while (!eol && colorCount < ARRAY_SIZE(cmdlineP->maskColor)) {
         const char * token;
-        token = strsepN(&cursor, ",");
+        token = pm_strsep(&cursor, ",");
         if (token) {
             if (strneq(token, "bk:", 3)) {
                 cmdlineP->maskColor[colorCount].matchType = MATCH_BK;
@@ -108,7 +109,7 @@ parseCommandLine(int argc, char ** argv,
     opt.short_allowed = FALSE;  /* We have no short (old-fashioned) options */
     opt.allowNegNum = FALSE;  /* We may have parms that are negative numbers */
 
-    optParseOptions3(&argc, argv, opt, sizeof(opt), 0);
+    pm_optParseOptions3(&argc, argv, opt, sizeof(opt), 0);
         /* Uses and sets argc, argv, and all of *cmdlineP. */
 
     if (colorSpec)
@@ -221,7 +222,12 @@ main(int argc, char *argv[]) {
             int col;
             ppm_readppmrow(ifP, inputRow, cols, maxval, format);
             for (col = 0; col < cols; ++col) {
-                if (colorIsInSet(inputRow[col], maxval, cmdline)) {
+                pixel thisColor;
+                    /* Color of this pixel with same maxval as used in
+                       'cmdline'
+                    */
+                PPM_DEPTH(thisColor, inputRow[col], maxval, PPM_MAXMAXVAL);
+                if (colorIsInSet(thisColor, PPM_MAXMAXVAL, cmdline)) {
                     maskRow[col] = PBM_BLACK;
                     ++numPixelsMasked;
                 } else