Index: cgicc/AUTHORS
diff -c cgicc/AUTHORS:1.2 cgicc/AUTHORS:1.3
*** cgicc/AUTHORS:1.2	Fri Jun  4 15:19:14 1999
--- cgicc/AUTHORS	Fri Apr  7 21:44:25 2000
***************
*** 2,4 ****
--- 2,5 ----
  ====================
  
  Stephen F. Booth.  Designed and implemented Cgicc.
+ 
Index: cgicc/ChangeLog
diff -c cgicc/ChangeLog:1.44 cgicc/ChangeLog:1.50
*** cgicc/ChangeLog:1.44	Thu Sep 30 11:18:53 1999
--- cgicc/ChangeLog	Mon Apr 10 18:39:24 2000
***************
*** 1,3 ****
--- 1,35 ----
+ 2000-04-10  Stephen F. Booth  <sbooth@gnu.org>
+ 
+ 	* Makefile.am: Added new dist-bzip2 target
+ 	* support/cgicc.spec.in: Fix typo
+ 	* example/Makefile.in: Use -rpath style as default
+ 	* example/README: Update for Makefile changes
+ 
+ 2000-04-07  Stephen F. Booth  <sbooth@gnu.org>
+ 
+ 	* cgicc/CgiEnvironment.cpp(CgiEnvironment): Use binary read mode on 
+ 	Win32 to prevent CR/LF conversion
+ 	* NEWS: Added items on multipart/form-data and Win32 CR/LF bugs
+ 	* configure.in: Updated version to 3.1.2
+ 	* cgicc/Makefile.am: Up libtool version to 2:1:1
+ 	* README.WIN: Removed note about MS IIS 4.0 (unnecessary)
+ 	* support/cgicc.spec.in: New file
+ 
+ 1999-10-05  Stephen F. Booth  <sbooth@gnu.org>
+ 
+ 	* cgicc/CgiDefs.h.in: Include "config.h", not "cgicc/config.h"
+ 	* example/Makefile.in: Fix -rpath opton for Linux
+ 
+ 1999-10-02  Stephen F. Booth  <sbooth@gnu.org>
+ 
+ 	* cgicc/Cgicc.cpp(parseFormInput): Fixed handling of
+  	"multipart/form-data" to correctly extract the final item
+ 	(bug reported by gabe@bignet.com)
+ 
+ 1999-10-01  Stephen F. Booth  <sbooth@gnu.org>
+ 
+ 	* README.WIN: Added a note about MS IIS 4.0
+ 
  1999-09-30  Stephen F. Booth  <sbooth@gnu.org>
  
  	* info/Makefile.am: Added rules to generate HTML (texinfo-4.0)
Index: cgicc/Makefile.am
diff -c cgicc/Makefile.am:1.19 cgicc/Makefile.am:1.21
*** cgicc/Makefile.am:1.19	Mon Aug  9 17:12:53 1999
--- cgicc/Makefile.am	Mon Apr 10 18:39:07 2000
***************
*** 1,6 ****
! ## $Id: Makefile.am,v 1.19 1999/08/10 00:12:53 sbooth Exp $
  
! AUTOMAKE_OPTIONS = check-news dist-zip
  
  if DEMOS
  DEMO = demo
--- 1,6 ----
! ## $Id: Makefile.am,v 1.21 2000/04/11 01:39:07 sbooth Exp $
  
! AUTOMAKE_OPTIONS = check-news dist-zip dist-bzip2
  
  if DEMOS
  DEMO = demo
***************
*** 28,33 ****
--- 28,34 ----
  	cp -p $(srcdir)/support/mdate-sh $(distdir)/support
  	cp -p $(srcdir)/support/missing $(distdir)/support
  	cp -p $(srcdir)/support/mkinstalldirs $(distdir)/support
+ 	cp -p $(srcdir)/support/cgicc.spec.in $(distdir)/support
  	test -d $(distdir)/win || mkdir $(distdir)/win || exit 1
  	cp -p $(srcdir)/win/cgicc.dsw $(distdir)/win
  	cp -p $(srcdir)/win/cgicc.dsp $(distdir)/win
Index: cgicc/NEWS
diff -c cgicc/NEWS:1.15 cgicc/NEWS:1.16
*** cgicc/NEWS:1.15	Thu Sep 30 11:18:20 1999
--- cgicc/NEWS	Fri Apr  7 21:49:28 2000
***************
*** 5,10 ****
--- 5,22 ----
          <bug-cgicc@gnu.org>
  ======================================================================
  
