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 <
[email protected]>
+
+ * 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 <
[email protected]>
+
+ * 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 <
[email protected]>
+
+ * 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 <
[email protected]>
+
+ * cgicc/Cgicc.cpp(parseFormInput): Fixed handling of
+ "multipart/form-data" to correctly extract the final item
+ (bug reported by
[email protected])
+
+ 1999-10-01 Stephen F. Booth <
[email protected]>
+
+ * README.WIN: Added a note about MS IIS 4.0
+
1999-09-30 Stephen F. Booth <
[email protected]>
* 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 ----
<
[email protected]>
======================================================================
+ 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}