about summary refs log tree commit diff
path: root/generator/pamtris
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2018-10-07 20:20:08 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2018-10-07 20:20:08 +0000
commitf79daabd7540e5cc6c6a6cd128b884ea0de54906 (patch)
tree37f6e6b033fddb4ab7ae9023d4603f18229d2e5f /generator/pamtris
parent7fc46bb79f04fd0ba77284382c0ce4a74f34f2a3 (diff)
downloadnetpbm-mirror-f79daabd7540e5cc6c6a6cd128b884ea0de54906.tar.gz
netpbm-mirror-f79daabd7540e5cc6c6a6cd128b884ea0de54906.tar.xz
netpbm-mirror-f79daabd7540e5cc6c6a6cd128b884ea0de54906.zip
Release 10.84.02
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@3405 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'generator/pamtris')
-rw-r--r--generator/pamtris/input.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/generator/pamtris/input.c b/generator/pamtris/input.c
index 166d6db5..4b7ff305 100644
--- a/generator/pamtris/input.c
+++ b/generator/pamtris/input.c
@@ -10,6 +10,7 @@
 #include <ctype.h>
 
 #include "netpbm/mallocvar.h"
+#include "netpbm/pm.h"
 
 #include "limits_pamtris.h"
 #include "framebuffer.h"
@@ -85,9 +86,8 @@ clear_attribs(state_info * const si,
 void
 init_input_processor(input_info * const ii) {
 
-    MALLOCARRAY_NOFAIL(ii->buffer, 128);
-
-    ii->length = 128;
+    ii->buffer = NULL;
+    ii->length = 0;
     ii->number = 1;
 }
 
@@ -95,7 +95,9 @@ init_input_processor(input_info * const ii) {
 
 void
 free_input_processor(input_info * const ii) {
-    free(ii->buffer);
+
+    if (ii->buffer)
+        free(ii->buffer);
 }
 
 
@@ -238,8 +240,14 @@ process_next_command(input_info           * const line,
         state.initialized = true;
     }
 
-    if (getline(&line->buffer, &line->length, stdin) == -1) {
-        return 0;
+    {
+        int eof;
+        size_t lineLen;
+
+        pm_getline(stdin, &line->buffer, &line->length, &eof, &lineLen);
+
+        if (eof)
+            return 0;
     }
 
     remove_comments(line->buffer);