+         Major changes between versions 3.1.1 and 3.1.2
+         ----------------------------------------------
+ 
+ * Fixed bug in multipart/form-data handling that caused the last form element
+   to be ignored
+ 
+ * Fixed Win32 bug that caused indefinite hangs with MS IIS 4.0 (due to CR/LF
+   conversion on read)
+ 
+ * Now distributed in bzip2 and rpm format, in addition to gzipped tar
+ 
+ 
          Major changes between versions 3.1 and 3.1.1
          --------------------------------------------
  
***************
*** 65,67 ****
--- 77,80 ----
    of linking to an external stylesheet.
  
  * Released as part of the GNU project under the GPL.
+ 
Index: cgicc/README
diff -c cgicc/README:1.8 cgicc/README:1.9
*** cgicc/README:1.8	Fri Aug  6 17:26:19 1999
--- cgicc/README	Fri Apr  7 21:47:44 2000
***************
*** 26,28 ****
--- 26,29 ----
  info/      Complete documentation for Cgicc in texinfo format
  demo/      Two demonstration applications using Cgicc
  example/   A skeleton CGI application using Cgicc
+ 
Index: cgicc/README.WIN
diff -c cgicc/README.WIN:1.3 cgicc/README.WIN:1.5
*** cgicc/README.WIN:1.3	Mon Aug 16 16:59:46 1999
--- cgicc/README.WIN	Fri Apr  7 21:48:51 2000
***************
*** 18,21 ****
  exported, since Cgicc does not import the .DEF file.
  These warnings may be safely ignored.
  
- 
--- 18,20 ----
Index: cgicc/THANKS
diff -c cgicc/THANKS:1.3 cgicc/THANKS:1.4
*** cgicc/THANKS:1.3	Mon Aug 16 16:46:28 1999
--- cgicc/THANKS	Fri Apr  7 21:44:25 2000
***************
*** 2,4 ****
--- 2,5 ----
  ==================
  
  Christof Danzl, for his HTML generation classes and feedback.
+ 
Index: cgicc/configure.in
diff -c cgicc/configure.in:1.22 cgicc/configure.in:1.23
*** cgicc/configure.in:1.22	Tue Aug 31 10:38:11 1999
--- cgicc/configure.in	Fri Apr  7 21:43:54 2000
***************
*** 1,11 ****
  dnl -*-m4-*-
! dnl $Id: configure.in,v 1.22 1999/08/31 17:38:11 sbooth Exp $
  
  dnl Process this file with autoconf to produce a configure script.
! AC_REVISION($Revision: 1.22 $)
  AC_INIT(cgicc/Cgicc.cpp)
  AC_CONFIG_AUX_DIR(support)
! AM_INIT_AUTOMAKE(cgicc, 3.1.1)
  AM_CONFIG_HEADER(cgicc/config.h)
  AM_MAINTAINER_MODE
  
--- 1,11 ----
  dnl -*-m4-*-
! dnl $Id: configure.in,v 1.23 2000/04/08 04:43:54 sbooth Exp $
  
  dnl Process this file with autoconf to produce a configure script.
! AC_REVISION($Revision: 1.23 $)
  AC_INIT(cgicc/Cgicc.cpp)
  AC_CONFIG_AUX_DIR(support)
! AM_INIT_AUTOMAKE(cgicc, 3.1.2)
  AM_CONFIG_HEADER(cgicc/config.h)
  AM_MAINTAINER_MODE
  
***************
*** 87,91 ****
  AM_CONDITIONAL(DEMOS, test "$demos" = true)
  
  AC_OUTPUT([Makefile cgicc/Makefile cgicc/CgiDefs.h info/Makefile demo/Makefile 
! 	example/Makefile])
  
--- 87,91 ----
  AM_CONDITIONAL(DEMOS, test "$demos" = true)
  
  AC_OUTPUT([Makefile cgicc/Makefile cgicc/CgiDefs.h info/Makefile demo/Makefile 
! 	example/Makefile support/cgicc.spec])
  
