implement uflow()
robs [Mon, 26 Nov 2001 18:09:02 +0000 (18:09 +0000)]
include/fcgio.h
libfcgi/fcgio.cpp

index e5cf341..d1c3b1d 100644 (file)
@@ -1,7 +1,7 @@
 //
 // Provides support for FastCGI via C++ iostreams.
 //
-// $Id: fcgio.h,v 1.9 2001/11/21 21:12:04 robs Exp $
+// $Id: fcgio.h,v 1.10 2001/11/26 18:09:02 robs Exp $
 //
 // This work is based on routines written by George Feinberg. They
 // have been mostly re-written and extensively changed by
@@ -71,7 +71,10 @@ public:
     // Note: sync() is protected in some implementations.
     DLLAPI virtual int sync();
 
-    // Fill the get area (if buffered) and return the next character.
+    // Remove and return the current character.
+    DLLAPI virtual int uflow();
+
+    // Fill the get area (if buffered) and return the current character.
     DLLAPI virtual int underflow();
 
     // Use a buffer.  The only reasons that a buffer would be useful is
index 67be670..38efeb2 100644 (file)
@@ -1,5 +1,5 @@
 //
-// $Id: fcgio.cpp,v 1.10 2001/11/21 20:54:24 robs Exp $
+// $Id: fcgio.cpp,v 1.11 2001/11/26 18:09:03 robs Exp $
 //
 // Allows you communicate with FastCGI streams using C++ iostreams
 //
@@ -82,6 +82,15 @@ int fcgi_streambuf::sync()
     return 0;
 }
 
+// uflow() removes the char, underflow() doesn't
+int fcgi_streambuf::uflow() 
+{
+    int rv = underflow();
+    if (this->bufsize) gbump(1);
+    return rv;
+}
+                               
+// Note that the expected behaviour when there is no buffer varies
 int fcgi_streambuf::underflow()
 {
     if (this->bufsize)