about summary refs log tree commit diff
path: root/editor
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2024-03-09 20:47:10 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2024-03-09 20:47:10 +0000
commit2ae3e9f216271ee6a3a9aa1e10bcb818aed3ee74 (patch)
treebf144b754c90f997bb87e2477bf01875494bd93f /editor
parent6ad95b2b7ac68741f220199b7114f99cdc710875 (diff)
downloadnetpbm-mirror-2ae3e9f216271ee6a3a9aa1e10bcb818aed3ee74.tar.gz
netpbm-mirror-2ae3e9f216271ee6a3a9aa1e10bcb818aed3ee74.tar.xz
netpbm-mirror-2ae3e9f216271ee6a3a9aa1e10bcb818aed3ee74.zip
Fix case where extracted rectangle is entirely above the input image
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4863 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'editor')
-rw-r--r--editor/pamcut.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/editor/pamcut.c b/editor/pamcut.c
index 908d43fb..c495c11b 100644
--- a/editor/pamcut.c
+++ b/editor/pamcut.c
@@ -677,8 +677,8 @@ extractRowsGen(const struct pam * const inpamP,
     int row;
 
     /* Write out top padding */
-    if (0 - toprow > 0)
-        writeBlackRows(outpamP, 0 - toprow);
+    if (toprow < 0)
+        writeBlackRows(outpamP, MIN(0, bottomrow+1) - toprow);
 
     createRowCutter(inpamP, outpamP, leftcol, rightcol, &rowCutterP);
 
@@ -762,12 +762,9 @@ extractRowsPbm(const struct pam * const inpamP,
     makeBlackPbmRow(bitrow, totalWidth);
       /* Initialize row buffer to all black for top and side padding */
 
-    if (toprow < 0) {
-        int row;
-        for (row = 0; row < 0 - toprow; ++row)
-            pbm_writepbmrow_packed(outpamP->file, bitrow,
-                                   outpamP->width, 0);
-    }
+    /* Write out top padding */
+    for (row = toprow; row < MIN(0, bottomrow+1); ++row)
+        pbm_writepbmrow_packed(outpamP->file, bitrow, outpamP->width, 0);
 
     for (row = 0; row < inpamP->height; ++row){
         if (row >= toprow && row <= bottomrow) {