- Move code into buff.c by converting #define macros to real functions.
authorMax Okumoto <okumoto@dragonflybsd.org>
Mon, 10 Jan 2005 16:21:14 +0000 (16:21 +0000)
committerMax Okumoto <okumoto@dragonflybsd.org>
Mon, 10 Jan 2005 16:21:14 +0000 (16:21 +0000)
usr.bin/make/buf.c
usr.bin/make/buf.h

index 4315f57..5e13c08 100644 (file)
@@ -38,7 +38,7 @@
  *
  * @(#)buf.c   8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/make/buf.c,v 1.11 1999/09/11 13:08:01 hoek Exp $
- * $DragonFly: src/usr.bin/make/buf.c,v 1.16 2005/01/10 12:36:06 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/buf.c,v 1.17 2005/01/10 16:21:14 okumoto Exp $
  */
 
 /*-
 #define        max(a,b)  ((a) > (b) ? (a) : (b))
 #endif
 
+/* Buf_AddByte adds a single byte to a buffer. */
+void
+Buf_AddByte(Buffer *bp, Byte byte)
+{
+        --bp->left;
+        if (bp->left <= 0) {
+               Buf_OvAddByte(bp, byte);
+       } else {
+               *bp->inPtr = byte;
+               bp->inPtr++;
+               *bp->inPtr = 0;
+       }
+}
+
 /*
  * BufExpand --
  *     Expand the given buffer to hold the given number of additional
  *     bytes.
- *     Makes sure there's room for an extra NULL byte at the end of the
- *     buffer in case it holds a string.
+ *      This function is also used to make sure there's room for
+ *      an extra NULL byte at the end of the buffer in case it holds
+ *     a string.
  */
-#define        BufExpand(bp, nb) do {                                          \
-       if ((bp)->left < (nb) + 1) {                                    \
-               int newSize = (bp)->size + max((nb) + 1, BUF_ADD_INC);  \
-               Byte *newBuf = erealloc((bp)->buffer, newSize);         \
-                                                                       \
-               (bp)->inPtr = newBuf + ((bp)->inPtr - (bp)->buffer);    \
-               (bp)->outPtr = newBuf + ((bp)->outPtr - (bp)->buffer);  \
-               (bp)->buffer = newBuf;                                  \
-               (bp)->size = newSize;                                   \
-               (bp)->left = newSize - ((bp)->inPtr - (bp)->buffer);    \
-       }                                                               \
-    } while (0)
+static inline void
+BufExpand(Buffer *bp, size_t nb)
+{
+       if (bp->left < nb + 1) {
+               int newSize = bp->size + max(nb + 1, BUF_ADD_INC);
+               Byte *newBuf = erealloc(bp->buffer, newSize);
 
-#define        BUF_DEF_SIZE    256     /* Default buffer size */
-#define        BUF_ADD_INC     256     /* Expansion increment when Adding */
-#define        BUF_UNGET_INC   16      /* Expansion increment when Ungetting */
+               bp->inPtr = newBuf + (bp->inPtr - bp->buffer);
+               bp->outPtr = newBuf + (bp->outPtr - bp->buffer);
+               bp->buffer = newBuf;
+               bp->size = newSize;
+               bp->left = newSize - (bp->inPtr - bp->buffer);
+       }
+}
 
 /*-
  *-----------------------------------------------------------------------
index 91d6616..a7b7dfb 100644 (file)
@@ -40,7 +40,7 @@
  *
  *     from: @(#)buf.h 8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/make/buf.h,v 1.9 1999/08/28 01:03:26 peter Exp $
- * $DragonFly: src/usr.bin/make/buf.h,v 1.13 2005/01/10 12:36:06 okumoto Exp $
+ * $DragonFly: src/usr.bin/make/buf.h,v 1.14 2005/01/10 16:21:14 okumoto Exp $
  */
 
 /*-
@@ -63,7 +63,8 @@
  */
 #define        MAKE_BSIZE      256     /* starting size for expandable buffers */
 
-#define        BUF_ERROR 256
+#define        BUF_DEF_SIZE    256     /* Default buffer size */
+#define        BUF_ADD_INC     256     /* Expansion increment when Adding */
 
 typedef char Byte;
 
@@ -75,11 +76,7 @@ typedef struct Buffer {
        Byte    *outPtr;        /* Place to read from */
 } Buffer;
 
-/* Buf_AddByte adds a single byte to a buffer. */
-#define        Buf_AddByte(bp, byte) \
-       (void)(--(bp)->left <= 0 ? Buf_OvAddByte((bp), (byte)), 1 : \
-               (*(bp)->inPtr++ = (byte), *(bp)->inPtr = 0), 1)
-
+void Buf_AddByte(Buffer *, Byte);
 void Buf_OvAddByte(Buffer *, Byte);
 void Buf_AddBytes(Buffer *, size_t, const Byte *);
 Byte *Buf_GetAll(Buffer *, size_t *);