]> arthur.barton.de Git - netatalk.git/blobdiff - etc/papd/file.h
Initial patch for authenticated printing. Requires LaserWriter 8.5.1 or
[netatalk.git] / etc / papd / file.h
index e6ae71e0676a616a63a526c3367998c1c1ef5897..f33800d2495b319628d167ddf873db2d118e1842 100644 (file)
@@ -6,26 +6,22 @@
 struct papfile {
     int                        pf_state;
     struct state       *pf_xstate;
-    int                        pf_len;
+    int                        pf_bufsize;
+    int                        pf_datalen;
     char               *pf_buf;
-    char               *pf_cur;
-    char               *pf_end;
+    char               *pf_data;
 };
 
 #define PF_BOT         (1<<0)
 #define PF_EOF         (1<<1)
 #define PF_QUERY       (1<<2)
 
-#define APPEND( pf, data, len )        \
-       if ( (pf)->pf_end + (len) > (pf)->pf_buf + (pf)->pf_len ) { \
-               morespace( (pf), (data), (len)); \
-       } else { \
-               bcopy( (data), (pf)->pf_end, (len)); \
-               (pf)->pf_end += (len); \
-       }
-#define PF_BUFSIZ( pf )                ((pf)->pf_end - (pf)->pf_cur)
-#define CONSUME( pf, len )     (((pf)->pf_cur += (len)), \
-       (((pf)->pf_cur >= (pf)->pf_end) && \
-       ((pf)->pf_cur = (pf)->pf_end = (pf)->pf_buf)))
+#define CONSUME( pf, len )  {   (pf)->pf_data += (len); \
+                               (pf)->pf_datalen -= (len); \
+                               if ((pf)->pf_datalen <= 0) { \
+                                   (pf)->pf_data = (pf)->pf_buf; \
+                                   (pf)->pf_datalen = 0; \
+                               } \
+                           }
 
 #define PF_MORESPACE   1024