/*
 * $Id$
 */

/* Use this format for the entry headers:
   YYYY-MM-DD HH:MM UTC[-|+]hhmm Your Full Name <your_email@address>
   For example:
   2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/

2008-06-27 17:13 UTC+0100 Miguel Angel Marchuet <miguelangel@marchuet.net>
  * client.prg
    + Added methods setget to interrogate buffer size send/recive
         METHOD InetRcvBufSize( SocketCon, nSizeBuff )
         METHOD InetSndBufSize( SocketCon, nSizeBuff )
    + Added data members to assign default buffer sizes
         DATA nDefaultRcvBuffSize
         DATA nDefaultSndBuffSize
  * ftpcln.prg
    + Asigned default buffer size to 64kb only for FTP transfer, previous to open sockets
         ::nDefaultSndBuffSize := 65536
         ::nDefaultRcvBuffSize := 65536


2007-05-20 01:00 UTC+0100 Hannes Ziegler <hz@knowleXbase.com>
    * source\tip\thtml.prg

      Changed code to avoid errors with VC8
      --> error C2440: 'initializing' : cannot convert from 'void *' to 'char *'
      --> error C3861: 'tolower': identifier not found


2007-05-19 00:15 UTC+0100 Hannes Ziegler <hz@knowleXbase.com>
    * source\tip\thtml.prg

      Changed code to avoid warnings
      -> Warning W0001  Ambiguous reference
      -> Warning w0027  Meaningless use of expression


2007-05-18 17:45 UTC+0100 Hannes Ziegler <hz@knowleXbase.com>
    * source\tip\thtml.prg

      Changed HTML parser to handle malformed HTML files more graciously.
      Changed Attribute parser to detect hardcoded empty values ("").


2007-05-11 18:30 UTC+0100 Hannes Ziegler <hz@knowleXbase.com>

    + tests\tiptest\loadhtml.prg
    + tests\tiptest\dbtohtml.prg

    + source\tip\thtml.prg
      New HTML classes
      + THtmlDocument()
      + THtmlIterator()
      + THtmlIteratorScan()
      + THtmlIteratorRegEx()
      + THtmlNode()

      New HTML functions
      + AnsiToHtml()
      + HtmlToAnsi()
      + HtmlToOem()
      + OemToHtml()
      + THtmlCleanup()
      + THtmlInit()
      + THtmlIsValid()

    + include\thtml.ch

    * source\tip\ftpcln.prg
      + added method :pwd()

    As a short introduction:

    1) THtmlDocument() objects read/write HTML files and streams

    2) THtmlNode() objects know HTML and raise errors upon illegal HTML code

    3) THtmlNode() objects know the "+" and "-" operator for opening/closing an HTML tag

    4) THtmlNode() objects know the ":" operator for querying/creating a HTML node .OR. attribute
      (sending an unknown message results in a query of lookup tables. If that query is successful,
      a HTML node .OR. the value of an attribute is returned. Otherwise, a runtime error is raised)




2007-04-23 14:30 UTC+0100 Hannes Ziegler <hz@knowleXbase.com>

  * changed TIP classes to comply with OOP rules

    * source\tip\client.prg
        Adapted all :new() method(s) so that tIPClient becomes the
        abstract super class for TIpClientFtp, TIpClientHttp, TIpClientPop and TIpClientSmtp

        + Added Method :INetErrorDesc()
        + Added Method :lastErrorCode()
        + Added Method :lastErrorMessage()

        - Removed method :data() since it calls an undeclared method :getOk()
          :data() is used in TIpClientSmtp

        * fixed bugs resulting in corrupted file downloads

    * source\tip\ftpcln.prg
        Added missing FTP functionalities
        + Added method :rmd()
        + Added method :listFiles()
        + Added method :mput()

        Supports progress bars
        * Changed method :downloadFile() to enable display of download progress
        * Changed method :uploadFile() to enable display of upload progress

    * source\tip\encoder.prg
        + Added FUNCTION TIp_GetEncoder( cModel )

    * source\tip\mail.prg
        Added "high level" methods to easily (de)compose an eMail (with file attachments)

        + Added method :setHeader()
        + Added method :attachFile()
        + Added method :detachFile()
        + Added method :getFileName()
        + Added method :isMultiPart()
        + Added method :getMultiParts()

    * source\tip\popcln.prg
        New methods for easy eMail retrieval
        + Added method :countMail()
        + Added method :retrieveAll()

    * source\tip\smtpcln.prg
        New method to work with TIpMail objects
        + Added method :sendMail()

2005-04-29 12:00 Luiz Rafael Culik <culikr@brturbo.com>
  * client.prg
  * smtpcln.prg
  * ftpcln.prg
  * popcln.prg
  * httpcln.prg
    !added code to create trace of inet functions
    !all inet* functions call is replace by an method of same name
    
2004-06-03 12:40 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclient.prg
    ! Using (now properly) InetReadAll to read data slices.

2004-06-03 12:40 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tiputils.c
    ! TIP_FileMimeType was not closing the file if it had to
      open it.

2004-05-17 17:14 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * Rules.make
    + Added support for HB_MULTI_GT under unix/GNU make
    
  * tiputils.c
    + added functions 
         Tip_FileMimeType( cFileName ) ==> cMimeType
         Tip_FileMimeType( nFileHandle ) ==> cMimeType
         Tip_MimeType( cData ) ==> cMimeType
         
      that are able to detect the type of file (or of a string) depending on 
      extension and file content. If extension is not available (if using a stream
      in Tip_FileMimeType or in Tip_MimeType) only content is used to guess the
      format, and if the file can't be open ( Tip_FileMimeType ) only the extension
      is used.
      
      If the file type can't be determined, "unknown" is returned (which is a valid
      MIME type).
  
  * tests/Makefile
  + tests/Makefile.mimetest
  + tests/mimetest.prg
    + Added a test to find mime type. 

2004-05-12 11:30 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipencoderurl.prg
    ! Default for URL encoding is now "complete", that is encoding also "=", 
       "?" and ":" symbols
    
2004-05-12 11:00 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    ! In post form, the "&" field separator was missing :-/

2004-05-07 14:22 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    + Added automatic authorization basic scheme if new field
      cAuthMode is set to "Basic". The cUserID and cPassword fields
      inside the oUrl object.
    + Added inline method UseBasicAuth() to set cAuthMode to "Basic"
    
2004-04-23 18:28 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * contrib/tip/tipclienthttp.prg
  * contrib/tip/tipencoderurl.prg
    ! Fixed an offbyone error in URLEncode routines

2004-05-04 16:45 UTC+0200 Maurilio Longo <maurilio.longo@libero.it>
  * Rules.make
    + added C_USR=-DTCPV40HDRS to use 16/32 tcp/ip stack on OS/2 (standard on OS/2 until eComStation and v5.x)
  * ticlientpop.prg
    * changed the way a mail gets ::Retreived(), so much faster now.
    + Added Top(), Noop() and UIDL() methods
  * tipmail.prg
    * changed ::fromstring() method where it looks for multipart messages, now it is so fast you simply can't
      follow it anymore, hope it is still correct though :) (I've done several tests and I'm using it in
      an in-house utility, so should be ok)

2004-04-05 15:40 UTC+0200 Lorenzo Fiorini <lorenzo_fiorini/at/tin.it>
  * Makefile
    using standard config/*.cf to support more C compilers
  * tiputils.c
    windows.h included for HB_OS_WIN_32

2004-03-23 11:05 UTC+0100 Maurilio Longo <maurilio.longo@libero.it>
  * Rules.make
    + added support for building under OS/2 with GCC (I hope I did not break anything else)
    + inserted TABs between target and rule to make target since this is requested by gnu-make
  * tiputils.c
    * fixed to work under OS/2 GCC
    contrib/tip can now be built under OS/2 GCC and tests work ok (I could download a web
    page and a mail using tiptest).

2004-02-07 17:05 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * Rules.make
    + Added support for making with GTXVT

  * tipclient.prg
    + Added gauge support in WriteFromFile
      (TODO: add it in ReadFromFile )
      (TODO: detect file sizes in downloads)

  * tipclientftp.prg
    + Fixed transfer startup/shutdown sequence

  * tests/tiptest.prg
    + Added gauge for writing files

2004-01-13 22:10 UTC-0300 Luiz Rafael Culik <culikr@brturbo.com>
  * tipclient.prg
    ! Added support for ESMTP Servers and write method enhaced for multiples
      email address reparated by comma
  + base64x.c
    ! functions for base64 password building
  * makefile.bc
  * makefile.bc
    Makefile
    ! makefile updated


2003-12-10 14:32 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    * GetRequest and PostRequest method have been changed into Get()
      and Post().
    * cQuery field is now optional, if not given it defaults
      to URL path+file+query.
    * Post method now accepts a non optional parameter that may be
      a string or a hash.

  * tipencoderqp.prg
  * tipencoderurl.prg
  * tipencoderbase64.prg
    ! IF string to encode is emptu, return immediately.

2003-12-10 02:51 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    ! fixed a loop and initialization of READ() in PostRequest
      method

  * tipurl.prg
    ! Fixed parsing of file

2003-12-10 02:10 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * contrib/tip/tipurl.prg
    ! Fixed URL parsing, now using latest REGEX

  * contrib/tip/tipclient.prg
    ! Now URL can be created also while opening

  * contrib/tip/tipclienthttp.prg
    + If provided with a Hash, method PostRequest will create an HTTP
      request using key/values pair from the hash, automatically
      translating them into strings AND encoding them.

2003-12-07 15:10 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipencoderbase64.prg
    ! Must used unsigned char instead of char to encode binary
      data.
  * tipencoderqp.prg
    ! The same; also, newline at the end is now added only if
      needed to break a line.

2003-12-06 13:10 UTC-0300 Luiz Rafael Culik <culikr@brturbo.com>
  * tipmail.prg
    !fixed method to string when sending email with attach

2003-12-03 15:15 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tiputils.c
    ! strftime does not work very well on windows, or maybe is the
      BORLANDC strftime failing. Anyhow, I have now implemented native
      windows api + sprintf() to get timezone, so there is no need
      of it under windows.

2003-12-03 01:44 UTC+0100 Francesco Saverio Giudice <info@fsgiudice.com>
  * tiputils.c
    ! added __BORLANDC__ as switch to include <windows.h>

  * makefile.bc
    ! added missing files and modfied the build method
      now it's sufficient to add the target objects without explicity define rules

  * tests/bldtest.bat
    tests/makefile.bc
    * changed to compile more examples than tiptest.prg
      now the syntax is bldtest.bat prg-name-without-extension


2003-12-02 05:08 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipencoder.prg
   ! fixes to initialization (DO CASE brought some trouble,
     changed with an IF)

  + tipmail.prg
    + Added full MIME w/multipart support!

  * tests/Makefile
  + tests/Makefile.testmail
  + tests/testmail.prg
    + Added tests for mail parsing
  + tests/Makefile.testmmail
  + tests/testmmail.prg
    + Added tests for mail composing

2003-12-01 01:23 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipencoderbase64.prg
    * retouches
  + tipencoderqp.prg
    + Added quoted-printable encoder
  + tipencoderurl.prg
    + Added URL encode TIP encoder.
  - tiputils.prg
    - Removed useless IP_UrlEncode, as they are added (in pure
      C) in Tip encoder; TIPEncoderURL_* can be used as static
      methods to access the IP_URLEncode features.
  + tiputils.c
    + Added support for RFC822 timestamp

  * Makefile
  * Rules.make
    + Added capability to compile C files


  * tests/Makefile
  + tests/Makefile.makefile
    + Added support for testtime

  * tests/testtime.prg

  * tests/base64test.prg
    + Added test for quoted printable encoding/decoding.

2003-11-30 15:37 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  + tipencoder.prg
  + tipencoderbase64.prg
    + Added basic encoder system classes. More encoders incoming...

  * tests/Makefile
  + tests/Makefile.base64test
  + tests/base64test.prg
    + tests for encoders.

2003-11-29 04:23 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    + Added field ::cUserAgent to mimic various User-Agents
    + Added automatic cookie setting (and eventually re-sending) in
      field ::hCookie
    + Added custom request header fields in ::hFields
    * NOTE: Probably this name will change.

2003-11-29 00:59 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    + Added fields ::nReplyCode and ::cReplyDesc for easier
      access to HTTP reply codes.

2003-11-22 18:13 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * contrib/tip/tipclient.prg
  * contrib/tip/tipclientftp.prg
    - Removed useless InetDestroy

2003-11-22 18:13 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclienthttp.prg
    + added hHeaders hash field to the class; it stores the returned
      http fields in a hash.

  * tests/Makefile
  + tests/Makefile.httpadvclient
  + tests/httpadvclient.prg
    + Added a test for this feature.

2003-11-20 18:13 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tests/ftpadvclient.prg
    ! Better compliancy for FTP protocol: now CWD is done before dele.

2003-11-20 16:51 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclient.prg
    ! in ReadToFile(), check must be done for logical false on return from
      read.

  * tipclientftp.prg
    ! removed a debug test.

  * tests/Makefile
    + added 'clean' target

2003-11-20 16:27 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclient.prg
    ! fixed a misplaced return on line 192
    ! If the connection is not working, destination file is not created
      in ReadToFile() method.

2003-11-14 13:01 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * Rules.make
    ! fixed libraries

  * tipclientftp
    ! Added DELE command support

  + tests/Makefile
  + tests/Makefile.tiptest
  + tests/Makefile.ftpadvtest
  + tests/ftpadvtest.prg
    + Added test for DELE

2003-11-05 12:10 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * Rules.make
    ! default GT changed to gtcrs
    + added new libraries

  * tipclient.prg
  * tipclientftp.prg
  * tipclientpop.prg
  * tipclientsmtp.prg
    ! Access to function InetCRLF has been changed to TipClient::cCRLF

  * tipclienthttp.prg
    ! Checking for error while receiving HTTP header

2003-09-15 12:30 UTC-0500 Paul Tucker <ptucker@sympatico.ca>
  * makefile.bc
  * makefile.vc
  * make_b32.bat
  * make_vc.bat
    * standardised on file locations, etc.

2003-07-13 15:00 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclientsmtp.prg
    ! Data() was not asking a getok() in its return, causing a
      possible misunderstanding if more than an email is sent.
      Fixed.

2003-06-22 06:42 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipclientftp.prg
    ! Write() implementation of this client was returining a
      logical instead of a number. Fixed

  * tests/tiptest.prg
    * Timeout set to 20 seconds


2003-06-15 02:40 UTC+0200 Giancarlo Niccolai <gian@niccolai.ws>
  * tipurl.prg
    ! Fixed an error in rebuilding address once it is splitted up, when
      referencing http queries ("?" paths)

  * Makefile
  * Rules.make
  * tests/Makefile
    ! Updated linux makefiles to more modern settings


2003-03-23 15:02 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  + encoding/base64.c
  + encoding/base64.h
  + encoding/uuencode.c
  + encoding/uuencode.h
    Added this files for future integration in TIPS.
    (Thanks to LUIZ CULIK)

2003-02-22 22:25 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * makefile.bc
  * make_b32
  + tests/bldtest
  + tests/makefile.bc
    * Updated (now working with bcc)

  * tipclienthttp.prg
    ! Compilation warning removed


2003-02-22 17:45 UTC+0100 Giancarlo Niccolai <gian@niccolai.ws>
  * INITIAL RELEASE