Index: cgicc/cgicc/CgiDefs.h.in
diff -c cgicc/cgicc/CgiDefs.h.in:1.4 cgicc/cgicc/CgiDefs.h.in:1.5
*** cgicc/cgicc/CgiDefs.h.in:1.4	Tue Aug 17 10:16:07 1999
--- cgicc/cgicc/CgiDefs.h.in	Tue Oct  5 09:16:07 1999
***************
*** 1,6 ****
  /* -*-c++-*- */
  /*
!  *  $Id: CgiDefs.h.in,v 1.4 1999/08/17 17:16:07 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
--- 1,6 ----
  /* -*-c++-*- */
  /*
!  *  $Id: CgiDefs.h.in,v 1.5 1999/10/05 16:16:07 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
***************
*** 24,30 ****
  
  // Include information from configure
  #if HAVE_CONFIG_H
! #  include "cgicc/config.h"
  #endif
  
  // Win32-specific setup
--- 24,30 ----
  
  // Include information from configure
  #if HAVE_CONFIG_H
! #  include "config.h"
  #endif
  
  // Win32-specific setup
Index: cgicc/cgicc/CgiEnvironment.cpp
diff -c cgicc/cgicc/CgiEnvironment.cpp:1.1 cgicc/cgicc/CgiEnvironment.cpp:1.2
*** cgicc/cgicc/CgiEnvironment.cpp:1.1	Mon Aug  9 11:25:30 1999
--- cgicc/cgicc/CgiEnvironment.cpp	Fri Apr  7 21:43:19 2000
***************
*** 1,5 ****
  /*
!  *  $Id: CgiEnvironment.cpp,v 1.1 1999/08/09 18:25:30 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
--- 1,5 ----
  /*
!  *  $Id: CgiEnvironment.cpp,v 1.2 2000/04/08 04:43:19 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
***************
*** 27,32 ****
--- 27,37 ----
  #include <stdexcept>
  #include <cstdlib>
  
+ #ifdef WIN32
+ #include <io.h>
+ #include <fctrl.h>
+ #endif
+ 
  #include "cgicc/CgiEnvironment.h"
  
  // ========== Constructor/Destructor
***************
*** 36,41 ****
--- 41,51 ----
    LOGLN("CgiEnvironment::CgiEnvironment")
    
    readEnvironmentVariables();
+ 
+   // On Win32, use binary read to avoid CRLF conversion
+ #ifdef WIN32
+   _setmode(_fileno(stdin), _O_BINARY);
+ #endif
    
    if(stringsAreEqual( getRequestMethod(), "get")) {
      LOGLN("GET method recognized")
Index: cgicc/cgicc/Cgicc.cpp
diff -c cgicc/cgicc/Cgicc.cpp:1.4 cgicc/cgicc/Cgicc.cpp:1.5
*** cgicc/cgicc/Cgicc.cpp:1.4	Thu Sep 30 10:38:19 1999
--- cgicc/cgicc/Cgicc.cpp	Sat Oct  2 12:10:10 1999
***************
*** 1,5 ****
  /*
!  *  $Id: Cgicc.cpp,v 1.4 1999/09/30 17:38:19 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
--- 1,5 ----
  /*
!  *  $Id: Cgicc.cpp,v 1.5 1999/10/02 19:10:10 sbooth Exp $
   *
   *  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
   *
***************
*** 381,386 ****
--- 381,387 ----
      while(true) {
        pos = data.find(sep, oldPos);
  
+       // If sep wasn't found, the rest of the data is an item
        if(pos == STDNS string::npos)
  	break;
  
***************
*** 389,394 ****
--- 390,402 ----
  
        // update position
        oldPos = pos + sepLen;
+     }
+ 
+     // The data is terminated by sep2
+     pos = data.find(sep2, oldPos);
+     // parse the data, if found
+     if(pos != STDNS string::npos) {
+       parseMIME(data.substr(oldPos, pos - oldPos));
      }
    }
    else if(! data.empty()) {
Index: cgicc/cgicc/Makefile.am
diff -c cgicc/cgicc/Makefile.am:1.8 cgicc/cgicc/Makefile.am:1.9
*** cgicc/cgicc/Makefile.am:1.8	Tue Aug 31 10:40:47 1999
--- cgicc/cgicc/Makefile.am	Fri Apr  7 21:46:46 2000
***************
*** 1,4 ****
! ## $Id: Makefile.am,v 1.8 1999/08/31 17:40:47 sbooth Exp $
  
  CLEANFILES = *~
  
--- 1,4 ----
! ## $Id: Makefile.am,v 1.9 2000/04/08 04:46:46 sbooth Exp $
  
  CLEANFILES = *~
  
***************
*** 8,14 ****
  libcgicc_la_SOURCES = CgiEnvironment.cpp CgiUtils.cpp Cgicc.cpp	\
  FormEntry.cpp FormFile.cpp HTMLAttributes.cpp HTMLElements.cpp	\
  HTTPHeaders.cpp MStreamable.cpp
! libcgicc_la_LDFLAGS = -version-info 2:0:1
  
  pkginclude_HEADERS = CgiDefs.h CgiEnvironment.h CgiUtils.h Cgicc.h	\
  FormEntry.h FormFile.h HTMLAttributes.h HTMLClasses.h HTMLElements.h	\
--- 8,14 ----
  libcgicc_la_SOURCES = CgiEnvironment.cpp CgiUtils.cpp Cgicc.cpp	\
  FormEntry.cpp FormFile.cpp HTMLAttributes.cpp HTMLElements.cpp	\
  HTTPHeaders.cpp MStreamable.cpp
! libcgicc_la_LDFLAGS = -version-info 2:1:1
  
  pkginclude_HEADERS = CgiDefs.h CgiEnvironment.h CgiUtils.h Cgicc.h	\
  FormEntry.h FormFile.h HTMLAttributes.h HTMLClasses.h HTMLElements.h	\
Index: cgicc/example/Makefile.in
diff -c cgicc/example/Makefile.in:1.11 cgicc/example/Makefile.in:1.13
*** cgicc/example/Makefile.in:1.11	Tue Aug 10 15:13:17 1999
--- cgicc/example/Makefile.in	Mon Apr 10 18:37:34 2000
***************
*** 1,5 ****
  ##
! ##  $Id: Makefile.in,v 1.11 1999/08/10 22:13:17 sbooth Exp $
  ##
  ##  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
  ##
--- 1,5 ----
  ##
! ##  $Id: Makefile.in,v 1.13 2000/04/11 01:37:34 sbooth Exp $
  ##
  ##  Copyright (C) 1996, 1997, 1998, 1999 Stephen F. Booth
  ##
***************
*** 51,61 ****
  
  INCLUDES= 	-I$(includedir)
  
! ## On Solaris (probably SVR4 systems), use -R
! LD_FLAGS=	@LDFLAGS@ -R$(libdir)
  
! ## On Linux (probably BSD systems), use -rpath
! #LD_FLAGS=	@LDFLAGS@ -rpath$(libdir)
  
  CXXFLAGS= 	@CXXFLAGS@
  CPPFLAGS=	@CPPFLAGS@
--- 51,61 ----
  
  INCLUDES= 	-I$(includedir)
  
! ## On Linux use -rpath
! LD_FLAGS=	@LDFLAGS@ -Wl,-rpath=$(libdir)
  
! ## On Solaris (probably SVR4 systems), use -R
! #LD_FLAGS=	@LDFLAGS@ -R$(libdir)
  
  CXXFLAGS= 	@CXXFLAGS@
  CPPFLAGS=	@CPPFLAGS@
Index: cgicc/example/README
diff -c cgicc/example/README:1.3 cgicc/example/README:1.4
*** cgicc/example/README:1.3	Wed May  5 11:31:28 1999
--- cgicc/example/README	Mon Apr 10 18:37:34 2000
***************
*** 4,10 ****
  This directory contains skeleton code and a supporting Makefile for a
  CGI application using Cgicc, tailored to the installation environment.
  
! If you are using Linux or a BSD-style Unix, you'll need to uncomment
! line 60 in the Makefile, and comment out (using '#') line 57.  This is
  due to the different methods of embedding a runtime search path on
  different flavors of Unix.
--- 4,11 ----
  This directory contains skeleton code and a supporting Makefile for a
  CGI application using Cgicc, tailored to the installation environment.
  
! If you are using Solaris or an SVR4-style Unix, you'll need to uncomment
! line 59 in the Makefile, and comment out (using '#') line 56.  This is
  due to the different methods of embedding a runtime search path on
  different flavors of Unix.
+ 
Index: cgicc/info/version.texi
diff -c cgicc/info/version.texi:1.13 cgicc/info/version.texi:1.14
*** cgicc/info/version.texi:1.13	Thu Sep 30 11:19:25 1999
--- cgicc/info/version.texi	Fri Apr  7 21:47:15 2000
***************
*** 1,3 ****
  @set UPDATED 30 September 1999
! @set EDITION 3.1.1
! @set VERSION 3.1.1
--- 1,3 ----
  @set UPDATED 30 September 1999
! @set EDITION 3.1.2
! @set VERSION 3.1.2
Index: cgicc/support/cgicc.spec.in
diff -c /dev/null cgicc/support/cgicc.spec.in:1.2
*** /dev/null	Mon Apr 10 18:52:48 2000
--- cgicc/support/cgicc.spec.in	Mon Apr 10 18:27:29 2000
***************
*** 0 ****
--- 1,93 ----
+ ## -*-sh-*-
+ ## $Id: cgicc.spec.in,v 1.2 2000/04/11 01:27:29 sbooth Exp $
+ 
+ ## Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ ## This file is free software; the Free Software Foundation
+ ## gives unlimited permission to copy and/or distribute it,
+ ## with or without modifications, as long as this notice is preserved.
+ 
+ ## This program is distributed in the hope that it will be useful,
+ ## but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ ## even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ ## PARTICULAR PURPOSE.
+ 
+ ## Macros defined by autoconf
+ %define name @PACKAGE@
+ %define version @VERSION@
+ 
+ Summary: A C++ class library for developing CGI applications
+ Name: %{name}
+ Version: %{version}
+ Release: 1
+ Copyright: GPL
+ Group: Development/Libraries
+ Source: ftp://ftp.gnu.org:/gnu/software/cgicc/%{name}-%{version}.tar.gz
+ URL: http://www.lmi.net/~sbooth/cgicc/
+ Vendor: Stephen F. Booth
+ 
+ %description
+ GNU Cgicc is an ANSI C++ compliant class library that greatly
+ simplifies the creation of CGI applications for the World Wide
+ Web. Cgicc performs the following functions:
+ 
+  - Parses both GET and POST form data transparently. 
+  - Provides string, integer, floating-point and single- and
+    multiple-choice retrieval methods for form data.
+  - Provides methods for saving and restoring CGI environments to aid
+    in application debugging.
+  - Provides full on-the-fly HTML 4.0 generation capabilities, with support
+    for cookies.
+  - Supports HTTP file upload. 
+ 
+ %prep
+ %setup
+ 
+ %build
+ %configure
+ make
+ 
+ %install
+ make install
+ 
+ #%post
+ #/sbin/ldconfig
+ 
+ %files
+ 
+ ## Documenation
+ #%{_prefix}/doc/%{name}-%{version}/INSTALL 
+ %{_prefix}/doc/%{name}-%{version}/README 
+ %{_prefix}/doc/%{name}-%{version}/AUTHORS
+ %{_prefix}/doc/%{name}-%{version}/COPYING
+ %{_prefix}/doc/%{name}-%{version}/NEWS
+ %{_prefix}/doc/%{name}-%{version}/ChangeLog
+ %{_prefix}/doc/%{name}-%{version}/THANKS
+ 
+ ## Info files
+ %{_prefix}/info/cgicc.info
+ %{_prefix}/info/cgicc.info-1
+ %{_prefix}/info/cgicc.info-2
+ 
+ ## Header files
+ %{_prefix}/include/cgicc/CgiDefs.h
+ %{_prefix}/include/cgicc/CgiEnvironment.h
+ %{_prefix}/include/cgicc/CgiUtils.h
+ %{_prefix}/include/cgicc/Cgicc.h
+ %{_prefix}/include/cgicc/FormEntry.h
+ %{_prefix}/include/cgicc/FormFile.h
+ %{_prefix}/include/cgicc/HTMLAttributes.h
+ %{_prefix}/include/cgicc/HTMLClasses.h
+ %{_prefix}/include/cgicc/HTMLElements.h
+ %{_prefix}/include/cgicc/HTMLGeneric.h
+ %{_prefix}/include/cgicc/HTTPHeaders.h
+ %{_prefix}/include/cgicc/MStreamable.h
+ 
+ ## Library files
+ %{_prefix}/lib/libcgicc.a
+ %{_prefix}/lib/libcgicc.la
+ %{_prefix}/lib/libcgicc.so
+ %{_prefix}/lib/libcgicc.so.1
+ %{_prefix}/lib/libcgicc.so.1.1.1
+ 
+ %clean
+ rm -rf $RPM_BUILD_DIR/%{name}-%{version}