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 + + * 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 + + * 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 + + * 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 + + * 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 + + * README.WIN: Added a note about MS IIS 4.0 + 1999-09-30 Stephen F. Booth * 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 ---- ====================================================================== + 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 #include + #ifdef WIN32 + #include + #include + #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: //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}