Browse Source

remove hard dependency on libetpan

dignifiedquire 6 years ago
parent
commit
2fc811d992
100 changed files with 0 additions and 40523 deletions
  1. 0 159
      deltachat-ios/libraries/libetpan/.gitignore
  2. 0 7
      deltachat-ios/libraries/libetpan/.travis.yml
  3. 0 0
      deltachat-ios/libraries/libetpan/AUTHORS
  4. 0 31
      deltachat-ios/libraries/libetpan/COPYRIGHT
  5. 0 5202
      deltachat-ios/libraries/libetpan/ChangeLog
  6. 0 56
      deltachat-ios/libraries/libetpan/Makefile.am
  7. 0 284
      deltachat-ios/libraries/libetpan/NEWS
  8. 0 62
      deltachat-ios/libraries/libetpan/README.md
  9. 0 94
      deltachat-ios/libraries/libetpan/autogen.sh
  10. 0 9
      deltachat-ios/libraries/libetpan/build-android/.gitignore
  11. 0 13
      deltachat-ios/libraries/libetpan/build-android/README.md
  12. 0 72
      deltachat-ios/libraries/libetpan/build-android/build.sh
  13. 0 607
      deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build-android/include/config.h
  14. 0 54
      deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build-android/jni/Android.mk
  15. 0 78
      deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build.sh
  16. 0 171
      deltachat-ios/libraries/libetpan/build-android/dependencies/openssl/build.sh
  17. 0 180
      deltachat-ios/libraries/libetpan/build-android/include/config.h
  18. 0 145
      deltachat-ios/libraries/libetpan/build-android/jni/Android.mk
  19. 0 26
      deltachat-ios/libraries/libetpan/build-mac/Info.plist
  20. 0 6
      deltachat-ios/libraries/libetpan/build-mac/README
  21. BIN
      deltachat-ios/libraries/libetpan/build-mac/autogen-result.tar.gz
  22. 0 14
      deltachat-ios/libraries/libetpan/build-mac/dependencies/cyrus-2.1.25-libetpan.patch
  23. BIN
      deltachat-ios/libraries/libetpan/build-mac/dependencies/packages/cyrus-sasl-2.1.25.tar.gz
  24. BIN
      deltachat-ios/libraries/libetpan/build-mac/dependencies/packages/cyrus-sasl-2.1.26.tar.gz
  25. 0 216
      deltachat-ios/libraries/libetpan/build-mac/dependencies/prepare-cyrus-sasl.sh
  26. 0 1765
      deltachat-ios/libraries/libetpan/build-mac/libetpan Tests.xcodeproj/project.pbxproj
  27. 0 2780
      deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/project.pbxproj
  28. 0 71
      deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/libetpan ios.xcscheme
  29. 0 71
      deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/libetpan.xcscheme
  30. 0 71
      deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/static libetpan.xcscheme
  31. 0 10
      deltachat-ios/libraries/libetpan/build-mac/libetpan.xcworkspace/contents.xcworkspacedata
  32. 0 6
      deltachat-ios/libraries/libetpan/build-mac/prepare-ios.sh
  33. 0 73
      deltachat-ios/libraries/libetpan/build-mac/update.sh
  34. 0 35
      deltachat-ios/libraries/libetpan/build-windows/Makefile.am
  35. 0 39
      deltachat-ios/libraries/libetpan/build-windows/README.md
  36. 0 4
      deltachat-ios/libraries/libetpan/build-windows/StdAfx.h
  37. 0 4
      deltachat-ios/libraries/libetpan/build-windows/build_headers.bat
  38. 0 156
      deltachat-ios/libraries/libetpan/build-windows/build_headers.list
  39. 0 29
      deltachat-ios/libraries/libetpan/build-windows/gen-public-headers.sh
  40. 0 106
      deltachat-ios/libraries/libetpan/build-windows/libetpan-config.h
  41. 0 52
      deltachat-ios/libraries/libetpan/build-windows/libetpan.sln
  42. 0 614
      deltachat-ios/libraries/libetpan/build-windows/libetpan/libetpan.vcxproj
  43. 0 1238
      deltachat-ios/libraries/libetpan/build-windows/libetpan/libetpan.vcxproj.filters
  44. 0 53
      deltachat-ios/libraries/libetpan/build-windows/libetpan_version.h
  45. 0 202
      deltachat-ios/libraries/libetpan/build-windows/readmsg/readmsg.vcxproj
  46. 0 34
      deltachat-ios/libraries/libetpan/build-windows/readmsg/readmsg.vcxproj.filters
  47. 0 200
      deltachat-ios/libraries/libetpan/build-windows/smtpsend/smtpsend.vcxproj
  48. 0 28
      deltachat-ios/libraries/libetpan/build-windows/smtpsend/smtpsend.vcxproj.filters
  49. 0 1
      deltachat-ios/libraries/libetpan/build-windows/stdbool.h
  50. 0 801
      deltachat-ios/libraries/libetpan/configure.ac
  51. 0 15097
      deltachat-ios/libraries/libetpan/doc/API.sgml
  52. 0 654
      deltachat-ios/libraries/libetpan/doc/DOCUMENTATION
  53. 0 58
      deltachat-ios/libraries/libetpan/doc/Makefile.am
  54. 0 388
      deltachat-ios/libraries/libetpan/doc/README.sgml
  55. 0 54
      deltachat-ios/libraries/libetpan/doc/depend.dot
  56. 0 39
      deltachat-ios/libraries/libetpan/doc/layer.fig
  57. 0 34
      deltachat-ios/libraries/libetpan/include/Makefile.am
  58. 0 43
      deltachat-ios/libraries/libetpan/libetpan-config.h.in
  59. 0 60
      deltachat-ios/libraries/libetpan/libetpan-config.in
  60. 0 1
      deltachat-ios/libraries/libetpan/m4/README
  61. 0 157
      deltachat-ios/libraries/libetpan/rules.mk
  62. 0 85
      deltachat-ios/libraries/libetpan/src/Makefile.am
  63. 0 34
      deltachat-ios/libraries/libetpan/src/bsd/Makefile.am
  64. 0 149
      deltachat-ios/libraries/libetpan/src/bsd/getopt.c
  65. 0 93
      deltachat-ios/libraries/libetpan/src/bsd/getopt.h
  66. 0 651
      deltachat-ios/libraries/libetpan/src/bsd/getopt_long.c
  67. 0 55
      deltachat-ios/libraries/libetpan/src/data-types/Makefile.am
  68. 0 148
      deltachat-ios/libraries/libetpan/src/data-types/base64.c
  69. 0 65
      deltachat-ios/libraries/libetpan/src/data-types/base64.h
  70. 0 162
      deltachat-ios/libraries/libetpan/src/data-types/carray.c
  71. 0 149
      deltachat-ios/libraries/libetpan/src/data-types/carray.h
  72. 0 348
      deltachat-ios/libraries/libetpan/src/data-types/charconv.c
  73. 0 84
      deltachat-ios/libraries/libetpan/src/data-types/charconv.h
  74. 0 414
      deltachat-ios/libraries/libetpan/src/data-types/chash.c
  75. 0 191
      deltachat-ios/libraries/libetpan/src/data-types/chash.h
  76. 0 273
      deltachat-ios/libraries/libetpan/src/data-types/clist.c
  77. 0 146
      deltachat-ios/libraries/libetpan/src/data-types/clist.h
  78. 0 383
      deltachat-ios/libraries/libetpan/src/data-types/connect.c
  79. 0 62
      deltachat-ios/libraries/libetpan/src/data-types/connect.h
  80. 0 94
      deltachat-ios/libraries/libetpan/src/data-types/hmac-md5.h
  81. 0 56
      deltachat-ios/libraries/libetpan/src/data-types/mail.h
  82. 0 500
      deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db.c
  83. 0 158
      deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db.h
  84. 0 52
      deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db_types.h
  85. 0 378
      deltachat-ios/libraries/libetpan/src/data-types/maillock.c
  86. 0 53
      deltachat-ios/libraries/libetpan/src/data-types/maillock.h
  87. 0 143
      deltachat-ios/libraries/libetpan/src/data-types/mailsasl.c
  88. 0 50
      deltachat-ios/libraries/libetpan/src/data-types/mailsasl.h
  89. 0 18
      deltachat-ios/libraries/libetpan/src/data-types/mailsasl_private.h
  90. 0 286
      deltachat-ios/libraries/libetpan/src/data-types/mailsem.c
  91. 0 59
      deltachat-ios/libraries/libetpan/src/data-types/mailsem.h
  92. 0 422
      deltachat-ios/libraries/libetpan/src/data-types/mailstream.c
  93. 0 135
      deltachat-ios/libraries/libetpan/src/data-types/mailstream.h
  94. 0 216
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel.c
  95. 0 45
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel.h
  96. 0 41
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel_types.h
  97. 0 1271
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_cfstream.c
  98. 0 114
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_cfstream.h
  99. 0 354
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_compress.c
  100. 0 72
      deltachat-ios/libraries/libetpan/src/data-types/mailstream_compress.h

+ 0 - 159
deltachat-ios/libraries/libetpan/.gitignore

@@ -1,159 +0,0 @@
-*.m4
-*.lo
-*.o
-*.la
-.deps
-.libs
-.DS_Store
-*.obj
-*.pdb
-*.idb
-*.suo
-*.ncb
-*.user
-
-project.xcworkspace/
-xcuserdata/
-
-/build-mac/autogen-result.md5
-/build-mac/build
-/build-mac/include
-/build-mac/dependencies/build/
-/build-mac/libsasl-ios/
-/build-mac/update.log
-/config.guess
-/config.h.in
-/config.sub
-/ltmain.sh
-
-/Makefile
-/Makefile.in
-/autom4te.cache/
-/compile
-/config.h
-/config.log
-/config.status
-/configure
-/depcomp
-/doc/Makefile
-/doc/Makefile.in
-/include/Makefile
-/include/Makefile.in
-/include/libetpan/
-/install-sh
-/libetpan-config
-/libetpan-config.h
-/libtool
-/missing
-/src/Makefile
-/src/Makefile.in
-/src/bsd/Makefile
-/src/bsd/Makefile.in
-/src/data-types/Makefile
-/src/data-types/Makefile.in
-/src/driver/Makefile
-/src/driver/Makefile.in
-/src/driver/implementation/Makefile
-/src/driver/implementation/Makefile.in
-/src/driver/implementation/data-message/Makefile
-/src/driver/implementation/data-message/Makefile.in
-/src/driver/implementation/db/Makefile
-/src/driver/implementation/db/Makefile.in
-/src/driver/implementation/feed/Makefile
-/src/driver/implementation/feed/Makefile.in
-/src/driver/implementation/hotmail/Makefile
-/src/driver/implementation/hotmail/Makefile.in
-/src/driver/implementation/imap/Makefile
-/src/driver/implementation/imap/Makefile.in
-/src/driver/implementation/maildir/Makefile
-/src/driver/implementation/maildir/Makefile.in
-/src/driver/implementation/mbox/Makefile
-/src/driver/implementation/mbox/Makefile.in
-/src/driver/implementation/mh/Makefile
-/src/driver/implementation/mh/Makefile.in
-/src/driver/implementation/mime-message/Makefile
-/src/driver/implementation/mime-message/Makefile.in
-/src/driver/implementation/nntp/Makefile
-/src/driver/implementation/nntp/Makefile.in
-/src/driver/implementation/pop3/Makefile
-/src/driver/implementation/pop3/Makefile.in
-/src/driver/interface/Makefile
-/src/driver/interface/Makefile.in
-/src/driver/tools/Makefile
-/src/driver/tools/Makefile.in
-/src/engine/Makefile
-/src/engine/Makefile.in
-/src/low-level/Makefile
-/src/low-level/Makefile.in
-/src/low-level/feed/Makefile
-/src/low-level/feed/Makefile.in
-/src/low-level/imap/Makefile
-/src/low-level/imap/Makefile.in
-/src/low-level/imf/Makefile
-/src/low-level/imf/Makefile.in
-/src/low-level/maildir/Makefile
-/src/low-level/maildir/Makefile.in
-/src/low-level/mbox/Makefile
-/src/low-level/mbox/Makefile.in
-/src/low-level/mh/Makefile
-/src/low-level/mh/Makefile.in
-/src/low-level/mime/Makefile
-/src/low-level/mime/Makefile.in
-/src/low-level/nntp/Makefile
-/src/low-level/nntp/Makefile.in
-/src/low-level/pop3/Makefile
-/src/low-level/pop3/Makefile.in
-/src/low-level/smtp/Makefile
-/src/low-level/smtp/Makefile.in
-/src/main/Makefile
-/src/main/Makefile.in
-/src/main/libetpan_version.h
-/src/versioninfo.rc
-/src/windows/Makefile
-/src/windows/Makefile.in
-/stamp-h1
-/stamp-prepare
-/tests/Makefile
-/tests/Makefile.in
-/tests/compose-msg
-/tests/decrypt
-/tests/fetch-attachment
-/tests/frm
-/tests/frm-simple
-/tests/frm-tree
-/tests/pgp
-/tests/readmsg
-/tests/readmsg-simple
-/tests/readmsg-uid
-/tests/smime
-/tests/smtpsend
-/tests/imap-sample
-/tests/mime-create
-/tests/mime-parse
-/tests/pop-sample
-
-# Windows
-third-party
-/build-windows/_headers_depends
-/build-windows/Makefile
-/build-windows/Makefile.in
-/build-windows/include/libetpan
-/build-windows/libetpan/x64/Debug
-/build-windows/libetpan/x64/Release
-/build-windows/libetpan/Debug
-/build-windows/libetpan/Release
-/build-windows/readmsg/x64/Debug
-/build-windows/readmsg/x64/Release
-/build-windows/readmsg/Debug
-/build-windows/readmsg/Release
-/build-windows/smtpsend/x64/Debug
-/build-windows/smtpsend/x64/Release
-/build-windows/smtpsend/Debug
-/build-windows/smtpsend/Release
-/build-windows/*.sdf
-/build-windows/*.opensdf
-*.vcxproj.user
-/build-windows/Debug
-/build-windows/Release
-/build-windows/x64/Debug
-/build-windows/x64/Release

+ 0 - 7
deltachat-ios/libraries/libetpan/.travis.yml

@@ -1,7 +0,0 @@
-os:
-  - osx
-  - linux
-language: c
-before_script: travis/before-script.sh
-script: travis/script.sh
-osx_image: xcode7

+ 0 - 0
deltachat-ios/libraries/libetpan/AUTHORS


+ 0 - 31
deltachat-ios/libraries/libetpan/COPYRIGHT

@@ -1,31 +0,0 @@
-libEtPan! -- a mail stuff library
-
-Copyright (C) 2001 - 2005 - DINH Viet Hoa
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the libEtPan! project nor the names of its
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-This project contains code from sendmail, NetBSD,
-RSA Data Security MD5 Message-Digest Algorithm, Cyrus IMAP.

+ 0 - 5202
deltachat-ios/libraries/libetpan/ChangeLog

@@ -1,5202 +0,0 @@
-2011-07-13 - libetpan-1.1cvs2 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   enable a private API to workaround for Zarafa server in etPanKit.
-
-2011-07-12 - libetpan-1.1cvs1 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-
-2011-07-12 - libetpan-1.1b - hoa
-
-	* src/low-level/imap/namespace_parser.c
-	   fixed build.
-
-2011-07-12 - libetpan-1.1 - hoa
-
-	* release 1.1
-	   features:
-	   implemented IMAP NAMESPACE,
-	   implemented SMTP SIZE,
-	   support for Content-Location,
-	   improved progress report API for IMAP and SMTP.
-	   
-	   fixes:
-	   workaround for various IMAP servers,
-	   fixes for IMAP parser,
-	   fixed generation of quoted printable,
-	   fixed memory leaks.
-
-2011-07-11 - libetpan-1.0cvs74 - hoa
-
-	* src/low-level/imap/mailimap.c
-	   reduce memory usage.
-
-2011-07-01 - libetpan-1.0cvs73 - hoa
-
-	* src/low-level/imap/mailimap.c
-	   fixed memory leak.
-
-2011-06-29 - libetpan-1.0cvs72 - hoa
-
-	* src/low-level/mime/mailmime_content.c
-	   interpret message/rfc822 as single part if it's encoded in base64 or quoted-printable.
-
-2011-06-25 - libetpan-1.0cvs71 - hoa
-
-	* src/low-level/mime/mailmime_write_generic.c
-	   fixed generation of quoted printable
-
-2011-06-21 - libetpan-1.0cvs70 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	   fixed error handling.
-
-2011-06-21 - libetpan-1.0cvs69 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Lotus Domino, parse empty body and parse broken param value.
-
-2011-06-21 - libetpan-1.0cvs68 - hoa
-
-	* src/low-level/imf/mailimf.c
-	   workaround for MBox mail: twice opening angle bracket generated by MBox mail.
-
-2011-06-20 - libetpan-1.0cvs67 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	   fixed error handling.
-
-2011-06-13 - libetpan-1.0cvs66 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-   	   fixed parser for SIZE extension.
-
-2011-06-04 - libetpan-1.0cvs65 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	   fixed parse error from non-compliant servers.
-
-2011-05-29 - libetpan-1.0cvs64 - hoa
-
-	* src/low-level/imap/mailimap_keywords.c
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for mail.maximedia.nl server.
-
-2011-05-23 - libetpan-1.0cvs63 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Citadel IMAP.
-
-2011-05-21 - libetpan-1.0cvs62 - hoa
-
-    * src/low-level/imap/mailimap_helper.c
-       fixed fetch_rfc822, fetch_rfc822_header
-
-2011-05-19 - libetpan-1.0cvs62 - hoa
-
-	* src/low-level/imap/xlist.h
-	   fixed build for C++.
-
-2011-05-09 - libetpan-1.0cvs61 - hoa
-
-	* src/data-types/clist.h
-	   fixed macro.
-
-2011-05-09 - libetpan-1.0cvs60 - hoa
-
-	* src/low-level/imap/mailimap.c
-	   fixed crash.
-
-2011-05-09 - libetpan-1.0cvs59 - hoa
-
-	* src/low-level/imap/mailimap.c
-	   fixed memory leak when fetch fails.
-
-2011-05-04 - libetpan-1.0cvs58 - hoa
-
-	* src/data-types/mailstream_low.c
-	* src/data-types/mailstream_low.h
-	   fixed API. Consistent ownership.
-
-2011-05-03 - libetpan-1.0cvs57 - hoa
-
-	* src/low-level/imap/namespace_parser.c
-	   fixed clang reports.
-
-2011-05-03 - libetpan-1.0cvs56 - hoa
-
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	* src/low-level/imap/acl_parser.c
-	* src/low-level/mime/mailmime_content.c
-	* src/low-level/mime/mailmime_disposition.c
-	   fixed clang reports.
-
-2011-04-30 - libetpan-1.0cvs55 - hoa
-
-	* src/low-level/mime/mailmime_types_helper.c
-	   don't use Content-Transfer-Encoding for MIME multipart.
-
-2011-04-28 - libetpan-1.0cvs54 - hoa
-
-	* src/low-level/imap/namespace_parser.c
-	   fixed namespace parser failure.
-	   workaround for Courier-IMAP.
-
-2011-04-27 - libetpan-1.0cvs53 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Yandex IMAP servers.
-
-2011-04-19 - libetpan-1.0cvs52 - hoa
-
-	* src/data-types/mailstream_low.[ch]
-	* src/data-types/mailstream_types.h
-	   identifier for stream connection (useful for logging).
-
-2011-04-15 - libetpan-1.0cvs51 - hoa
-
-	* configure.ac
-	   build for debian.
-
-2011-04-15 - libetpan-1.0cvs50 - hoa
-
-	* src/data-types/mailstream_socket.[ch]
-	   fixed function name.
-
-2011-04-15 - libetpan-1.0cvs49 - hoa
-
-	* src/data-types/mailstream_socket.[ch]
-	   can be configure to use read() for debugging purpose.
-
-2011-04-15 - libetpan-1.0cvs48 - hoa
-
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	   fixed error handling of select().
-
-2011-04-11 - libetpan-1.0cvs47 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-   	   workaround for Zoho Mail IMAP implementation.
-
-2011-04-06 - libetpan-1.0cvs46 - hoa
-
-	* src/low-level/imf/mailimf.c
-	   fallback when parsing Content-ID of Message-ID.
-
-2011-04-02 - libetpan-1.0cvs45 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   fixed a crash.
-
-2011-03-30 - libetpan-1.0cvs44 - hoa
-
-	* src/low-level/imap/mailimap_extension.c
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/xlist.[ch]
-	   fixed XLIST implementation.
-
-2011-03-30 - libetpan-1.0cvs43 - hoa
-
-	* src/low-level/imap/Makefile.am
-	* src/low-level/imap/xlist.c
-  	   implemented XLIST (available on Gmail and Zimbra).
-
-2011-03-29 - libetpan-1.0cvs42 - hoa
-
-	* src/data-types/charconv.c
-  	    korean charset workaround.
-
-2011-03-25 - libetpan-1.0cvs41 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Mbox Mail for Mac.
-
-2011-03-25 - libetpan-1.0cvs40 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Exchange (blank lines between response).
-
-2011-03-24 - libetpan-1.0cvs39 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   improved workaround for Exchange servers.
-
-2011-03-24 - libetpan-1.0cvs38 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround for Exchange servers that fails providing conformance in regards to Content-Disposition.
-
-2011-03-16 - libetpan-1.0cvs37 - hoa
-
-	* src/low-level/imap/mailimap.c
-	* src/low-level/imap/mailimap_types.c
-	   fixed memory leaks.
-
-2011-03-15 - libetpan-1.0cvs36 - hoa
-
-	* src/data-types/charconv.c
-	   fixed charset conversation for hebrew (iso-8859-8-i and iso-8859-8-e)
-
-2011-03-14 - libetpan-1.0cvs35 - hoa
-
-	* src/data-types/mmapstring.c
-	   fixed a possible crash.
-
-2011-03-12 - libetpan-1.0cvs34 - hoa
-
-	* src/low-level/imf/mailimf.c
-	   fixed MIME Content-ID and Message-ID parser.
-
-2011-03-11 - libetpan-1.0cvs33 - hoa
-
-	* src/data-types/mailstream_low.c
-	   revert libetpan-1.0cvs32.
-
-2011-03-11 - libetpan-1.0cvs32 - hoa
-
-	* src/data-types/mailstream_low.c
-	   private log identifier is 3.
-
-2011-03-11 - libetpan-1.0cvs31 - hoa
-
-	* src/data-types/mailstream.[ch]
-	* src/data-types/mailstream_low.[ch]
-	* src/data-types/mailstream_types.h
-	* src/low-level/imap/mailimap.c
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/smtp/mailsmtp.c
-	   authentication privacy.
-
-2011-03-10 - libetpan-1.0cvs30 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	   support for broken AUTH advertisement.
-
-2011-03-07 - libetpan-1.0cvs29 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	   handle SMTP error code for authentication error.
-
-2011-03-06 - libetpan-1.0cvs28 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   implemented workaround for exchange IMAP server (for multipart/signed).
-
-2011-03-04 - libetpan-1.0cvs27 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   implemented workaround for exchange IMAP server.
-
-2011-03-03 - libetpan-1.0cvs26 - hoa
-
-	* src/low-level/imap/namespace_types.c
-	   fixed memory leak.
-
-2011-02-28 - libetpan-1.0cvs25 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	* src/low-level/smtp/mailsmtp_types.h
-	   implements SMTP authentication availability.
-
-2011-02-27 - libetpan-1.0cvs24 - hoa
-
-	* src/data-types/connect.c
-	* src/data-types/mailstream_ssl.c
-	   fixed build for win32.
-
-2011-02-27 - libetpan-1.0cvs23 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	   fixed error check for SMTP.
-	
-2011-02-20 - libetpan-1.0cvs22 - hoa
-
-	* src/low-level/imap/namespace_parser.c
-	   fixed build.
-
-2011-02-20 - libetpan-1.0cvs21 - hoa
-
-	* src/low-level/imap/namespace_parser.c
-	   workaround Yahoo IMAP server.
-
-2011-02-20 - libetpan-1.0cvs20 - hoa
-
-	* src/low-level/imap/namespace.c
-	* src/low-level/imap/namespace_parser.c
-	   fixed parser.
-	   fixed crash.
-
-2011-02-19 - libetpan-1.0cvs19 - hoa
-
-	* configure.ac
-	* build-mac/libetpan.xcodeproj/project.pbxproj
-	* src/low-level/imap/Makefile.am
-	* src/low-level/imap/acl.h
-	* src/low-level/imap/annotatemore.h
-	* src/low-level/imap/mailimap.h
-	* src/low-level/imap/mailimap_extension.c
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/quota.[ch]
-	* src/low-level/imap/quota_sender.h
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/imap/namespace.[ch]
-	* src/low-level/imap/namespace_parser.[ch]
-	* src/low-level/imap/namespace_sender.[ch]
-	* src/low-level/imap/namespace_types.[ch]
-	   implemented namespace.
-	   fixed build system.
-	   fixed some warnings.
-
-2011-01-06 - libetpan-1.0cvs18 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_types.[ch]
-	* src/low-level/mime/mailmime.[ch]
-	* src/low-level/mime/mailmime_types.[ch]
-	* src/low-level/mime/mailmime_types_helper.c
-	   support for Content-Location. breaks binary compatibility.
-
-2010-12-15 - libetpan-1.0cvs17 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   fixed memory leak.
-
-2010-12-05 - libetpan-1.0cvs16 - hoa
-
-	* src/data-types/charconv.c
-	   use GBK instead of GB2312 and GB_2312-80
-
-2010-11-30 - libetpan-1.0cvs15 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   fixed IMAP parser
-
-2010-11-28 - libetpan-1.0cvs14 - hoa
-
-	* src/data-types/mailstream_helper.[ch]
-	* src/data-types/mailstream_types.h
-	* src/low-level/imap/mailimap.[ch]
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/mailimap_sender.[ch]
-	* src/low-level/imap/mailimap_types.h
-	* src/low-level/smtp/mailsmtp.[ch]
-	* src/low-level/smtp/mailsmtp_helper.[ch]
-	   improved progress report support for SMTP and IMAP.
-
-2010-11-16 - libetpan-1.0cvs13 - hoa
-
-	* src/low-level/mime/mailmime_decode.c
-	   backport a fix from etPanKit.
-
-2010-11-16 - libetpan-1.0cvs12 - hoa
-
- 	* build-windows/libetpan.sln
-	* build-windows/libetpan/libetpan.vcproj
-	* build-windows/readmsg/readmsg.vcproj
-	* build-windows/smtpsend/smtpsend.vcproj
-	* src/data-types/carray.h
-	* src/data-types/chash.h
-	* src/data-types/mailstream_ssl.c
-	* src/windows/win_etpan.h
-	* tests/option-parser.c
-	   improved port for win32.
-
-2010-11-10 - libetpan-1.0cvs11 - hoa
-
-	* src/low-level/mime/mailmime_decode.c
-	   fixed decode of MIME header.
-
-2010-11-04 - libetpan-1.0cvs10 - hoa
-
-	* src/low-level/mime/mailmime_decode.c
-	   fixed parsing of MIME header encoding of headers.
-
-2010-10-21 - libetpan-1.0cvs9 - hoa
-
-	* src/low-level/imap/idle.c
-	   fixed function name. Thanks Michael Rasmussen.
-
-2010-09-15 - libetpan-1.0cvs8 - hoa
-
-	* src/low-level/imap/mailimap_types_helper.c
-	   fixed search.
-
-2010-09-05 - libetpan-1.0cvs7 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   create an empty list in case of empty multipart.
-
-2010-09-04 - libetpan-1.0cvs6 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	   workaround Gmail IMAP bug: zero bodies in multipart.
-
-2010-09-03 - libetpan-1.0cvs5 - hoa
-
-	* build-windows/libetpan_version.h
-		update version.
-	* src/data-types/mailstream.[ch]
-	* src/data-types/mailstream_low.[ch]
-	* src/low-level/imap/mailimap_parser.c
-		report parse error.
-	* build-mac/update.sh
-		fixed mac update.
-	* src/data-types/connect.c
-		fixed memory leak.
-
-2010-07-27 - libetpan-1.0cvs4 - hoa
-
-	* src/low-level/smtp/mailsmtp_helper.c
-	    fixed size verification for RFC 1870.
-
-2010-07-27 - libetpan-1.0cvs3 - hoa
-
-	* src/low-level/smtp/mailsmtp.[ch]
-	* src/low-level/smtp/mailsmtp_helper.c
-	* src/low-level/smtp/mailsmtp_types.h
-	    implements RFC 1870 (SMTP SIZE).
-
-2010-07-22 - libetpan-1.0cvs2 - hoa
-
-	* src/low-level/imap/mailimap_sender.c
-	* src/low-level/imap/mailimap_types.c
-	    fixed date when appending.
-
-2010-05-30 - libetpan-1.0cvs1 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    IMAP parser issue in case quoted string contains a CRLF.
-
-2010-04-09 - libetpan-1.0 - hoa
-
-	* release 1.0
-
-2010-04-08 - libetpan-0.58cvs27 - hoa
-
-	* configure.ac
-	    Fixed --enable-debug flag in configure script.
-	    Support of Berkeley DB 4.8.
-	    Thanks to Tim Harder.
-
-2010-04-05 - libetpan-0.58cvs26 - hoa
-
-	* build-mac/update.sh
-	    fixed script.
-
-2010-04-05 - libetpan-0.58cvs25 - hoa
-
-	* src/engine/mailprivacy_tools.c
-	    fixed integration of patch (libetpan-0.58cvs22).
-	* src/low-level/imap/idle.c
-	    fixed error code.
-
-2010-04-05 - libetpan-0.58cvs24 - hoa
-
-	* src/low-level/imap/mailimap_sender.c
-	    fixed OR condition in IMAP SEARCH command.
-
-2010-04-05 - libetpan-0.58cvs23 - hoa
-
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_tools.c
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/imap/mailimap.c
-	* src/low-level/pop3/mailpop3.c
-	* tests/readmsg-simple.c
-	* tests/readmsg-uid.c
-	    fixed some other warnings.
-
-2010-04-05 - libetpan-0.58cvs22 - hoa
-
-	* src/data-types/maillock.c
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_low.c
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/engine/mailprivacy.c
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/feed/newsfeed.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/smtp/mailsmtp.c
-	* tests/decrypt.c
-	* tests/readmsg-simple.c
-	* tests/readmsg-uid.c
-	* tests/smime.c
-	    fixed some warnings. Thanks to Didier Barvaux.
-
-2010-04-05 - libetpan-0.58cvs21 - hoa
-
-	* src/driver/implementation/imap/imapdriver.c
-	    fixed memory leak (2941557). Thanks to Juha Paananen.
-	
-	* src/low-level/imap/mailimap_types_helper.c
-	    fixed IMAP search (2941559). Thanks to Juha Paananen.
-
-2010-04-05 - libetpan-0.58cvs20 - hoa
-
-	* configure.ac
-	* src/driver/interface/mailstorage_tools.c
-	* tests/smtpsend.c
-	    improved support of Solaris 2.8 (2786623). Thanks to Thomas Wiegner.
-
-2010-04-05 - libetpan-0.58cvs19 - hoa
-
-	* build-mac/update.sh
-	    import of OpenSSL (prepare build for iPhone including OpenSSL)
-
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_tools.c
-	* src/low-level/pop3/mailpop3.[ch]
-	    better error checking (2888850). Thanks to Alexander Shlemin.
-		API change.
-
-2010-03-21 - libetpan-0.58cvs18 - hoa
-
-	* src/data-types/mailstream.h
-	* src/data-types/mailstream_low.c
-	    log protocol by stream
-
-2010-01-17 - libetpan-0.58cvs17 - hoa
-
-	* build-mac/update.sh
-	* build-mac/libetpan.xcodeproj/project.pbxproj
-	    build mac with quota
-
-2010-01-14 - libetpan-0.58cvs16 - hoa
-
-	* src/low-level/imap/Makefile.am
-	    build with quota.
-
-2010-01-04 - libetpan-0.58cvs15 - hoa
-
-	* src/low-level/imap/mailimap_extension.c
-	    fixed error code in extension parser (2918352). Thanks to Chris Head.
-
-2010-01-04 - libetpan-0.58cvs14 - hoa
-
-	* src/low-level/imap/acl_parser.c
-	* src/low-level/imap/annotatemore_parser.c
-	    fixed malloc allocation check (2918372). Thanks to Chris Head.
-
-2010-01-03 - libetpan-0.58cvs13 - hoa
-
-	* src/low-level/imap/mailimap_extension.c
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/quota.[ch]				** NEW FILE **
-	* src/low-level/imap/quota_parser.[ch]		** NEW FILE **
-	* src/low-level/imap/quota_sender.[ch]		** NEW FILE **
-	* src/low-level/imap/quota_types.[ch]		** NEW FILE **
-	    added QUOTA support (RFC 2087, patch 2918500). Thanks to Chris Head.
-
-2009-12-19 - libetpan-0.58cvs12 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-		better handling for errors.
-
-2009-12-19 - libetpan-0.58cvs11 - hoa
-
-	* src/low-level/imf/mailimf_types_helper.c
-		fixed crash on Win32 (2892730).
-
-2009-12-19 - libetpan-0.58cvs10 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/low-level/imap/mailimap_socket.c
-	* src/low-level/imap/mailimap_ssl.c
-	* src/low-level/nntp/newsnntp_socket.c
-	* src/low-level/nntp/newsnntp_ssl.c
-	* src/low-level/pop3/mailpop3_socket.c
-	* src/low-level/pop3/mailpop3_ssl.c
-	* src/low-level/smtp/mailsmtp_socket.c
-		fixed socket use on Win32 (2897095).
-
-2009-12-19 - libetpan-0.58cvs9 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-		fixed crash (Thanks Gabor for discovering the bug).
-
-2009-12-19 - libetpan-0.58cvs8 - hoa
-
-	* mailimap_parser.[ch]
-		fixed build.
-		workaround in parser for imap.gmx.com (Thanks Matt Ronge for reproducible case).
-
-2009-11-05 - libetpan-0.58cvs7 - hoa
-
-	* src/low-level/imap/idle.c
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_parser.h
-		fixed IMAP IDLE parser (made public API for the IMAP parser).
-
-2009-09-07 - libetpan-0.58cvs6 - hoa
-
-	* build-mac/Info.plist
-	* build-mac/update.sh
-	* build-mac/libetpan.xcodeproj/project.pbxproj
-	    added build for Mac OS X (within Xcode).
-
-2009-09-07 - libetpan-0.58cvs5 - hoa
-
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/feed/parser.c
-	* src/low-level/imap/mailimap_types.c
-	    fixed errors detected by clang static analyzer.
-
-2009-09-06 - libetpan-0.58cvs4 - hoa
-
-	* src/low-level/mime/mailmime_disposition.c
-	    fixed warning.
-
-2009-08-29 - libetpan-0.58cvs3 - hoa
-
-    * src/driver/implementation/imap/imapdriver_tools.c
-    * src/low-level/imf/mailimf_types_helper.c
-        fixed some crash (and workaround of MailCore).
-        Thanks to Gabor Cselle.
-
-2009-08-29 - libetpan-0.58cvs2 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	    fixed memory leaks.
-	    Thanks to Pawel Pekala.
-
-2009-07-23 - libetpan-0.58cvs1 - hoa
-
-	* configure.ac
-	    fixed build for Mac OS X
-	
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fix a crash.
-	    Thanks to Gabor Cselle, Stefano Barbato
-	
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/driver/tools/imfcache.c
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_types.c
-	    fix memory leaks.
-	    bugfixes.
-	    Thanks to Pawel Pekala.
-
-2009-06-16 - libetpan-0.58 - hoa
-
-	* release 0.58
-	   Improvements on SSL implementation.
-
-2009-06-16 - libetpan-0.57cvs4 - hoa
-
-	* configure.ac
-	   prepare for 0.58
-
-2009-06-12 - libetpan-0.57cvs3 - colin
-
-	* src/data-types/mailstream_ssl.c
-	   Gnutls: Better fix (API-compatible with libgnutls13)
-
-2009-06-12 - libetpan-0.57cvs2 - colin
-
-	* src/data-types/mailstream_ssl.c
-	   Gnutls: Use compatibility mode to avoid being unable to 
-	   connect to some servers. (see Claws Mail's bug #1930)
-	* configure.ac
-	   Fix error with automake 1.10.2 
-
-
-2008-11-21 - libetpan-0.57cvs1 - colin
-
-	* src/data-types/mailstream_ssl.c
-	   Rehandshake if server asks to.
-
-2008-10-08 - libetpan-0.57 - hoa
-
-	* release 0.57
-	    - fixed an issue with GnuTLS.
-
-2008-10-05 - libetpan-0.56cvs2 - colin
-
-	* src/data-types/mailstream_ssl.c
-	   fixed return value when setting GnuTLS client cert.
-
-2008-09-14 - libetpan-0.56cvs1 - hoa
-
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	    fixed a bug with cached IMAP bodystructure.
-
-2008-09-02 - libetpan-0.56 - hoa
-
-	* release 0.56
-	    - fixed a crash
-
-2008-09-01 - libetpan-0.55cvs2 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Check ssl_context to see if it's NULL (fixes crash)
-
-2008-08-30 - libetpan-0.55cvs1 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Fix NULL frees introduced in 0.54cvs15
-	    (Made SSL connections with no callback for client
-	     certificates crash)
-
-2008-08-26 - libetpan-0.55 - hoa
-
-	* release 0.55
-	    - better support for client certificate.
-	    - bug fixes
-
-2008-08-26 - libetpan-0.54cvs17 - hoa
-
-	* configure.ac
-	    support for db 4.7
-
-2008-07-04 - libetpan-0.54cvs16 - hoa
-	
-	* src/data-types/mailstream_ssl.c
-	    fixed wait_read() in ssl stream implementation.
-
-2008-07-03 - libetpan-0.54cvs15 - colin
-	
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_ssl.h
-	    Add API to be able to set a client X509 certificate
-	    and private key:
-	    mailstream_ssl_set_client_certificate_data()
-	    mailstream_ssl_set_client_private_key_data()
-	    To be called from the callback set in 
-	    mailstream_ssl_open_with_callback() for example.
-
-2008-06-16 - libetpan-0.54cvs14 - hoa
-	
-	* src/low-level/imf/mailimf_types_helper.c
-	    Fixed timezone calculation.
-
-2008-06-15 - libetpan-0.54cvs13 - hoa
-	
-	* src/low-level/mime/mailmime_write_generic.c
-	    Fixed MIME generator, MIME headers of message/rfc822
-	    are no more moved to sub-part, except "MIME-Version".
-	    Thanks to James Smith.
-
-2008-05-27 - libetpan-0.54cvs12 - hoa
-	
-	* src/low-level/imf/mailimf.h
-	    (re-)fixed 1909672: Date fields parsed as optional field on 64 bit OS.
-	    mailimf_token_case_insensitive_parse() is fixed.
-	    Thanks to James Smith.
-
-	* src/low-level/imap/mailimap_parser.c
-	    workarounded bug on lavabit.com server.
-
-2008-05-26 - libetpan-0.54cvs11 - hoa
-
-	* configure.ac
-	* tests/option-parser.c
-	    fixed build of tests where getopt_long is not present.
-
-2008-05-26 - libetpan-0.54cvs10 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    workarounded bug on quoted string output on
-	    lavabit.com IMAP server.
-
-2008-05-23 - libetpan-0.54cvs9 - hoa
-
-	* libetpan-config.h.in
-	    fixed mingw32 build.
-	    Thanks to Marcus Brinkmann.
-
-2008-05-23 - libetpan-0.54cvs8 - hoa
-
-	* src/low-level/imf/mailimf.c
-	    Fixed crash in parser.
-	    Thanks to James Smith.
-
-2008-05-22 - libetpan-0.54cvs7 - hoa
-
-	* build-windows/libetpan_version.h
-	    updated version of win32 build
-	
-	* src/low-level/imf/mailimf.h
-	    fixed 1909672: Date fields parsed as optional field on 64 bit OS.
-	    mailimf_token_case_insensitive_parse() is fixed.
-	    Thanks to James Smith.
-
-2008-04-19 - libetpan-0.54cvs6 - hoa
-
-	* rules.mk
-	    fixed 'ln' usage.
-	
-	* src/driver/interface/maildriver_types.h
-	    fixed headers documentation.
-
-2008-04-11 - libetpan-0.54cvs5 - hoa
-
-	* src/driver/implementation/feed/feeddriver.c
-	    fixed charset handling in RSS driver.
-	
-2008-04-11 - libetpan-0.54cvs4 - hoa
-
-	* src/low-level/feed/parser.c
-	    fixed charset handling in RSS parser.
-
-2008-03-16 - libetpan-0.54cvs3 - colin
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fixed collection of IMAP message envelope.
-
-2008-02-28 - libetpan-0.54cvs2 - colin
-
-	* src/data-types/mmapstring.c
-	* src/data-types/mmapstring.h
-	    Export mmap_string_set_tmpdir
-	    Export mmap_string_set_ceil
-	    Fix mmap_string_set_tmpdir prototype
-
-2008-02-21 - libetpan-0.54cvs1 - hoa
-
-	* tests/option-parser.c
-	    fixed reference to indx.
-
-2008-02-20 - libetpan-0.54 - hoa
-
-	* release 0.54 - Synergy bis
-	   - fixed regression on IMAP APPEND
-	   - cleanup
-	   - version fixes
-
-2008-02-20 - libetpan-0.53cvs6 - hoa
-	
-	* configure.ac
-	    prepare for 0.54
-
-2008-02-20 - libetpan-0.53cvs5 - hoa
-
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/tools/mailthread.c
-	* src/low-level/imap/mailimap.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mbox/mailmbox_types.c
-	* tests/readmsg.c
-	    additional cleanup.
-
-2008-02-20 - libetpan-0.53cvs4 - hoa
-
-	* src/data-types/Makefile.am
-	* src/data-types/carray.[ch]
-	* src/data-types/cinthash.[ch]    *** REMOVED FILES ***
-	* src/data-types/clist.[ch]
-	* src/data-types/mailstream_helper.c
-	* src/data-types/md5.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/driver/implementation/imap/imapdriver_tools_private.h
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_tools.[ch]
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_tools.[ch]
-	* src/driver/implementation/nntp/nntpdriver_tools.[ch]
-	* src/driver/implementation/pop3/pop3driver_tools.[ch]
-	* src/driver/interface/maildriver_tools.c
-	* src/driver/interface/mailmessage.h
-	* src/driver/interface/mailstorage.c
-	* src/driver/tools/generic_cache.[ch]
-	* src/driver/tools/imfcache.[ch]
-	* src/low-level/imap/acl_parser.[ch]
-	* src/low-level/imap/annotatemore_parser.[ch]
-	* src/low-level/imap/idle.c
-	* src/low-level/imap/mailimap.c
-	* src/low-level/imap/mailimap_extension.[ch]
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_keywords.[ch]
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/mailimap_types_helper.[ch]
-	* src/low-level/imap/uidplus_parser.[ch]
-	* src/low-level/imf/mailimf.[ch]
-	* src/low-level/mbox/mailmbox_parse.[ch]
-	* src/low-level/mbox/mailmbox_types.c
-	* src/low-level/mh/mailmh.[ch]
-	* src/low-level/mime/mailmime.[ch]
-	* src/low-level/mime/mailmime_content.[ch]
-	* src/low-level/mime/mailmime_decode.[ch]
-	* src/low-level/mime/mailmime_disposition.[ch]
-	* src/low-level/nntp/newsnntp.[ch]
-	* src/low-level/pop3/mailpop3.[ch]
-	* src/low-level/pop3/mailpop3_helper.[ch]
-	* tests/option-parser.c
-	* tests/smtpsend.c
-	    cleanup. Thanks to Daniel Richard G.
-	    removed deprecated cinthash.
-
-2008-02-17 - libetpan-0.53cvs3 - hoa
-
-	* configure.ac
-	* libetpan-config.h.in
-	* build-windows/libetpan_version.h
-	* src/data-types/connect.c
-	* src/data-types/maillock.c
-	* src/data-types/mailstream.c
-	* src/data-types/mailstream_ssl.c
-	* src/driver/implementation/data-message/data_message_driver.c
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/db/dbdriver_message.c
-	* src/driver/implementation/db/dbstorage.c
-	* src/driver/implementation/feed/feeddriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_message.c
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/maildir/maildirstorage.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mbox/mboxstorage.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_message.c
-	* src/driver/implementation/mh/mhstorage.c
-	* src/driver/implementation/mime-message/mime_message_driver.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached_message.c
-	* src/driver/implementation/nntp/nntpdriver_message.c
-	* src/driver/implementation/nntp/nntpstorage.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_cached_message.c
-	* src/driver/implementation/pop3/pop3driver_message.c
-	* src/driver/implementation/pop3/pop3driver_tools.c
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	* src/engine/mailprivacy_tools.c
-	* src/engine/mailprivacy_tools_private.h
-	* src/low-level/feed/date.c
-	* src/low-level/feed/newsfeed.c
-	* src/low-level/feed/parser.c
-	* src/low-level/imap/acl.c
-	* src/low-level/imap/acl_types.h
-	* src/low-level/imap/annotatemore.c
-	* src/low-level/imap/annotatemore_types.c
-	* src/low-level/imap/annotatemore_types.h
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_print.c
-	* src/low-level/imap/uidplus.c
-	* src/low-level/imap/uidplus_types.h
-	* src/low-level/imf/mailimf.c
-	* src/low-level/imf/mailimf_types_helper.c
-	* src/low-level/maildir/maildir.c
-	* src/low-level/mbox/mailmbox.c
-	* tests/option-parser.h
-	* tests/readmsg-common.h
-	* tests/smtpsend.c
-	    cleanup. Thanks to Daniel Richard G.
-
-2008-02-17 - libetpan-0.53cvs2 - hoa
-
-	* src/low-level/imap/idle.[ch]
-	    removing mailimap_check_idle() API.
-	    This API was incorrectly implemented and not useful.
-
-2008-02-17 - libetpan-0.53cvs1 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    fixed parse issue when appending message.
-	    (continue-req rule)
-
-2008-02-10 - libetpan-0.53 - hoa
-
-	* release 0.53 - Synergy
-	   - IPv6 issue
-	   - gmail issues
-	   - mingw32 build
-
-2008-02-10 - libetpan-0.52cvs37 - hoa
-
-	* src/data-types/mailstream_socket.c
-	* src/low-level/imap/mailimap_parser.c
-	    workaround for gmail IMAP bug.
-
-2008-01-29 - libetpan-0.52cvs36 - colin
-
-	* src/data-types/mailstream.c
-	    Make sure to fail on any negative return value from 
-	    mailstream_low_{write,read}, not only on -1.
-
-2008-01-25 - libetpan-0.52cvs35 - colin
-
-	* src/data-types/connect.c
-	    Fix connection failures when client and server are ipv4 
-	    and ipv6 capable, but no ip6 route exists to the server.
-
-2008-01-20 - libetpan-0.52cvs34 - hoa
-
-	* src/windows/win_init.cpp
-	    fix build for mingw32.
-	    Thanks to Marcus Brinkmann.
-
-2008-01-14 - libetpan-0.52cvs33 - hoa
-
-	* src/low-level/mime/mailmime_types_helper.c
-	* src/low-level/mime/mailmime_types_helper.h
-	* src/low-level/mime/mailmime_write_generic.c
-	    fixed cache of MIME parts when no boundary is specified.
-
-2008-01-01 - libetpan-0.52cvs32 - hoa
-
-	* rules.mk
-	    Fixed build on Solaris.
-
-2007-12-15 - libetpan-0.52cvs31 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_ssl_private.h  ** NEW FILE **
-	* src/data-types/mmapstring.c
-	* src/data-types/mmapstring_private.h      ** NEW FILE **
-	* src/windows/Makefile.am
-	* src/windows/win_init.cpp                 ** NEW FILE **
-	* src/windows/wsocket.cpp ** REMOVED FILE **
-	    Fixed lock initialization on Windows.
-	    Thanks to Sebastien Marinier and Marcus Brinkmann.
-	
-	* tests/readmsg.c
-	    Fixed build on Windows.
-
-2007-12-14 - libetpan-0.52cvs30 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Allow "too short" certificates (512 bits < len < 1024bits)
-
-2007-12-13 - libetpan-0.52cvs29 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    progress function is now called properly on IMAP.
-	
-	* tests/decrypt.c
-	* tests/fetch-attachment.c
-	* tests/pgp.c
-	* tests/smime.c
-	    Fixed build on Mac OS X.
-
-2007-12-10 - libetpan-0.52cvs28 - Marcus Brinkmann
-
-	* configure.ac
-           Do not define LIBETPAN_DLL on mingw32 targets for now.
-	
-	* libetpan-config.h.in
-           Define MMAP_UNAVAILABLE on all windows targets.
-	
-	* src/driver/implementation/data-message/data_message_driver.h
-	* src/driver/tools/mailthread.h
-	* src/engine/mailprivacy.h
-	* src/engine/mailprivacy_tools.h
-	* src/low-level/imf/mailimf_types_helper.h
-	* src/low-level/imf/mailimf_write_generic.h
-	   Add missing LIBETPAN_EXPORT declarations.
-	
-	* tests/decrypt.c
-	* tests/pgp.c
-	* tests/smime.c
-           Use read instead mmap to get file content.
-
-2007-11-25 - libetpan-0.52cvs27 - hoa
-
-	* src/low-level/mime/mailmime_content.c
-	* src/low-level/mime/mailmime_write_generic.c
-	    fixed memory leak.
-	    Thanks to astavtsev.
-
-2007-11-15 - libetpan-0.52cvs26 - hoa
-
-	* src/low-level/mime/mailmime_disposition.c
-	    fixed MIME parser for Content-Disposition.
-
-2007-11-15 - libetpan-0.52cvs25 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fixed uninitialized variable.
-
-2007-11-14 - libetpan-0.52cvs24 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fixed IMAP driver.
-	
-	* m4/README      *** ADDED FILE ***
-	* m4/libtool.m4  *** REMOVED FILE ***
-	    fixed build.
-
-2007-11-10 - libetpan-0.52cvs23 - hoa
-
-	* src/low-level/mime/mailmime_write_generic.c
-	    fixed quoted-printable when the given text did not finish with LF.
-
-2007-11-08 - libetpan-0.52cvs22 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    fixed IMAP parser.
-
-2007-11-07 - libetpan-0.52cvs21 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    fixed IMAP parser.
-
-2007-11-03 - libetpan-0.52cvs20 - hoa
-
-	* src/low-level/mime/mailmime_content.c
-	    fixed MIME parser. Thanks to woolshum for reporting.
-
-2007-11-01 - libetpan-0.52cvs19 - hoa
-
-	* Makefile.am
-	    fixed build.
-
-2007-10-30 - libetpan-0.52cvs18 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    support for gmail broken IMAP server.
-
-2007-10-30 - libetpan-0.52cvs18 - Marcus Brinkmann
-
-       * configure.ac
-           Substitute API_CURRENT, API_COMPATIBILITY, API_REVISION.
-           Add new variables BUILD_REVISION, BUILD_TIMESTAMP,
-           BUILD_FILEVERSION and substitute them.  Call
-           AC_LIBTOOL_WIN32_DLL and AC_LIBTOOL_RC.  Add config file
-           src/versioninfo.rc.
-       * src/dummy.cpp          *** NEW FILE ***
-       * src/versioninfo.rc.in  *** NEW FILE ***
-       * src/Makefile.am
-           (SUFFIXES, .rc.lo): New rules.
-           (EXTRA_DIST, LTRCCOMPILE, libetpan_res, libetpan_deps,
-           no_undefined, arch_sources): New variables.
-	   (libetpan@LIBSUFFIX@_la_SOURCES): Add $(arch_sources).
-	   (libetpan@LIBSUFFIX@_la_LDFLAGS): Add $(no_undefined).
-	   (libetpan@LIBSUFFIX@_la_LIBADD): Add $(libetpan_res).
-       * tests/Makefile.am
-           (CFLAGS): Add -ULIBETPAN_DLL.
-       * src/engine/mailprivacy.h
-       * src/engine/mailprivacy_gnupg.h
-       * src/engine/mailprivacy_smime.h
-           Add export declarations.
-       * src/engine/Makefile.am
-           (libengine_la_SOURCES): Add mailprivacy_tools_private.h.
-
-2007-10-30 - libetpan-0.52cvs17 - hoa
-
-	* configure.ac
-	    fixed configure.ac
-
-	* src/low-level/imf/mailimf_write.c     *** REMOVED FILE ***
-	* src/low-level/mime/mailmime_write.c   *** REMOVED FILE ***
-	    removed unused files.
-
-2007-10-27 - libetpan-0.52cvs16 - hoa
-
-	* mailprivacy_gnupg.c
-	* mailprivacy_smime.c
-	* mailprivacy_tools.c
-	* mailprivacy_tools_private.h *** NEW FILE ***
-	    spawn_and_wait() is now in mailprivacy_tools.c
-
-2007-10-27 - libetpan-0.52cvs15 - Marcus Brinkmann
-
-       * autogen.sh
-	   (libtoolize): Add -I m4 to aclocal invocation.
-	
-       * Makefile.am
-	   (EXTRA_DIST): Add COPYRIGHT.
-	   Add dependency for libetpan-config.h to
-	   $(top_builddir)/stamp-prepare.
-	   (libetpan-config.h): Fix VPATH build.
-
-       * src/driver/implementation/imap/Makefile.am:
-	   (libimap_la_SOURCES): Add imapdriver_tools_private.h.
-
-2007-10-27 - libetpan-0.52cvs14 - Marcus Brinkmann
-
-	* configure.ac
-	    Add -I${top_srcdir}/src/windows and LIBETPAN_DLL to CFLAGS
-	    on mingw32 architectures.  Also, check for arpa/inet.h and
-	    winsock2.h.  Save LIBS during iconv test.
-	* src/Makefile.am
-	    Add windows to SUBDIRS only if HAVE_MINGW32_SYSTEM.  In this
-	    case, add windows/libarch.la to libetpan.la.
-	* src/data-types/Makefile.am
-	    Remove mapping.h and mapping.c from libdata_types_la_SOURCES.
-	* src/data-types/mapping.h  *** REMOVED FILE ***
-	* src/data-types/mapping.c  *** REMOVED FILE ***
-	* src/data-types/mailstream.c
-	* src/data-types/md5.c
-	* src/low-level/imap/idle.c
-	    Include config.h and win_etpan.h conditionally.
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	* src/low-level/smtp/mailsmtp.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mh/mhdriver.c
-	    Include win_etpan.h conditionally.  Use WIN32 instead of _MSC_VER.
-	* src/data-types/mailstream_low.c
-	* src/windows/time_r.c
-	    Include config.h conditionally.  Use WIN32 instead of _MSC_VER.
-	* src/data-types/connect.c
-	* src/data-types/maillock.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/interfaces/maildriver_tools.c
-	* src/driver/interfaces/mailstorage_tools.c
-	* src/driver/tools/mailthread.c
-	* src/driver/tools/generic_cache.c
-	* src/low-level/maildir/maildir.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mh/mailmh.c
-	* src/low-level/mime/mailmime_write_generic.c
-	* src/low-level/nntp/newsnntp.c
-	* tests/readmsg-common.c
-	* src/low-level/imf/mailimf_types_helper.c
-	* src/low-level/mime/mailmime_types_helper.c
-	    Use WIN32 instead of _MSC_VER.
-	* src/data-types/mmapstring.c
-	    Include win_etpan.h for WIN32 instead of just _MSC_VER.
-	    Do not use pthread only for _MSC_VER instead all WIN32.
-	* src/driver/implementation/db/dbdriver_message.c
-	    Include win_etpan.h instead of sys/mman.h on Windows.
-	* src/engine/mailprivacy.c
-	    Include win_etpan.h instead of sys/mman.h on Windows.
-	    Use WIN32 instead of _MSC_VER.  Do not check UID on windows.
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	    Include win_etpan.h instead of sys/mman.h and sys/wait.h
-	    on Windows.  Rewrite command passphrase handling for Windows.
-	* src/engine/mailprivacy_tools.c
-	    Include win_etpan.h instead of sys/mman.h and libgen.h.
-	* src/low-level/pop3/mailpop3_socket.c
-	* src/low-level/pop3/mailpop3_ssl.c
-	    Include stdlib.h.
-	* src/windows/Makefile.am
-	    Build libarch.la.
-	* src/windows/win_etpan.h
-	    Include time.h, dirent.h and winsock2.h on HAVE_MINGW32_SYSTEM
-	    targets, and define EINPROGRESS, but not stat and dirent
-	    replacements.
-	* src/windows/wsocket.cpp
-	    Include config.h conditionally, and always include winsock2.h.
-	* tests/decrypt.c
-	* tests/pgp.c
-	* tests/smime.c
-	    Include win_etpan.h instead of sys/mman.h on Windows.
-	    Use WIN32 instead of _MSC_VER.
-	* tests/smtpsend.c
-	    Include win_etpan.h instead of sys/mman.h on Windows.  Do
-	    not define STDIN_FILENO but use standard getopt on
-	    HAVE_MINGW32_SYSTEM.  Use WIN32 instead of _MSC_VER where
-	    appropriate.
-
-2007-10-23 - libetpan-0.52cvs13 - hoa
-
-	* m4/libtool.m4  *** NEW FILE ***
-	    fixed autoreconf.
-	
-        * configure.ac
-	    Add check for mingw32 platform.  Auto-detect IPv6
-            support.  Check for pthreads-w32.
-	    Thanks to Marcus Brinkmann.
-
-2007-10-22 - libetpan-0.52cvs12 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    Fixed memory leak in GnuTLS related code.
-	    Thanks to Colin Leroy.
-
-2007-10-20 - libetpan-0.52cvs11 - hoa
-
-	* src/driver/implementation/pop3/pop3storage.c
-	    fixed false SASL auth type for try apop.
-	    Thanks to Vasily Osadchuk.
-
-2007-10-19 - libetpan-0.52cvs10 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    lower limits on server key length restriction
-	    on GnuTLS implementation.
-	    Thanks to Colin Leroy.
-
-2007-10-11 - libetpan-0.52cvs9 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fixed a typo in MIME media content type.
-	    Thanks to Simon Banks.
-	
-2007-10-10 - libetpan-0.52cvs8 - hoa
-
-	* src/data-types/mailsasl.c
-	    workaround a bug of libsasl when using SASL and SSL.
-
-2007-09-22 - libetpan-0.52cvs7 - hoa
-
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached_message.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_cached_message.c
-	    changed error code when opening cache file does not work.
-
-2007-09-18 - libetpan-0.52cvs6 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    workaround Exchange authentication response.
-	    Thanks to Horia Olaru.
-
-2007-09-15 - libetpan-0.52cvs5 - hoa
-
-	* src/data-types/mailstream_socket.c
-	* src/low-level/mime/mailmime_decode.c
-	* tests/fetch-attachment.c
-	    fixed cancellation of socket write on Win32.
-	    MIME decoding of unknown charset is improved.
-	    fetch attachment will write binary files.
-
-2007-08-23 - libetpan-0.52cvs4 - hoa
-
-	* src/low-level/pop3/mailpop3.c
-	    Fixed POP3 SASL authentication.
-	    Thanks to Horia Olaru.
-
-2007-08-13 - libetpan-0.52cvs3 - hoa
-
-	* src/main/Makefile.am
-	    install libetpan.h in includedir/libetpan.h for
-	    compatibility purpose.
-
-2007-08-12 - libetpan-0.52cvs2 - hoa
-
-	* configure.ac
-	    added detection of db 4.5
-
-2007-08-08 - libetpan-0.52cvs1 - hoa
-
-	* autogen.sh
-	* configure.ac
-	    do not build doc in autogen.sh since Makefile won't exist yet.
-	    cleaned up configure.ac so that version numbers are not duplicated.
-
-	* src/driver/implementation/imap/Makefile.am
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_message.c
-	* src/driver/implementation/imap/imapdriver_tools.[ch]
-	    - made imapdriver_tools.h public.
-	    - As requested per Matt Ronge, imap_uid_list_to_env_list()
-	      and imap_flags_to_flags() were made public.
-	    - prefixed properly external symbols.
-
-2007-08-06 - libetpan-0.52 - hoa
-
-	* release 0.52 - Plaintive Rumba
-	    fixes:
-		build when IPv6 is not supported.
-		advertised version.
-
-2007-08-06 - libetpan-0.51cvs1 - hoa
-
-	* src/data-types/connect.c
-	    build problem when IPv6 is not supported.
-
-2007-08-03 - libetpan-0.51 - alfie
-
-	* release 0.51 - Sex & Religion
-	    fixes:
-		SASL enabled build fixed
-		GnuTLS build fixed
-		BIOs handling fix for openSSL
-
-2007-07-30 - libetpan-0.50cvs6 - colin
-
-	* src/data-types/connect.c
-	    put back the (ai == NULL) test - it was alright
-	    but a break was missing in the for loop
-	* src/data-types/mailstream_ssl.c
-	    rename wait_connect to wait_SSL_connect for
-	    clarity
-
-2007-07-30 - libetpan-0.50cvs5 - colin
-
-	* src/data-types/connect.c
-	    fix non-blocking connection (select()ing for
-	    connect is on writability)
-	* src/data-types/mailstream_ssl.c
-	    fix handling of non-blocking underlying BIOs for
-	    openSSL; fix build with GnuTLS.
-
-2007-07-28 - libetpan-0.50cvs4 - hoa
-
-	* src/data-types/connect.c
-	    connection to server has timeout using
-	    mailstream_network_delay.
-
-2007-07-27 - libetpan-0.50cvs3 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    workaround broken behavior of www.safe-mail.net server.
-
-2007-07-27 - libetpan-0.50cvs2 - hoa
-
-	* src/low-level/smtp/mailsmtp.[ch]
-	    cleanup: mapped MAILSMTP_AUTH_LOGIN authentication type
-	    on SASL LOGIN mechanism.
-	
-2007-07-25 - libetpan-0.50cvs1 - hoa
-
-	* src/low-level/smtp/mailsmtp.c
-	    fixed build when SASL is enabled.
-	
-2007-07-25 - libetpan-0.50 - alfie
-
-	* release 0.50 - Used to be alright
-	    feature enhancements:
-		RSS/ATOM feed implemented
-		switched to automake build system
-		IMAP IDLE implemented
-		fetching by Message-Id implemented
-	    fixes:
-		several build fixes for Windows
-		documentation build fixed
-
-2007-07-21 - libetpan-0.49cvs32 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    revert previous change. this was not correct.
-
-2007-07-21 - libetpan-0.49cvs31 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    set timeout also on SSL sessions.
-
-2007-07-21 - libetpan-0.49cvs30 - hoa
-
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/smtp/mailsmtp.c
-	    As per request of libsasl debian maintainer,
-	    call to sasl_decode64() has been cleaned up.
-
-2007-07-16 - libetpan-0.49cvs29 - hoa
-
-	* doc/Makefile.am
-	    fixed build of documentation.
-
-2007-07-16 - libetpan-0.49cvs28 - hoa
-
-	* autogen.sh
-	    avoid automatic copy of GPL licence.
-
-2007-07-16 - libetpan-0.49cvs27 - hoa
-
-	* COPYRIGHT  *** ADDED FILE ***
-	    reimported COPYRIGHT file since automake will always
-	    overwrite COPYING file.
-
-2007-07-16 - libetpan-0.49cvs26 - hoa
-
-	* COPYRIGHT  *** REMOVED FILE ***
-	    changed the name of the copyright file since automake will
-	    force creation of 'COPYING' file.
-
-2007-07-16 - libetpan-0.49cvs25 - hoa
-
-	* build-windows/libetpan_version.h
-	* src/main/libetpan_version.h.in
-	* AUTHORS                                         *** NEW FILES ***
-	* Makefile.am                                     *** NEW FILES ***
-	* README                                          *** NEW FILES ***
-	* autogen.sh
-	* configure.ac                                    *** NEW FILES ***
-	* rules.mk                                        *** NEW FILES ***
-	* build-windows/Makefile.am                       *** NEW FILES ***
-	* doc/Makefile.am                                 *** NEW FILES ***
-	* doc/README.rules                                *** NEW FILES ***
-	* include/Makefile.am                             *** NEW FILES ***
-	* src/Makefile.am                                 *** NEW FILES ***
-	* src/bsd/Makefile.am                             *** NEW FILES ***
-	* src/data-types/Makefile.am                      *** NEW FILES ***
-	* src/driver/Makefile.am                          *** NEW FILES ***
-	* src/driver/implementation/Makefile.am           *** NEW FILES ***
-	* src/driver/implementation/data-message/Makefile.am *** NEW FILES ***
-	* src/driver/implementation/db/Makefile.am        *** NEW FILES ***
-	* src/driver/implementation/feed/Makefile.am      *** NEW FILES ***
-	* src/driver/implementation/hotmail/Makefile.am   *** NEW FILES ***
-	* src/driver/implementation/imap/Makefile.am      *** NEW FILES ***
-	* src/driver/implementation/maildir/Makefile.am   *** NEW FILES ***
-	* src/driver/implementation/mbox/Makefile.am      *** NEW FILES ***
-	* src/driver/implementation/mh/Makefile.am        *** NEW FILES ***
-	* src/driver/implementation/mime-message/Makefile.am *** NEW FILES ***
-	* src/driver/implementation/nntp/Makefile.am      *** NEW FILES ***
-	* src/driver/implementation/pop3/Makefile.am      *** NEW FILES ***
-	* src/driver/interface/Makefile.am                *** NEW FILES ***
-	* src/driver/tools/Makefile.am                    *** NEW FILES ***
-	* src/engine/Makefile.am                          *** NEW FILES ***
-	* src/low-level/Makefile.am                       *** NEW FILES ***
-	* src/low-level/feed/Makefile.am                  *** NEW FILES ***
-	* src/low-level/imap/Makefile.am                  *** NEW FILES ***
-	* src/low-level/imf/Makefile.am                   *** NEW FILES ***
-	* src/low-level/maildir/Makefile.am               *** NEW FILES ***
-	* src/low-level/mbox/Makefile.am                  *** NEW FILES ***
-	* src/low-level/mh/Makefile.am                    *** NEW FILES ***
-	* src/low-level/mime/Makefile.am                  *** NEW FILES ***
-	* src/low-level/nntp/Makefile.am                  *** NEW FILES ***
-	* src/low-level/pop3/Makefile.am                  *** NEW FILES ***
-	* src/low-level/smtp/Makefile.am                  *** NEW FILES ***
-	* src/main/Makefile.am                            *** NEW FILES ***
-	* src/windows/Makefile.am                         *** NEW FILES ***
-	* tests/Makefile.am                               *** NEW FILES ***
-	* INSTALL                                         *** REMOVED FILE ***
-	* Makefile.in                                     *** REMOVED FILE ***
-	* Rules.in                                        *** REMOVED FILE ***
-	* TODO                                            *** REMOVED FILE ***
-	* configure.in                                    *** REMOVED FILE ***
-	* install-sh                                      *** REMOVED FILE ***
-	* doc/Makefile                                    *** REMOVED FILE ***
-	* src/Makefile.in                                 *** REMOVED FILE ***
-	* src/data-types/Makefile                         *** REMOVED FILE ***
-	* src/driver/Makefile                             *** REMOVED FILE ***
-	* src/driver/implementation/Makefile              *** REMOVED FILE ***
-	* src/driver/implementation/data-message/Makefile *** REMOVED FILE ***
-	* src/driver/implementation/db/Makefile           *** REMOVED FILE ***
-	* src/driver/implementation/feed/Makefile         *** REMOVED FILE ***
-	* src/driver/implementation/hotmail/Makefile      *** REMOVED FILE ***
-	* src/driver/implementation/imap/Makefile         *** REMOVED FILE ***
-	* src/driver/implementation/maildir/Makefile      *** REMOVED FILE ***
-	* src/driver/implementation/mbox/Makefile         *** REMOVED FILE ***
-	* src/driver/implementation/mh/Makefile           *** REMOVED FILE ***
-	* src/driver/implementation/mime-message/Makefile *** REMOVED FILE ***
-	* src/driver/implementation/nntp/Makefile         *** REMOVED FILE ***
-	* src/driver/implementation/pop3/Makefile         *** REMOVED FILE ***
-	* src/driver/interface/Makefile                   *** REMOVED FILE ***
-	* src/driver/tools/Makefile                       *** REMOVED FILE ***
-	* src/engine/Makefile                             *** REMOVED FILE ***
-	* src/low-level/Makefile                          *** REMOVED FILE ***
-	* src/low-level/feed/Makefile                     *** REMOVED FILE ***
-	* src/low-level/imap/Makefile                     *** REMOVED FILE ***
-	* src/low-level/imf/Makefile                      *** REMOVED FILE ***
-	* src/low-level/maildir/Makefile                  *** REMOVED FILE ***
-	* src/low-level/mbox/Makefile                     *** REMOVED FILE ***
-	* src/low-level/mh/Makefile                       *** REMOVED FILE ***
-	* src/low-level/mime/Makefile                     *** REMOVED FILE ***
-	* src/low-level/nntp/Makefile                     *** REMOVED FILE ***
-	* src/low-level/pop3/Makefile                     *** REMOVED FILE ***
-	* src/low-level/smtp/Makefile                     *** REMOVED FILE ***
-	* src/main/Makefile                               *** REMOVED FILE ***
-	* tests/Makefile                                  *** REMOVED FILE ***
-	    new build system using automake so that build
-	    outside of the source folder is possible.
-	    Thanks to Marcus Brinkmann.
-
-2007-07-15 - libetpan-0.49cvs24 - hoa
-
-	* src/data-types/connect.c
-	    fixed integer sign. (bis)
-
-2007-07-14 - libetpan-0.49cvs24 - hoa
-
-	* src/data-types/connect.c
-	    fixed integer sign.
-
-2007-07-12 - libetpan-0.49cvs23 - smarinier
-
-	* build-windows/README.txt
-	* build-windows/build_headers.list
-	* build-windows/libetpan-config.h 
-	* build-windows/libetpan_version.h
-	* build-windows/libetpan/libetpan.vcproj
-		2 new projects : debug_ssl and release_ssl		
-	
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-		mutex, ssl for windows
-
-	* src/data-types/maillock.c
-	* src/low-level/mime/mailmime_write_mem.c
-	* src/data-types/connect.c
-			warning
-
-	* src/windows/inet_aton.c
-	* src/windows/win_etpan.h
-		inet_aton for Windows
-
-2007-07-01 - libetpan-0.49cvs22 - hoa
-
-	* src/driver/implementation/nntp/nntpstorage.c
-	* src/driver/implementation/pop3/pop3storage.c
-	    local bind feature fixed.
-
-2007-06-30 - libetpan-0.49cvs21 - hoa
-
-	* src/data-types/connect.[ch]
-	* src/driver/implementation/imap/imapdriver_types.h
-	* src/driver/implementation/imap/imapstorage.[ch]
-	* src/driver/implementation/nntp/nntpdriver_types.h
-	* src/driver/implementation/nntp/nntpstorage.[ch]
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_types.h
-	* src/driver/implementation/pop3/pop3storage.[ch]
-	* src/driver/interface/mailstorage_tools.[ch]
-	    local bind feature has been implemented.
-	    Thanks to Johannes Schlumberger.
-
-2007-06-30 - libetpan-0.49cvs20 - hoa
-
-	* src/low-level/nntp/newsnntp.c
-	    improved API to fetch article by Message ID.
-
-2007-06-29 - libetpan-0.49cvs19 - hoa
-
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/nntp/newsnntp.h
-	    allows fetch article by Message-ID.
-	    Thanks to Thomas Glanzmann.
-
-2007-05-26 - libetpan-0.49cvs18 - hoa
-
-	* src/low-level/imap/idle.c
-	* src/low-level/imap/mailimap.h
-	    fixed IMAP IDLE.
-
-2007-05-25 - libetpan-0.49cvs17 - hoa
-
-	* src/low-level/imap/Makefile
-	* src/low-level/imap/idle.[ch]     *** NEW FILES ***
-	    implemented IMAP IDLE.
-
-2007-05-25 - libetpan-0.49cvs16 - hoa
-
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	    fixed cancel on win32. Thanks to Andrei N. Balabohin.
-
-	* src/low-level/feed/date.c
-	    fixed include for win32.
-
-	* src/low-level/imap/mailimap.c
-	* src/low-level/imap/mailimap_types.h
-	    prepare for IMAP IDLE.
-
-2007-05-24 - libetpan-0.49cvs15 - hoa
-
-	* src/low-level/imap/acl.c
-	* src/low-level/imap/annotatemore.c
-	* src/low-level/imap/mailimap.[ch]
-	* src/low-level/imap/uidplus.c
-	    prefixed properly global symbols.
-
-2007-05-19 - libetpan-0.49cvs14 - hoa
-
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    fixed comparison.
-
-2007-05-02 - libetpan-0.49cvs13 - hoa
-
-	* src/driver/implementation/pop3/pop3driver.c
-	    get message by UID is implemented.
-
-2007-04-26 - libetpan-0.49cvs12 - hoa
-
-	* src/low-level/feed/newsfeed_item.c
-	    fixed build problem.
-
-2007-04-24 - libetpan-0.49cvs11 - hoa
-
-	* src/low-level/feed/parser.c
-	    fixed build problem.
-
-2007-04-07 - libetpan-0.49cvs10 - hoa
-
-	* src/driver/implementation/feed/feeddriver_message.c
-	    fallback on summary if no content for the given article.
-
-2007-04-07 - libetpan-0.49cvs9 - hoa
-
-	* src/low-level/feed/Makefile
-	* src/low-level/feed/newsfeed.c
-	* src/low-level/feed/parser.c
-	* src/low-level/feed/parser_atom10.h
-	* src/low-level/feed/parser_atom03.[ch]      *** NEW FILES ***
-	    fixed build. Added parser for atom 0.3
-
-2007-04-07 - libetpan-0.49cvs8 - hoa
-
-	* src/low-level/feed/Makefile
-	* src/low-level/feed/newsfeed.c
-	* src/low-level/feed/newsfeed.h
-	* src/low-level/feed/newsfeed_item.c
-	* src/low-level/feed/newsfeed_item.h
-	* src/low-level/feed/newsfeed_item_enclosure.[ch]   *** NEW FILES ***
-	* src/low-level/feed/newsfeed_types.h
-	* src/low-level/feed/parser.c
-	* src/low-level/feed/parser_rdf.c
-	* src/low-level/feed/parser_rss20.c
-	    Added a feed item enclosure, sync with rssyl-ng.
-	    Implementation of unknown charset handler for expat.
-
-2007-04-03 - libetpan-0.49cvs7 - hoa
-
-	* src/low-level/imap/mailimap.c
-	    Fixed a crash in IMAP when greeting message is empty.
-	    Thanks to ruskie for the report.
-
-2007-04-03 - libetpan-0.49cvs6 - hoa
-
-	* configure.in
-	    use of liblockfile can be disabled.
-	    Thanks to Thomas de Grenier de Latour.
-
-2007-04-03 - libetpan-0.49cvs5 - hoa
-
-	* src/low-level/mime/mailmime_decode.c
-	    fixed behavior of mailmime_encoded_phrase_parse().
-	    Thanks to Laurent Birtz.
-
-2007-01-28 - libetpan-0.49cvs4 - hoa
-
-	* build-windows/build_headers.list
-	* build-windows/libetpan/libetpan.vcproj
-	    fixed build for Windows. Thanks to Andrei N. Balabohin.
-	
-	* src/data-types/mailstream.h
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.[ch]
-	    Implemented stream cancel on Windows.
-	    Fixed build when SSL is not compiled in.
-	    Thanks to Andrei N. Balabohin.
-
-2007-01-28 - libetpan-0.49cvs3 - hoa
-
-	* src/driver/implementation/data-message/data_message_driver.c
-	    fill msg_fields field in mailmessage structure
-	    for data message driver.
-
-2007-01-28 - libetpan-0.49cvs2 - hoa
-
-	* configure.in
-	* build-windows/libetpan_version.h
-	* src/low-level/feed/newsfeed.c
-	* src/low-level/feed/newsfeed_private.[ch]
-	* src/low-level/feed/newsfeed_types.h
-	* src/low-level/feed/parser.c
-	* src/low-level/feed/parser_atom10.c
-	* src/low-level/feed/parser_rdf.c
-	* src/low-level/feed/parser_rss20.c
-	* src/low-level/imap/uidplus_parser.c
-	    detection for curl and expat.
-
-2007-01-18 - libetpan-0.49cvs1 - hoa
-
-	* src/driver/implementation/Makefile
-	* src/driver/implementation/feed/Makefile                ** NEW FILES **
-	* src/driver/implementation/feed/feeddriver.[ch]         ** NEW FILES **
-	* src/driver/implementation/feed/feeddriver_message.[ch] ** NEW FILES **
-	* src/driver/implementation/feed/feeddriver_types.h      ** NEW FILES **
-	* src/driver/implementation/feed/feedstorage.[ch]        ** NEW FILES **
-	* src/driver/tools/mailthread.c
-	* src/low-level/Makefile
-	* src/low-level/feed/Makefile               ** NEW FILES **
-	* src/low-level/feed/date.[ch]              ** NEW FILES **
-	* src/low-level/feed/newsfeed.[ch]          ** NEW FILES **
-	* src/low-level/feed/newsfeed_item.[ch]     ** NEW FILES **
-	* src/low-level/feed/newsfeed_private.[ch]  ** NEW FILES **
-	* src/low-level/feed/newsfeed_types.h       ** NEW FILES **
-	* src/low-level/feed/parser.[ch]            ** NEW FILES **
-	* src/low-level/feed/parser_atom10.[ch]     ** NEW FILES **
-	* src/low-level/feed/parser_rdf.[ch]        ** NEW FILES **
-	* src/low-level/feed/parser_rss20.[ch]      ** NEW FILES **
-	* src/main/libetpan.h
-	* tests/option-parser.c
-	* tests/option-parser.h
-	    implementation of RSS/ATOM feed.
-	    Still needs to write autodetection for needed libraries.
-
-2007-01-08 - libetpan-0.49 - alfie
-
-	* release 0.49 - Drive
-	    feature enhancements:
-		stream cancellation
-		better handling of ssl error
-		improved imap cache
-	    fixes:
-		various bugfixes
-
-2007-01-07 - libetpan-0.48cvs15 - hoa
-
-	* src/data-types/mailstream_ssl.[ch]
-	    remove unnecessary casts, fixed properly header.
-
-2007-01-06 - libetpan-0.48cvs14 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Cleaner type fix -- Changes mailstream_ssl_get_certificate
-	    return type to ssize_t
-
-2007-01-06 - libetpan-0.48cvs13 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Fixed size_t/int problem.
-
-2007-01-06 - libetpan-0.48cvs12 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Fixed GNUTLS build.
-
-2006-12-29 - libetpan-0.48cvs11 - hoa
-
-	* src/data-types/mailstream_cancel.c
-	* src/data-types/mailstream_ssl.c
-	    simplified code. Fixed build.
-
-2006-12-29 - libetpan-0.48cvs10 - colin
-
-	* src/data-types/mailstream_cancel.c
-	    Fix allocations
-
-2006-12-29 - libetpan-0.48cvs9 - hoa
-
-	* src/data-types/timeutils.c
-	    merged Cyrus IMAPD changes.
-	    This fixes the crash in mkgmtime().
-
-2006-12-26 - libetpan-0.48cvs8 - hoa
-
-	* src/data-types/timeutils.[ch]          ** NEW FILES **
-	* src/data-types/Makefile
-	* src/driver/tools/mailthread.c
-	* src/low-level/imf/mailimf_types_helper.[ch]
-	    avoid code duplication.
-	
-	* build-windows/build_headers.list
-	* build-windows/libetpan/libetpan.vcproj
-	    build for Windows.
-	
-	* src/data-types/mailstream_ssl.[ch]
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_types.h
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_types.h
-	* src/low-level/imap/mailimap_socket.[ch]
-	* src/low-level/imap/mailimap_ssl.[ch]
-	* src/low-level/nntp/newsnntp_ssl.[ch]
-	* src/low-level/pop3/mailpop3_socket.[ch]
-	* src/low-level/pop3/mailpop3_ssl.[ch]
-	* src/low-level/smtp/mailsmtp_socket.[ch]
-	* src/low-level/smtp/mailsmtp_ssl.[ch]
-	    added SSL callback.
-	
-	* src/driver/interface/maildriver_types.h
-	    cleanup.
-
-2006-12-23 - libetpan-0.48cvs7 - hoa
-
-	* src/data-types/mailstream_ssl.[ch]
-	    callback for SSL implemented. Thanks to Andrei N. Balabohin.
-
-2006-12-22 - libetpan-0.48cvs6 - hoa
-
-	* src/data-types/mailstream_cancel.[ch]      ** NEW FILES **
-	* src/data-types/mailstream_cancel_types.h   ** NEW FILES **
-	    cancel implemented.
-
-2006-12-22 - libetpan-0.48cvs5 - hoa
-
-	* src/data-types/Makefile
-	* src/data-types/mailstream.c
-	* src/data-types/mailstream.h
-	* src/data-types/mailstream_low.c
-	* src/data-types/mailstream_low.h
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_socket.h
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_types.h
-	    cancel implemented. breaks binary compatibility.
-	
-	* src/low-level/mime/mailmime_content.c
-	    fixed MIME parser. Thanks to Laurent Birtz.
-
-2006-12-13 - libetpan-0.48cvs4 - hoa
-
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.[ch]
-	    removed C99 structure style. Use a unique code for Unix/Windows.
-	    make a function really internal.
-	
-	* src/data-types/clist.h
-	* src/data-types/mailstream_low.c
-	* src/low-level/pop3/mailpop3.h
-	* src/low-level/pop3/mailpop3_socket.h
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_tools.c
-	* src/driver/interface/maildriver_errors.h
-	* src/low-level/imap/mailimap_ssl.[ch]
-	* src/low-level/imap/mailimap_types.h
-	* src/low-level/nntp/newsnntp_ssl.[ch]
-	* src/low-level/nntp/newsnntp_types.h
-	* src/low-level/pop3/mailpop3_ssl.[ch]
-	* src/low-level/pop3/mailpop3_types.h
-	* src/low-level/smtp/mailsmtp.c
-	* src/low-level/smtp/mailsmtp_socket.c
-	* src/low-level/smtp/mailsmtp_ssl.[ch]
-	* src/low-level/smtp/mailsmtp_types.h
-	    SSL error management.
-	    exports some functions for Windows.
-	    Thanks to Andrei N. Balabohin.
-	
-	* src/driver/implementation/mh/mhdriver.c
-	    removed warning.
-	
-	* src/low-level/imap/uidplus_types.h
-	    compilation fix for Windows.
-	    Thanks to Andrei N. Balabohin.
-
-2006-12-12 - libetpan-0.48cvs3 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_types.h
-	    Fixed code documentation.
-	
-	* src/low-level/imap/uidplus_parser.c
-	    Fixed warning. Thanks to anosek.
-	
-	* src/low-level/mime/mailmime_decode.c
-	    Interpret 'UTF8' as 'UTF-8'.
-
-2006-12-10 - libetpan-0.48cvs2 - colin
-
-	* src/low-level/imap/mailimap.c
-	    fix crash when server answers " * BYE"
-	    Fixes debian bug #398382
-
-2006-11-12 - libetpan-0.48cvs1 - hoa
-
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_tools.c
-	    cache of bodystructure for IMAP driver.
-
-2006-10-26 - libetpan-0.48 - alfie
-
-	* release 0.48 - Hypergeek
-	    feature enhancements:
-		UIDPLUS implemented
-	    fixes:
-		various smaller code fixes
-
-2006-10-26 - libetpan-0.47cvs6 - hoa
-
-	* src/low-level/imap/mailimap_types.c
-	    fixed the code of response_info_free().
-
-2006-10-25 - libetpan-0.47cvs5 - hoa
-
-	* src/driver/implementation/db/dbdriver.c
-	    fixed the code of db_get_next_validity().
-
-2006-10-22 - libetpan-0.47cvs4 - hoa
-
-	* src/low-level/imf/mailimf_types_helper.c
-	    fixed handling of Bcc.
-
-2006-10-20 - libetpan-0.47cvs3 - hoa
-
-	* src/low-level/imap/uidplus.h
-	    fixed extern declaration.
-
-2006-10-20 - libetpan-0.47cvs2 - hoa
-
-	* src/low-level/imap/acl.[ch]
-	* src/low-level/imap/annotatemore.[ch]
-	* src/low-level/imap/mailimap_extension.[ch]
-	* src/low-level/imap/uidplus.[ch]
-	    added an API to check the capabilities.
-	    fixed UIDPLUS copy.
-
-2006-10-20 - libetpan-0.47cvs1 - hoa
-
-	* configure.in
-	* src/low-level/imap/Makefile
-	* src/low-level/imap/acl.[ch]
-	* src/low-level/imap/acl_types.c
-	* src/low-level/imap/annotatemore.[ch]
-	* src/low-level/imap/annotatemore_types.c
-	* src/low-level/imap/mailimap.[ch]
-	* src/low-level/imap/mailimap_extension.c
-	* src/low-level/imap/mailimap_extension_types.h
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/mailimap_sender.[ch]
-	* src/low-level/imap/mailimap_types.[ch]
-	    Fixed API of extension. Exported some functions.
-	
-	* src/low-level/imap/uidplus.[ch]          ** NEW FILES **
-	* src/low-level/imap/uidplus_parser.[ch]   ** NEW FILES **
-	* src/low-level/imap/uidplus_sender.[ch]   ** NEW FILES **
-	* src/low-level/imap/uidplus_types.[ch]    ** NEW FILES **
-	    implementation of UIDPLUS.
-
-2006-10-13 - libetpan-0.47 - alfie
-
-	* release 0.47 - Son Et Lumiere
-	    feature enhancements:
-		IPv6 Support
-	    fixes:
-		various leaks and crashes
-		MIME decoding fix
-		gnutls fix
-		SASL fix
-		AUTH parser fix
-
-2006-10-13 - libetpan-0.46cvs13 - alfie
-
-	* src/low-level/smtp/mailsmtp_types.h
-	    order it backward compatible.
-
-2006-10-12 - libetpan-0.46cvs12 - hoa
-
-	* src/low-level/imap/mailimap.c
-	    fixed crash.
-
-2006-10-12 - libetpan-0.46cvs11 - hoa
-
-	* src/low-level/maildir/maildir.c
-	    fixed memory leaks.
-
-2006-10-07 - libetpan-0.46cvs10 - hoa
-
-	* src/low-level/mime/mailmime_decode.c
-	    fixed MIME header decoding.
-
-2006-09-25 - libetpan-0.46cvs9 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Really fix gnutls' init.
-
-2006-09-24 - libetpan-0.46cvs8 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Fix a typo that made gnutls crash on some servers
-	    (mail.hp.com:993 for example). Sorry :-/
-
-2006-09-05 - libetpan-0.46cvs7 - hoa
-
-	* src/low-level/imap/mailimap_parser.c
-	    implemented workaround for Binc IMAP.
-	    FLAGS response can be sent with "\*" on Binc IMAP.
-	    That's not conformant to IMAP RFC.
-
-2006-08-30 - libetpan-0.46cvs6 - hoa
-
-	* src/engine/mailprivacy_smime.c
-	    improved performance of certificates collector.
-	
-	* src/low-level/imap/mailimap.c
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/smtp/mailsmtp.c
-	    fixed use of SASL.
-	    Thanks to Andrei N. Balabohin.
-
-2006-08-05 - libetpan-0.46cvs5 - hoa
-
-	* src/data-types/Makefile
-	* src/data-types/maillock.c
-	* src/main/libetpan.h
-	    exports maillock.h
-	    file descriptor is now optional.
-	
-	* src/data-types/mailstream_ssl.c
-	    disable fcntl() call on win32.
-	
-	* src/driver/implementation/imap/imapdriver_cached.c
-	    fixed a leak.
-	
-	* src/driver/implementation/nntp/nntpdriver_tools.c
-	    fixed error code.
-	
-	* src/low-level/imf/mailimf.c
-	    fixed a leak.
-	
-	* src/low-level/mime/mailmime_decode.c
-	    'unknown' character set is considered as 'iso-8859-1'.
-	
-	* src/low-level/pop3/mailpop3.c
-	    fixed AUTH parser.
-	    Thanks to Andrei N. Balabohin.
-	
-	* src/low-level/smtp/mailsmtp.c
-	* src/low-level/smtp/mailsmtp_types.h
-	    improved error management.
-	    Thanks to Andrei N. Balabohin.
-
-2006-07-15 - libetpan-0.46cvs4 - hoa
-
-	* configure.in
-	    IPv6 is enabled by default.
-
-2006-07-15 - libetpan-0.46cvs3 - hoa
-
-	* configure.in
-	* src/data-types/connect.c
-	* src/driver/interface/mailstorage_tools.c
-	    IPv6 implementation. Thanks to Didier Barvaux.
-
-2006-07-15 - libetpan-0.46cvs2 - hoa
-
-	* build-windows/libetpan_version.h
-	    fixed libetpan version for Windows.
-	    
-	* src/driver/implementation/imap/imapdriver_cached.c
-	    fixed function prototype.
-
-2006-07-14 - libetpan-0.46cvs1 - hoa
-
-	* src/low-level/imf/mailimf.c
-	    fixed a crash in case of parse error on Bcc field.
-
-2006-07-12 - libetpan-0.46 - alfie
-
-	* release 0.46 - Drawing Circles
-	    feature enhancements:
-		imap extension api
-		imap annotate
-		C89 conformance
-	    fixes:
-		fixed crash when using gnutls
-		various other (small) fixes
-
-2006-07-03 - libetpan-0.45cvs17 - skunk
-
-	* Rules.in
-	    new "prepare" rule to prevent redundant header copying
-	* install-sh
-	    updated to latest version from autoconf-2.60 package
-	* src/data-types/charconv.c
-	    moved variable declarations up to avoid having declarations 
-	    after statements, plus some minor syntax fixes
-
-2006-06-29 - libetpan-0.45cvs16 - hoa
-
-	* configure.in
-	    temporary fix for install.
-
-2006-06-28 - libetpan-0.45cvs15 - skunk
-
-	* src/data-types/mailstream.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/pop3/pop3driver.c
-	    checked in the remaining bits of the last patch
-
-2006-06-26 - libetpan-0.45cvs14 - hoa
-
-	* Rules.in
-	* configure.in
-	* build-windows/libetpan_version.h
-	* src/Makefile.in
-	* src/data-types/charconv.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mapping.c
-	* src/data-types/mmapstring.c
-	* src/driver/Makefile
-	* src/driver/implementation/Makefile
-	* src/driver/implementation/data-message/Makefile
-	* src/driver/implementation/data-message/data_message_driver.c
-	* src/driver/implementation/db/Makefile
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/db/dbdriver_message.c
-	* src/driver/implementation/db/dbstorage.c
-	* src/driver/implementation/hotmail/Makefile
-	* src/driver/implementation/imap/Makefile
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_message.c
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/maildir/Makefile
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/maildir/maildirstorage.c
-	* src/driver/implementation/mbox/Makefile
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mbox/mboxstorage.c
-	* src/driver/implementation/mh/Makefile
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_message.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	* src/driver/implementation/mh/mhstorage.c
-	* src/driver/implementation/mime-message/Makefile
-	* src/driver/implementation/mime-message/mime_message_driver.c
-	* src/driver/implementation/nntp/Makefile
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached_message.c
-	* src/driver/implementation/nntp/nntpdriver_message.c
-	* src/driver/implementation/nntp/nntpstorage.c
-	* src/driver/implementation/pop3/Makefile
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_cached_message.c
-	* src/driver/implementation/pop3/pop3driver_message.c
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/driver/interface/Makefile
-	* src/driver/interface/maildriver_types.h
-	* src/driver/tools/Makefile
-	* src/driver/tools/generic_cache.c
-	* src/engine/Makefile
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/Makefile
-	* src/low-level/imap/Makefile
-	* src/low-level/imap/acl.c
-	* src/low-level/imap/acl_parser.c
-	* src/low-level/imap/acl_sender.c
-	* src/low-level/imap/acl_types.c
-	* src/low-level/imap/annotatemore.c
-	* src/low-level/imap/annotatemore_parser.c
-	* src/low-level/imap/annotatemore_sender.c
-	* src/low-level/imap/annotatemore_types.c
-	* src/low-level/imap/mailimap_extension.c
-	* src/low-level/imap/mailimap_helper.c
-	* src/low-level/imap/mailimap_keywords.c
-	* src/low-level/imap/mailimap_socket.c
-	* src/low-level/imap/mailimap_ssl.c
-	* src/low-level/imap/mailimap_types.c
-	* src/low-level/imap/mailimap_types_helper.c
-	* src/low-level/maildir/maildir.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mh/mailmh.c
-	* src/low-level/mime/mailmime.c
-	* src/low-level/mime/mailmime_decode.c
-	* src/low-level/mime/mailmime_disposition.c
-	* src/low-level/mime/mailmime_types.c
-	* src/low-level/mime/mailmime_types_helper.c
-	* src/low-level/mime/mailmime_write.c
-	* src/low-level/mime/mailmime_write_file.c
-	* src/low-level/mime/mailmime_write_generic.c
-	* src/low-level/mime/mailmime_write_mem.c
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/nntp/newsnntp_socket.c
-	* src/low-level/nntp/newsnntp_ssl.c
-	* src/low-level/smtp/mailsmtp_helper.c
-	* src/low-level/smtp/mailsmtp_socket.c
-	* src/low-level/smtp/mailsmtp_ssl.c
-	* tests/readmsg-common.c
-	    conformance patch by Daniel Richard G.
-
-2006-06-16 - libetpan-0.45cvs13 - smarinier
-
-	* src/data-types/charconv.[ch]
-	    extended_charconv might be used if you don't have iconv
-	    or if you want to handle some conversions by yourself
-
-	* src//driver/interface/maildriver_types.[ch]
-	    libetpan_malloc and libetpan_freei should be used to
-	    allocate/free data freed/allocated by libetpan
-
-2006-06-07 - libetpan-0.45cvs12 - smarinier
-
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_tools.[ch]
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/interface/maildriver.[ch]
-	* src/driver/interface/maildriver_tools.[ch]
-	* src/driver/interface/maildriver_types.h
-	* src/low-level/imap/mailimap_helper.[ch]
-	* src/low-level/mime/mailmime_write_mem.c
-	* src/low-level/pop3/mailpop3_helper.[ch]
-	* tests/option-parser.[ch]
-	    use const char* when char* is not necessary (2)
-
-2006-06-06 - libetpan-0.45cvs11 - smarinier
-
-	* src/driver/implementation/imap/imapdriver.c
-	    add (slow) remove_message to imap_driver
-
-2006-06-02 - libetpan-0.45cvs10 - smarinier
-
-	* src/driver/implementation/nntp/nntpstorage.c
-	    minor bug on nn_command deletion
-
-	* src/driver/implementation/imap/imapstorage.[ch]
-	* src/driver/implementation/maildir/maildirstorage.[ch]
-	* src/driver/implementation/nntp/nntpstorage.[ch]
-	* src/driver/interface/mailstorage.[ch]
-	* src/data-types/md5.[ch]
-	* src/data-types/md5global.h
-	* src/driver/implementation/mbox/mboxstorage.[ch]
-	* src/driver/implementation/mh/mhstorage.[ch]
-	* src/driver/implementation/pop3/pop3storage.[ch]
-	    use const char* when char* is not necessary
-	
-2006-06-02 - libetpan-0.45cvs9 - hoa
-
-	* src/driver/interface/maildriver.c
-	    fixed copy-paste bug. Thanks to Sebastien Marinier.
-
-2006-05-30 - libetpan-0.45cvs8 - hoa
-
-	* configure.in
-	    support for newer version of Debian Berkeley DB.
-
-2006-05-22 - libetpan-0.45cvs7 - hoa
-
-	* autogen.sh
-	* configure.in
-	* src/data-types/carray.c
-	* src/data-types/charconv.[ch]
-	* src/data-types/chash.c
-	* src/data-types/cinthash.c
-	* src/data-types/clist.[ch]
-	* src/data-types/connect.[ch]
-	* src/data-types/mail_cache_db.c
-	* src/data-types/maillock.c
-	* src/data-types/mailsasl.c
-	* src/data-types/mailsem.c
-	* src/data-types/mailstream_helper.c
-	* src/data-types/mailstream_low.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/md5.h
-	* src/data-types/md5global.h
-	* src/data-types/mmapstring.c
-	* src/driver/implementation/data-message/data_message_driver.c
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/db/dbdriver_message.c
-	* src/driver/implementation/db/dbstorage.c
-	* src/driver/implementation/hotmail/hotmailstorage.c
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_message.c
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/driver/implementation/imap/imapdriver_types.h
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/maildir/maildirdriver_tools.c
-	* src/driver/implementation/maildir/maildirdriver_types.h
-	* src/driver/implementation/maildir/maildirstorage.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mbox/mboxdriver_tools.c
-	* src/driver/implementation/mbox/mboxdriver_types.h
-	* src/driver/implementation/mbox/mboxstorage.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_message.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	* src/driver/implementation/mh/mhdriver_types.h
-	* src/driver/implementation/mh/mhstorage.c
-	* src/driver/implementation/mime-message/mime_message_driver.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached_message.c
-	* src/driver/implementation/nntp/nntpdriver_message.c
-	* src/driver/implementation/nntp/nntpdriver_tools.c
-	* src/driver/implementation/nntp/nntpdriver_types.h
-	* src/driver/implementation/nntp/nntpstorage.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_cached_message.c
-	* src/driver/implementation/pop3/pop3driver_message.c
-	* src/driver/implementation/pop3/pop3driver_tools.c
-	* src/driver/implementation/pop3/pop3driver_types.h
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/driver/interface/maildriver.c
-	* src/driver/interface/maildriver_errors.h
-	* src/driver/interface/maildriver_tools.c
-	* src/driver/interface/maildriver_types.[ch]
-	* src/driver/interface/maildriver_types_helper.c
-	* src/driver/interface/mailfolder.c
-	* src/driver/interface/mailmessage.c
-	* src/driver/interface/mailmessage_tools.[ch]
-	* src/driver/interface/mailmessage_types.[ch]
-	* src/driver/interface/mailstorage.c
-	* src/driver/tools/generic_cache.c
-	* src/driver/tools/imfcache.c
-	* src/driver/tools/mailthread.c
-	* src/driver/tools/mailthread_types.[ch]
-	* src/engine/mailengine.c
-	* src/engine/mailprivacy.c
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	* src/engine/mailprivacy_tools.c
-	* src/low-level/imap/mailimap.c
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_sender.c
-	* src/low-level/imap/mailimap_socket.[ch]
-	* src/low-level/imap/mailimap_ssl.[ch]
-	* src/low-level/imap/mailimap_types.h
-	* src/low-level/imf/mailimf.c
-	* src/low-level/imf/mailimf.h
-	* src/low-level/imf/mailimf_types.h
-	* src/low-level/imf/mailimf_types_helper.[ch]
-	* src/low-level/imf/mailimf_write_generic.c
-	* src/low-level/maildir/maildir.c
-	* src/low-level/maildir/maildir_types.h
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mbox/mailmbox_parse.c
-	* src/low-level/mbox/mailmbox_types.[ch]
-	* src/low-level/mh/mailmh.[ch]
-	* src/low-level/mime/mailmime_content.c
-	* src/low-level/mime/mailmime_decode.c
-	* src/low-level/mime/mailmime_types.h
-	* src/low-level/mime/mailmime_types_helper.c
-	* src/low-level/mime/mailmime_write_file.c
-	* src/low-level/mime/mailmime_write_generic.c
-	* src/low-level/mime/mailmime_write_mem.c
-	* src/low-level/nntp/newsnntp.h
-	* src/low-level/nntp/newsnntp_socket.[ch]
-	* src/low-level/nntp/newsnntp_ssl.[ch]
-	* src/low-level/nntp/newsnntp_types.h
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/pop3/mailpop3_helper.c
-	* src/low-level/pop3/mailpop3_socket.[ch]
-	* src/low-level/pop3/mailpop3_ssl.[ch]
-	* src/low-level/pop3/mailpop3_types.h
-	* src/low-level/smtp/mailsmtp.c
-	* src/low-level/smtp/mailsmtp_helper.[ch]
-	* src/low-level/smtp/mailsmtp_socket.c
-	* src/low-level/smtp/mailsmtp_ssl.[ch]
-	* src/low-level/smtp/mailsmtp_types.h
-	* src/main/libetpan_version.c
-	* tests/readmsg.c
-	    cleanup of libetpan.
-	    Thanks to Daniel Richard G.
-
-2006-05-17 - libetpan-0.45cvs6 - hoa
-
-	* src/data-types/charconv.c
-	    fixed UTF-8 character maximum size.
-	
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_types.h
-	    message list cache.
-	
-	* src/driver/implementation/mh/mhdriver_tools.c
-	    fixed 'From ' skipper.
-
-2006-04-16 - libetpan-0.45cvs5 - colin
-
-	* src/low-level/imap/annotatemore_types.c
-		Fix missing mailimap_annotatemore_entry_list_new
-
-2006-04-16 - libetpan-0.45cvs4 - colin
-	
-	* src/data-types/mailstream_ssl.c
-	    Fix crash on closed connection with gnutls (and make sure
-	    it won't happen with openssl), by returning -1 instead of
-	    GNUTLS_ERROR_*: mailstream_read() error return value is -1
-	    everywhere in mailstream.c
-	    Fixes debian bugs: 356325, 358882, maybe 362747
-
-2006-04-15 - libetpan-0.45cvs3 - hoa
-	
-	* src/low-level/imap/annotatemore_parser.c
-	* src/low-level/imap/annotatemore_types.c
-	* src/low-level/imap/annotatemore_types.h
-	    prefixed defines
-
-2006-04-15 - libetpan-0.45cvs2 - hoa
-	
-	* src/low-level/imap/annotatemore.[ch]            * NEW FILES *
-	* src/low-level/imap/annotatemore_parser.[ch]     * NEW FILES *
-	* src/low-level/imap/annotatemore_sender.[ch]     * NEW FILES *
-	* src/low-level/imap/annotatemore_types.[ch]      * NEW FILES *
-	* src/low-level/imap/mailimap_extension.[ch]      * NEW FILES *
-	* src/low-level/imap/mailimap_extension_types.h   * NEW FILE *
-	* src/low-level/imap/Makefile
-	* src/low-level/imap/mailimap.[ch]
-	* src/low-level/imap/mailimap_parser.[ch]
-	* src/low-level/imap/mailimap_sender.[ch]
-	* src/low-level/imap/mailimap_socket.[ch]
-	* src/low-level/imap/mailimap_types.[ch]
-	    implemented ANNOTATE extension.
-	    more flexible interface to add IMAP extensions.
-	    Thanks to Michael Leupold.
-
-2006-04-07 - libetpan-0.45cvs1 - hoa
-
-	* src/driver/interface/mailfolder.[ch]
-	    export properly functions.
-	
-	* src/data-types/connect.c
-	* src/low-level/imap/mailimap_socket.c
-	* src/low-level/nntp/newsnntp_socket.c
-	* src/low-level/pop3/mailpop3_socket.c
-	* src/low-level/smtp/mailsmtp_socket.c
-	    fixed autolookup of port numbers.
-
-2006-03-22 - libetpan-0.45
-
-	* release 0.45 - Depth Charge
-	    bugfix release
-
-2006-03-22 - libetpan-0.44cvs2 - hoa
-
-	* src/data-types/carray.h
-	* src/data-types/charconv.h
-	* src/data-types/chash.h
-	* src/data-types/mailstream_types.h
-	* src/data-types/mmapstring.h
-	* src/low-level/mime/mailmime_types.h
-		fixed includes
-
-2006-03-20 - libetpan-0.44cvs1 - hoa
-
-	* src/data-types/carray.h
-	* src/data-types/charconv.h
-	* src/data-types/chash.h
-	* src/data-types/mailstream_types.h
-	* src/data-types/mmapstring.h
-	* src/low-level/mime/mailmime_types.h
-	    fixed includes
-
-2006-03-10 - libetpan-0.44
-
-	* release 0.44 - Lateralus
-	    bugfix release
-	    fixed versions
-
-2006-03-08 - libetpan-0.43
-
-	* release 0.43 - Lateralus
-	    bugfix release
-
-2006-03-08 - libetpan-0.42cvs5 - hoa
-
-	* ChangeLog
-	* libetpan-config.in
-	    prepare for release
-
-2006-02-15 - libetpan-0.42cvs4 - colin
-
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_ssl.h
-	    Implement certificate retrieval
-
-2006-02-15 - libetpan-0.42cvs3 - colin
-
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_ssl.h
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/low-level/smtp/mailsmtp_socket.c
-	    After a bit of googling (and checking SC's sources too), it 
-	    seems that
-	    - use SSLv23 for SSL connections
-	    - use TLSv1 for STARTTLS connections
-	    is the way to go.
-
-	    This patch implements a new mailstream_low_tls_open() to 
-	    complement mailstream_low_ssl_open(), which allows caller 
-	    to use what it needs.
-	    Tested with a few differents servers:
-	    - STARTTLS works ok, SSL works ok with an openssl-libetpan
-	    - STARTTLS works ok, SSL works ok with a gnutls-libetpan
-	    - one server, the one mentioned in bug 911, doesn't get 
-	      TLSv1 at all, and insists on SSLv23 even with 
-	      STARTTLS, which I think is a server bug
-
-	    Finally, Gnutls must do stuff differently (more automagically) 
-	    than
-	    openssl because there's no need to specify the protocol to use, 
-	    it just
-	    works with SSL and STARTTLS.
-
-	    Updated drivers too.
-
-2006-02-14 - libetpan-0.42cvs2 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Use SSLv23 instead of TLSv1, seems to be more 
-	    universal
-
-2006-02-09 - libetpan-0.42cvs1 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Fix return value when we get SSL_ERROR_ZERO_RETURN
-
-2006-01-09 - libetpan-0.42
-
-	* release 0.41 - Figure Number Five
-	    bugfix release
-
-2006-01-04 - libetpan-0.41cvs10 - hoa
-
-	* autogen.sh
-	* configure.in
-	* src/Makefile.in
-	    fixed build.
-	
-	* src/low-level/smtp/mailsmtp.c
-	    fixed SMTP SASL login.
-	
-	* src/main/libetpan.h
-	    added public API.
-
-2005-12-22 - libetpan-0.41cvs9 - hoa
-
-	* src/engine/mailprivacy_tools.[ch]
-	    fixed visibility of functions.
-
-2005-12-20 - libetpan-0.41cvs8 - hoa
-
-	* src/low-level/maildir/maildir.c
-	    fixed maildir expunge.
-
-	* src/low-level/smtp/mailsmtp.[ch]
-	    implemented SMTP RSET (reset).
-
-2005-12-18 - libetpan-0.41cvs7 - hoa
-
-	* src/low-level/smtp/mailsmtp.[ch]
-	    implemented SMTP NOOP.
-
-2005-12-16 - libetpan-0.41cvs6 - hoa
-
-	* Makefile.in
-	    added empty target 'test'
-	
-	* src/data-types/mailsem.c
-	* src/engine/mailengine.c
-	    fixed build when disabling thread safety.
-
-2005-12-16 - libetpan-0.41cvs5 - hoa
-
-	* src/engine/mailprivacy_tools.c
-	    fixed quoting of filename in shell calls.
-
-2005-12-07 - libetpan-0.41cvs4 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    fixed build when SSL is not available.
-
-2005-12-07 - libetpan-0.41cvs3 - hoa
-
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	    fixed quoting of filename in shell calls.
-
-2005-12-04 - libetpan-0.41cvs2 - hoa
-
-	* configure.in
-	    fixed libtool version
-
-2005-12-02 - libetpan-0.41cvs1 - hoa
-
-	* src/engine/mailengine.c
-	    fixed crash.
-
-2005-12-02 - libetpan-0.41
-
-	* release 0.41 - Transfixion
-	    passphrase is implemented for S/MIME and PGP.
-	    avoid symbols conflict between GnuTLS and OpenSSL.
-
-2005-11-30 - libetpan-0.40cvs6 - hoa
-
-	* src/engine/mailprivacy.c
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	* src/engine/mailprivacy_tools.[ch]
-	   fixed signing.
-	
-	* tests/smime.c
-	    display needed passphrase.
-
-2005-11-21 - libetpan-0.40cvs5 - hoa
-
-	* configure.in
-	    OpenSSL has priority in detection.
-	
-	* src/engine/mailprivacy.[ch]
-	* src/engine/mailprivacy_gnupg.[ch]
-	* src/engine/mailprivacy_smime.[ch]
-	* src/engine/mailprivacy_tools.[ch]
-	* src/engine/mailprivacy_types.h
-	    implemented support of passphrase.
-
-	* tests/Makefile
-	* tests/frm-common.c
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	    fixed compilation of tests.
-
-	* tests/pgp.c                          * NEW FILE *
-	* tests/smime.c                        * NEW FILE *
-	* tests/decrypt.c                      * NEW FILE *
-	    some tests for S/MIME, PGP.
-
-2005-10-09 - libetpan-0.40cvs4 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    Try to finish handshaking when 
-	    possible with gnutls.
-
-2005-10-09 - libetpan-0.40cvs3 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    fixed deadlock on the mutex
-
-2005-10-09 - libetpan-0.40cvs2 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    fixed compilation with GnuTLS
-
-2005-10-09 - libetpan-0.40cvs1 - hoa
-
-	* configure.in
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mailstream_ssl.h
-	    avoid symbols conflicts between OpenSSL and GnuTLS.
-	    Thanks to Colin Leroy.
-
-2005-10-07 - libetpan-0.40 - hoa
-
-	* release 0.40 - Kashmir
-	    SSL initialization is optional.
-
-2005-10-06 - libetpan-0.39cvs2 - hoa
-
-	* src/Makefile.in
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	    fixed compilation on Solaris.
-
-2005-10-02 - libetpan-0.39cvs1 - hoa
-
-	* src/data-types/mailstream_low.c
-	* src/data-types/mailstream_ssl.[ch]
-	* src/low-level/imap/mailimap_ssl.c
-	* src/low-level/nntp/newsnntp_ssl.c
-	* src/low-level/pop3/mailpop3_ssl.c
-	* src/low-level/smtp/mailsmtp_ssl.c
-	* tests/frm.c
-	    SSL initialization is optional
-		fixed SSL port
-		fixed warning in tests
-
-2005-09-16 - libetpan-0.39 - hoa
-
-	* release 0.39 - Deliverance
-	    compatibility with GnuTLS
-		SASL for higher level
-
-2005-09-12 - libetpan-0.38cvs5 - colin
-
-	* src/data-types/mailstream_ssl.c
-	    fixed compatibility with GnuTLS.
-
-2005-08-17 - libetpan-0.38cvs4 - hoa
-
-	* src/engine/mailprivacy_smime.c
-	    fixed crash when a S/MIME 2 signed message does not verify.
-
-2005-08-14 - libetpan-0.38cvs3 - hoa
-
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_types.h
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/imap/imapstorage.h
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_types.h
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/driver/implementation/pop3/pop3storage.h
-	* src/driver/interface/maildriver.c
-	* src/driver/interface/maildriver.h
-	* src/driver/interface/maildriver_types.h
-	* src/driver/interface/mailstorage_tools.c
-	* src/driver/interface/mailstorage_tools.h
-	    implemented SASL at higher level API.
-
-	* src/engine/mailprivacy_smime.c
-	    support for Outlook signed messages.
-
-2005-08-13 - libetpan-0.38cvs2 - hoa
-
-	* src/data-types/mailstream.c
-	* src/data-types/mailstream_socket.c
-	* src/data-types/mailstream_ssl.c
-	* src/driver/implementation/data-message/data_message_driver.c
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/db/dbdriver_message.c
-	* src/driver/implementation/db/dbstorage.c
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	* src/driver/implementation/imap/imapdriver_message.c
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/maildir/maildirstorage.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mbox/mboxstorage.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_message.c
-	* src/driver/implementation/mh/mhstorage.c
-	* src/driver/implementation/mime-message/mime_message_driver.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver_cached_message.c
-	* src/driver/implementation/nntp/nntpdriver_message.c
-	* src/driver/implementation/nntp/nntpstorage.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_cached_message.c
-	* src/driver/implementation/pop3/pop3driver_message.c
-	* src/driver/implementation/pop3/pop3storage.c
-	* src/driver/interface/mailstorage_tools.c
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	    fixed build on Solaris.
-	    Thanks to Alex S. Moore.
-
-2005-08-13 - libetpan-0.38cvs1 - hoa
-
-	* src/low-level/mbox/mailmbox.c
-	    switched from LF to CRLF.
-	    Thanks to Alfons Hoogervorst.
-
-2005-07-20 - libetpan-0.38 - hoa
-
-    * release 0.38 - Deadwing
-
-	* fixed SSL
-	* IMAP improvements
-	* SASL
-
-2005-07-18 - libetpan-0.37cvs6 - hoa
-
-	* src/low-level/imap/mailimap_sender.c
-	    atom is not quoted for now when a dash is to be sent
-	   (workaround a problem in old Courier and old DoveCot IMAP servers)
-
-2005-07-16 - libetpan-0.37cvs5 - hoa
-
-	* configure.in
-	* libetpan-config.in
-	* src/data-types/Makefile
-	* src/low-level/imap/mailimap.[ch]
-	* src/low-level/imap/mailimap_sender.[ch]
-	* src/low-level/imap/mailimap_types.h
-	* src/low-level/pop3/mailpop3.[ch]
-	* src/low-level/pop3/mailpop3_types.h
-	* src/low-level/smtp/mailsmtp.[ch]
-	* src/low-level/smtp/mailsmtp_types.h
-	* src/data-types/mailsasl.[ch]            ** NEW FILES **
-	    implemented SASL.
-
-	* src/low-level/imap/mailimap_parser.c
-	    fixed IMAP parser.
-
-2005-07-15 - libetpan-0.37cvs4 - hoa
-
-	* configure.in
-	* src/data-types/mailstream_low.c
-	    fixed version number. fixed custom logger.
-
-2005-07-15 - libetpan-0.37cvs3 - hoa
-
-	* src/data-types/mailstream.h
-	* src/data-types/mailstream_low.c
-	    changed API for custom logger (added direction of stream).
-
-2005-07-15 - libetpan-0.37cvs2 - hoa
-
-	* src/data-types/mailstream.h
-	* src/data-types/mailstream_low.c
-	    added a custom logger for applications.
-
-2005-07-15 - libetpan-0.37cvs1 - hoa
-
-	* src/data-types/mailstream_ssl.c
-	    fixed SSL write, thanks to Stephan Holl, Colin Leroy
-
-2005-07-03 - libetpan-0.37 - hoa
-
-    * release 0.37 - Deadwing
-
-	* windows port
-	* fixed IMAP implementation (for sylpheed)
-
-2005-06-28 - libetpan-0.36cvs18 - hoa
-
-	* src/low-level/imap/mailimap_sender.c
-	    fixed storage of flags.
-
-2005-06-19 - libetpan-0.36cvs17 - hoa
-
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	    fixed double fclose(). Thanks to Nyoxi.
-
-2005-06-13 - libetpan-0.36cvs16 - hoa
-
-	* src/engine/mailengine.c
-	    fixed thread safety for reference count.
-
-	* src/low-level/mh/mailmh.c
-	    fixed MH (addition of messages).
-
-2005-06-01 - libetpan-0.36cvs15 - hoa
-
-	* libetpan-config.h.in
-	* src/data-types/maillock.c
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/interface/maildriver_tools.c
-	* src/driver/tools/generic_cache.c
-	* src/low-level/imap/mailimap_types.h
-	* src/low-level/imf/mailimf_types.h
-	* src/low-level/imf/mailimf_types_helper.c
-	* src/low-level/maildir/maildir_types.h
-	* src/low-level/mh/mailmh.h
-	* src/low-level/mime/mailmime_types_helper.c
-	* src/low-level/mime/mailmime_write_generic.c
-	* src/low-level/nntp/newsnntp_types.h
-	* src/low-level/pop3/mailpop3_types.h
-	* src/low-level/smtp/mailsmtp_socket.h
-	* src/low-level/smtp/mailsmtp_types.h
-	* src/windows/win_etpan.h
-	* src/windows/wsocket.cpp
-	    fixed linux build.
-
-2005-06-01 - libetpan-0.36cvs14 - hoa
-
-	* src/data-types/mail_cache_db.c
-	* src/driver/implementation/db/dbdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_tools.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/tools/generic_cache.c
-	* src/driver/tools/imfcache.c
-	* src/engine/mailprivacy.c
-	* src/engine/mailprivacy_smime.c
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/imap/mailimap_sender.c
-	* src/low-level/imf/mailimf.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mime/mailmime.c
-	* src/low-level/mime/mailmime_decode.c
-	* src/low-level/mime/mailmime_disposition.c
-	* src/low-level/nntp/newsnntp.c
-	* src/low-level/pop3/mailpop3.c
-	* src/low-level/smtp/mailsmtp.c
-	    fixed gcc 4.0 warnings.
-
-2005-06-01 - libetpan-0.36cvs13 - hoa
-
-	* src/data-types/maillock.c
-	* src/data-types/mailstream_socket.c
-	    fixed some warnings.
-
-2005-06-01 - libetpan-0.36cvs12 - smarinier
-
-	* most files
-	    Windows port
-
-2005-05-27 - libetpan-0.36cvs11 - hoa
-
-	* src/data-types/chash.c
-	    don't use tables of size 0.
-	
-	* src/data-types/mailsem.c
-	    includes missing header.
-	
-	* src/engine/mailprivacy_smime.c
-	    insert part even if decoding failed.
-
-2005-05-22 - libetpan-0.36cvs10 - g_roualland
-
-	* configure.in
-	* Makefile.in
-	    change the way libetpan-config.h is generated to cope with 
-	    cross compilers and external build directories. 
-
-2005-05-19 - libetpan-0.36cvs9 - hoa
-
-	* src/driver/interface/mailfolder.c
-	    reconnect on POP3 fetch of message list.
-
-	* src/low-level/pop3/mailpop3.c
-	    fixed crash on mailpop3_quit() in case
-	    of bad state.
-
-2005-04-25 - libetpan-0.36cvs8 - hoa
-
-	* src/data-types/mail_cache_db.c
-	    fixed test of error codes.
-
-2005-04-18 - libetpan-0.36cvs7 - hoa
-
-	* src/data-types/carray.c
-	    don't allow zero-sized array.
-	    That will avoid infinite loops.
-
-2005-04-12 - libetpan-0.36cvs6 - hoa
-
-	* src/data-types/mailsem.c
-	    use unique implementation of semaphore.
-
-2005-04-08 - libetpan-0.36cvs5 - hoa
-
-	* src/data-types/mail_cache_db.c
-	    fixed test of error codes.
-
-2005-04-07 - libetpan-0.36cvs5 - hoa
-
-	* autogen.sh
-	    support for Mac OS X
-	
-	* src/data-types/charconv.c
-	    fixed error code.
-	
-	* src/data-types/mail_cache_db.c
-	* src/data-types/mail_cache_db.h
-	    added function to retrieve the list of keys.
-	
-	* src/data-types/mailsem.c
-	    fixed semaphore.
-	
-	* src/driver/tools/mailthread.c
-	    made mailthread thread safe.
-
-2005-03-12 - libetpan-0.36cvs4 - hoa
-
-	* configure.in
-	* src/Makefile.in
-	* src/data-types/mailstream_ssl.c
-	    support for GNUTLS.
-	    Thanks from Rajko Albrecht.
-	
-	* src/data-types/mailsem.c
-	    disable semaphore when reentrant support is disabled.
-	    Thanks from Rajko Albrecht.
-	
-	* src/driver/implementation/imap/imapdriver_cached.c
-	    fixed false error in cached IMAP driver.
-
-2005-03-04 - libetpan-0.36cvs3 - hoa
-
-	* src/data-types/mail_cache_db.c
-	    reorder unlock() and close()
-	
-	* src/data-types/mailsem.c
-	    implements properly the semaphore.
-
-2005-02-28 - libetpan-0.36cvs2 - hoa
-
-	* Rules.in
-	    fixed build when the exported header list is empty.
-	    Thanks to Alfons Hoogervorst.
-	
-	* doc/README.sgml
-	    removed version numbers.
-
-2005-02-28 - libetpan-0.36cvs1 - g_roualland
-
-	* src/data-types/mail_cache_db.c
-	    fix DB cursor call when running on db2 < 2.6
-	    Thanks to Alfons Hoogervorst.
-
-2005-02-22 - libetpan-0.36 - hoa
-
-    * release 0.36 - Silver Drop
-
-        * memory leak
-        * fixed maildir support
-
-2005-02-17 - libetpan-0.35cvs4 - hoa
-
-	* src/engine/mailprivacy.c
-	    does not check for owner of the folder:
-	    this is the responsibility of the application.
-
-2005-01-31 - libetpan-0.35cvs3 - hoa
-
-	* src/data-types/mmapstring.c
-	* src/engine/mailengine.c
-	    reverted to initial in code in non-debug mode.
-	    fixed thread safety.
-
-2005-01-29 - libetpan-0.35cvs2 - hoa
-
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/low-level/mime/mailmime_types.c
-	    fixed some memory leaks.
-
-2005-01-28 - libetpan-0.35cvs1 - hoa
-
-	* src/data-types/mailsem.c
-	    support for Cygwin.
-	
-	* src/driver/implementation/db/dbdriver.c
-	    removed a log.
-	
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/engine/mailengine.c
-	    fixed some memory leaks.
-	
-	* src/engine/mailprivacy_tools.c
-	    internal version of basename() can be used.
-	
-	* src/low-level/maildir/maildir.c
-	    fixed update of Maildir mailbox.
-	
-	* src/low-level/pop3/mailpop3.[ch]
-	    fixed data types to non-fixed size integers.
-
-2004-12-28 - libetpan-0.35 - hoa
-
-    * release 0.35 - Dimebag Darrell
-
-	* minor bugfixes.
-
-2004-12-27 - libetpan-0.34cvs8 - hoa
-
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_smime.c
-	    fixed syntax error.
-
-	* src/low-level/maildir/maildir.c
-	    avoid stat() on maildir files.
-
-	* src/main/libetpan.h
-	    enabled hotmailstorage.
-
-2004-12-13 - libetpan-0.34cvs7 - hoa
-
-	* src/driver/implementation/mime-message/mime_message_driver.[ch]
-	    MIME message driver will no more need temporary files.
-
-2004-12-13 - libetpan-0.34cvs6 - hoa
-
-	* src/low-level/mime/mailmime_content.c
-	    fixed MIME parser. MIME parts does not include
-	    the boundary CR LF.
-
-2004-12-12 - libetpan-0.34cvs5 - hoa
-
-	* src/data-types/mail_cache_db.c
-	* src/driver/implementation/db/dbdriver.c
-	    fixed data types and uninitialized variable.
-
-	* src/driver/implementation/maildir/maildirdriver_tools.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	* src/driver/interface/maildriver_errors.h
-	* src/low-level/imap/mailimap_parser.c
-	* src/low-level/maildir/maildir.c
-	* src/low-level/maildir/maildir_types.h
-	* src/low-level/mh/mailmh.c
-	    now use rename() when link() is not available.
-	    Thanks to Lutz Rogowski.
-	
-	* src/low-level/mime/mailmime_decode.c
-	    fixed a memory leak. Thanks to Lutz Rogowski.
-
-2004-11-14 - libetpan-0.34cvs4 - hoa
-
-	* src/low-level/mime/mailmime_content.c
-	    fixed MIME parser.
-	    Problem appeared when there when a boundary identifier
-	    was prefix of an other boundary identifier (1065539).
-
-2004-11-14 - libetpan-0.34cvs3 - hoa
-
-	* src/low-level/maildir/maildir.c
-	    maildir_update() now creates an empty file named maildirfolder.
-
-2004-11-14 - libetpan-0.34cvs2 - hoa
-
-	* src/data-types/maillock.c
-	    fixed locks when using liblockfile.
-
-2004-11-13 - libetpan-0.34cvs1 - hoa
-
-	* src/data-types/maillock.c
-	    fixed locks when using liblockfile.
-	
-	* src/data-types/mmapstring.c
-	    additional checks.
-	   
-	* src/driver/interface/maildriver_errors.h
-	    clean up of code.
-	
-	* src/low-level/imf/Makefile
-	* src/low-level/imf/mailimf.h
-	* src/low-level/imf/mailimf_write_file.[ch]   ** NEW FILES **
-	* src/low-level/imf/mailimf_write_mem.[ch]    ** NEW FILES **
-	* src/low-level/mime/Makefile
-	* src/low-level/mime/mailmime.h
-	* src/low-level/mime/mailmime_write_file.[ch] ** NEW FILES **
-	* src/low-level/mime/mailmime_write_mem.[ch]  ** NEW FILES **
-	    messages can be rendered into a MMAPString.
-
-2004-11-04 - libetpan-0.34 - hoa
-
-    * release 0.34 - edge
-
-	    * general
-			- support for debian systems mbox
-			- ability to disable thread-safe support
-
-2004-11-04 - libetpan-0.33cvs7 - hoa
-
-	* src/data-types/mailstream.c
-	* src/data-types/mailstream_helper.[ch]
-	* src/data-types/mailstream_low.c
-	    debug logs are just before low-level.
-	    helper functions to send multi-lines data.
-	
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	    limit requests to imap server (compatibility with iPlanet).
-	
-	* src/low-level/imap/mailimap.c
-	* src/low-level/imap/mailimap_sender.c
-	    fixed send of literal, add proper CR LF 
-	    (compatibility with Cyrus).
-	
-	* src/low-level/mh/mailmh.h
-	    removed reference to deprecated cinthash
-	
-	* src/low-level/nntp/newsnntp.h
-	    removed inexistant function in header.
-
-2004-10-17 - libetpan-0.33cvs6 - g_roualland
-
-	* configure.in
-	    Add a "--disable-threads" option to compile without pthread.
-	    In that case the library is named as "libetpan-no-mt".
-	    Added a LIBETPAN_REENTRANT define which is true if multithreading
-	    is available.
-	    Added pthread avaibility detection.
-
-	* libetpan-config.in
-	* src/Makefile.in
-	    update to include thread options and the correct name for the
-	    library. fix make clean to remove libs
-	
-	* src/main/libetpan-version.h.in
-	    define LIBETPAN_REENTRANT if the library was compiled as
-	    reentrant.
-
-	* src/data-types/mailstream_ssl.c
-	* src/data-types/mmapstring.c
-	* src/engine/mailengine.c
-	    do not include pthread calls if not reentrant.
-
-2004-10-17 - libetpan-0.33cvs5 - hoa
-
-	* Makefile.in
-	* Rules.in
-	    fixed precopy of headers.
-	
-	* src/low-level/mbox/mailmbox.c
-	    fixed write of mailbox files on debian systems.
-	
-	* src/low-level/mime/mailmime_write.c
-	    fixed a bug. Thanks to Melvin.
-
-2004-09-29 - libetpan-0.33cvs4 - hoa
-
-	* configure.in
-	* src/data-types/maillock.c
-	* src/low-level/mbox/mailmbox.c
-	    support for mailboxes on debian systems.
-
-2004-09-03 - libetpan-0.33cvs3 - hoa
-
-	* src/engine/mailengine.c
-	    can remove storage or folder twice.
-
-2004-09-02 - libetpan-0.33cvs2 - hoa
-
-	* src/driver/interface/maildriver_errors.h
-	* src/driver/tools/mailthread.[ch]
-	* src/driver/tools/mailthread_types.h
-	    can build a tree of messages without message threading
-	
-	* src/data-types/mailsem.[ch]
-	    added semaphore
-
-
-2004-08-28 - libetpan-0.33cvs1 - hoa
-
-	* src/driver/implementation/mh/mhdriver_tools.c
-            fixed the workaround MH mailboxes with messages
-            containing 'From ' header.
-		
-
-2004-08-24 - libetpan-0.33 - hoa
-
-    * release 0.33 - entropia
-
-	    * general
-			- bugfixes in IMAP module and mailstream
-			- fixed low-level data structures
-			- better support for ARM and PPC architecture
-			- support for cross-compilation
-			- fixed Berkeley DB support
-			- changed folder structure of libetpan package
-			- can now add a message to a mailbox with flags
-			- support for hotmail mailboxes (with help of hotwayd)
-			- added Berkeley DB mail storage as experimental
-			- added support for PGP and S/MIME
-			- better folder API
-
-
-2004-08-22 - libetpan-0.32cvs18 - hoa
-
-	* Makefile.in
-	* Rules.in
-	* src/main/libetpan.h
-	    Fixed header inclusion.
-	    Fixed installation of headers.
-
-2004-08-22 - libetpan-0.32cvs17 - hoa
-
-	* Makefile.in
-	* autogen.sh
-	* configure.in
-	* src/Makefile.in
-	* src/main/libetpan.h
-	    Better detection of iconv.
-	    Some fixes in build process.
-	    Documentation is generated at prepackaging.
-	    Engine added to build process.
-	
-	* doc/API.sgml
-	* doc/Makefile
-	* doc/README.sgml
-	    Updated documentation
-	
-	* src/data-types/charconv.c
-	    Better detection of iconv.
-	    
-	* src/data-types/mail_cache_db.c
-	    Fixed db wrapper.
-	    
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver_cached_message.c
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mbox/mboxdriver_tools.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/mh/mhdriver_cached_message.c
-	* src/driver/implementation/mh/mhdriver_message.c
-	* src/driver/implementation/mh/mhdriver_tools.c
-	    Fixed format of UID, in several drivers.
-	    
-	* src/driver/interface/mailfolder.c
-	* src/driver/interface/mailfolder.h
-	* src/driver/interface/mailstorage.c
-	* src/driver/interface/mailstorage.h
-	    we can now append messages with their flags.
-	    
-	* src/engine/Makefile
-	* src/engine/mailengine.c
-	* src/engine/mailengine.h
-	* src/engine/mailprivacy.h
-	* src/engine/mailprivacy_gnupg.c
-	* src/engine/mailprivacy_gnupg.h
-	* src/engine/mailprivacy_smime.c
-	* src/engine/mailprivacy_smime.h
-	* src/engine/mailprivacy_tools.c
-	* src/engine/mailprivacy_tools.h
-	* src/engine/mailprivacy_types.h
-	* src/low-level/imap/mailimap_keywords.c
-	* src/low-level/mbox/mailmbox.c
-	* src/low-level/mime/mailmime_write.c
-	    remove hash global to storage to find folder of messages
-	
-2004-07-28 - libetpan-0.32cvs16 - g_roualland
-
-	* acconfig.h					* REMOVED FILE *
-	* configure.in
-	    Convert old, deprecated autoconf defines to 2.5 like.
-
-	* Makefile.in
-	    Do not look for acconfig.h, remove autoconf cache on clean.
-
-	* src/Makefile.in
-	    Make sure "make clean" works even when the library was not built.
-
-	* Makefile.in
-	* Rules.in
-	* src/Makefile.in
-	    Support for DESTDIR to install in another root.
-	    Patch from Rajko Albrecht <ral@alwins-world.de>
-
-	* src/driver/implementation/imap/imapdriver_cached_message.c
-	    Fix a GCC 3.4 compiling issue with labels.
-	    Patch from Rajko Albrecht <ral@alwins-world.de>
-
-2004-05-23 - libetpan-0.32cvs15 - hoa
-
-	* Makefile.in
-	* Rules.in
-	    fixed building and installing.
-	    
-	* configure.in
-	    improved support for Berkeley DB
-	    (thanks to Nikita V. Youshchenko).
-	
-	* doc/README.sgml
-	    updated documentation.
-	
-	* src/data-types/mail_cache_db.[ch]
-	    added function to get size of a given item.
-	
-	* src/data-types/mailstream_helper.c
-	    fixed a crash when sending of data.
-	
-	* src/driver/implementation/Makefile
-	* src/driver/implementation/imap/imapstorage.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mbox/mboxstorage.c
-	* src/driver/implementation/mh/mhstorage.c
-	* src/driver/implementation/nntp/nntpstorage.c
-	    code cleanup.	
-	    
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/implementation/pop3/pop3driver_message.c
-	* src/driver/implementation/pop3/pop3storage.c
-	   implemented get_message_by_uid()
-	   (Thanks to Toni Willberg).
-	   
-	* src/driver/implementation/maildir/maildirdriver_cached_message.c
-	* src/driver/implementation/maildir/maildirdriver_message.c
-	* src/driver/implementation/maildir/maildirstorage.[ch]
-	    implemented get_flags().
-
-	* src/main/libetpan.h
-	* src/driver/implementation/db/Makefile               ** NEW FILE **
-	* src/driver/implementation/db/dbdriver.[ch]          ** NEW FILES **
-	* src/driver/implementation/db/dbdriver_message.[ch]  ** NEW FILES **
-	* src/driver/implementation/db/dbdriver_types.h       ** NEW FILE **
-	* src/driver/implementation/db/dbstorage.[ch]         ** NEW FILES **
-	    added mail DB driver (using a Berkeley DB storage).
-	
-	* hotmail/Makefile                                    ** NEW FILE **
-	* hotmail/hotmailstorage.[ch]                         ** NEW FILES **
-	    added support for hotmail (using hotwayd and POP3 driver)
-	
-	* tests/Makefile
-	* tests/readmsg-uid.c                                 ** NEW FILE **
-	    added example for get_message_by_uid()
-
-2004-05-04 - libetpan-0.32cvs14 - hoa
-
-	* src/driver/implementation/imap/imapdriver.c
-	* src/driver/implementation/imap/imapdriver_cached.c
-	* src/driver/implementation/imap/imapdriver_tools.[ch]
-	* src/driver/implementation/maildir/maildirdriver.c
-	* src/driver/implementation/maildir/maildirdriver_cached.c
-	* src/driver/implementation/mbox/mboxdriver.c
-	* src/driver/implementation/mbox/mboxdriver_cached.c
-	* src/driver/implementation/mh/mhdriver.c
-	* src/driver/implementation/mh/mhdriver_cached.c
-	* src/driver/implementation/nntp/nntpdriver.c
-	* src/driver/implementation/nntp/nntpdriver_cached.c
-	* src/driver/implementation/pop3/pop3driver.c
-	* src/driver/implementation/pop3/pop3driver_cached.c
-	* src/driver/interface/maildriver.[ch]
-	* src/driver/interface/maildriver_types.h
-	    mailsession_append_message_flags() adds a message
-	    in a mailbox with its flags. It is implemented in
-	    IMAP, mbox, maildir and MH drivers.
-	
-	* src/low-level/maildir/maildir.[ch]
-	* src/low-level/mbox/mailmbox.[ch]
-	* src/low-level/mbox/mailmbox_types.[ch]
-	* src/low-level/mh/mailmh.[ch]
-	    get identifier of the message when we add a message
-	    in a mailbox.
-
-2004-05-02 - libetpan-0.32cvs13 - hoa
-
-	* Makefile.in
-	* Rules.in
-	* configure.in
-	* src/Makefile.in                                    * NEW FILES *
-	* src/data-types/Makefile
-	* src/data-types/mmapstring.c
-	* src/driver/Makefile
-	* src/driver/implementation/Makefile                 * NEW FILES *
-	* src/driver/implementation/data-message/Makefile    * NEW FILES *
-	* src/driver/implementation/imap/Makefile            * NEW FILES *
-	* src/driver/implementation/maildir/Makefile         * NEW FILES *
-	* src/driver/implementation/mbox/Makefile            * NEW FILES *
-	* src/driver/implementation/mbox/mboxdriver_message.c
-	* src/driver/implementation/mh/Makefile              * NEW FILES *
-	* src/driver/implementation/mime-message/Makefile    * NEW FILES *
-	* src/driver/implementation/nntp/Makefile            * NEW FILES *
-	* src/driver/implementation/pop3/Makefile            * NEW FILES *
-	* src/driver/interface/Makefile                      * NEW FILES *
-	* src/driver/tools/Makefile                          * NEW FILES *
-	* src/engine/Makefile                                * NEW FILES *
-	* src/engine/mailengine.[ch]                         * NEW FILES *
-	* src/engine/mailprivacy.[ch]                        * NEW FILES *
-	* src/engine/mailprivacy_gnupg.[ch]                  * NEW FILES *
-	* src/engine/mailprivacy_smime.[ch]                  * NEW FILES *
-	* src/engine/mailprivacy_tools.[ch]                  * NEW FILES *
-	* src/engine/mailprivacy_types.h                     * NEW FILES *
-	* src/low-level/Makefile                             * NEW FILES *
-	* src/low-level/imap/Makefile
-	* src/low-level/imf/Makefile
-	* src/low-level/imf/mailimf.c
-	* src/low-level/maildir/Makefile
-	* src/low-level/mbox/Makefile
-	* src/low-level/mh/Makefile
-	* src/low-level/mime/Makefile
-	* src/low-level/nntp/Makefile
-	* src/low-level/pop3/Makefile
-	* src/low-level/smtp/Makefile
-	* src/main/Makefile                                  * NEW FILES *
-	    changed folders structure
-
-2004-03-23 - libetpan-0.32cvs12 - hoa
-
-	* tools/mmapstring.c
-	    fixed a bug when initializing a string of size 0.
-	    That lead to a bug when fetching a part of size 0.
-
-2004-03-13 - libetpan-0.32cvs11 - hoa
-
-	* tools/mailstream_socket.c
-	    revert of previous commit (this is not POSIX).
-
-2004-03-13 - libetpan-0.32cvs10 - hoa
-
-	* tools/mailstream_socket.c
-	    socket failures send no more signals.
-	
-2004-03-13 - libetpan-0.32cvs9 - hoa
-
-	* mime/mailmime_decode.c
-	    better checks in mailmime_encoded_phrase_decode()
-	    Thanks to Frederic Devernay
-
-2004-03-13 - libetpan-0.32cvs8 - g_roualland
-
-	* smtp/mailsmtp_helper.c
-	    Fix esmtp status corruption in mailesmtp_init.
-	    Patch from Rajko Albrecht <ral@alwins-world.de>)
-
-	* smtp/mailsmtp.c
-	    Make sure to reset esmtp status on HELO.
-
-2004-03-03 - libetpan-0.32cvs7 - hoa
-
-	* configure.in
-	* imap/mailimap.c
-	* tools/charconv.c
-	    possibility to disable iconv. Fixed some leaks.
-	    Thanks to Frederic Devernay.
-	
-	* tools/mailstream_socket.c
-	* mime/mailmime_decode.c
-	    some support for broken architecture such as ARM.
-	    Thanks to Rajko Albrecht.
-
-2004-02-28 - libetpan-0.32cvs6 - hoa
-
-	* tools/mail_cache_db.c
-	    read/write cache database when support for Berkeley DB 1.x
-	    is enabled (this fix a bug where the database was readonly).
-
-2004-01-23 - libetpan-0.32cvs5 - melvin
-
-	* libetpan-config.h.in
-	    Better support for ARM: include both limits.h and sys/params.h
-	    if both are available. ARM requires this.
-	    Patch from Rajko Albrecht <ral@alwins-world.de>.
-
-2004-01-20 - libetpan-0.32cvs4 - melvin
-
-	* imap/mailimap_types.h
-	* imap/mailimap_types.c
-	* imap/mailimap_print.c
-	    Fixed concurrent usage of two members of the same union
-	    that resulted in double memory free after parsing some IMAP 
-	    responses (as in ...[APPENDUID VID UID])
-	* generic/mailmessage_types.c
-	* generic/mailstorage_tools.c
-	* tools/maillock.c
-	    Added <string.h> header
-	* tools/connect.c
-	* tools/mail_cache_db.c
-	    Added <unistd.h> header
-
-2004-01-12 - libetpan-0.32cvs3 - hoa
-
-	* configure.in
-	    detection of Berkeley DB can be disabled.
-	
-	* doc/API.sgml
-	* doc/Makefile
-	* doc/README.sgml
-	    updated documentation
-	
-	* generic/Makefile
-	* generic/mailstorage_tools.c
-	* generic/mailfolder.[ch]                * NEW FILES *
-	    destroy the unused file descriptors.
-	    folder API.
-	
-	* mime/mailmime_content.c
-	    fixed a problem in MIME parser on architectures where
-	    char is unsigned.
-	
-	* tools/connect.c
-	    destroy the unused file descriptors.
-
-2004-01-07 - libetpan-0.32cvs2 - g_roualland
-
-	* smtp/mailsmtp.c
-	* smtp/mailsmtp.h
-	* smtp/mailsmtp_types.h
-	    added full parsing of ehlo answer to detect esmtp extensions
-	    added mailsmtp_starttls() command.
-	
-	* smtp/mailsmtp_socket.c
-	* smtp/mailsmtp_socket.h
-	    added mailsmtp_socket_starttls to switch a connected
-	    ESMTP session under a TLS layer.
-
-	* tests/smtpsend.c
-	    updated to make use of starttls and esmtp extensions.
-
-2003-12-23 - libetpan-0.32cvs1 - hoa
-
-	* imap/mailimap_types.c
-	    fixed a crash related to capabilities.
-
-2003-12-16 - libetpan-0.32 - hoa
-
-	* release 0.32 - Black Utopia
-
-	* general
-	    - added documentation for IMF / tools
-	    - bugfixes in IMAP module due to structures change.
-	    - Application that use libEtPan! now have to use
-	        '#include <libetpan/libetpan.h>'
-
-	* generic    
-	    - get_message() is implemented in Maildir cached driver.
-
-2003-12-15 - libetpan-0.31cvs7 - hoa
-
-	* Makefile.in
-	* Rules.in
-	    fixed dependencies in Makefiles.
-
-2003-12-15 - libetpan-0.31cvs6 - hoa
-
-	* Makefile.in
-	    "make clean" does no more delete install include directory.
-
-2003-12-15 - libetpan-0.31cvs5 - hoa
-
-	* Makefile.in
-	    some cleanup.
-	
-	* libetpan-config.h.in            * NEW FILE *
-	    added missing file.
-	
-	* generic/maildirdriver.c
-	    added get_message_by_uid()
-	
-	* generic/maildirdriver_cached.c
-	    added get_message_by_uid() and get_message()
-	    index for the message is persistant in cached driver.
-	
-	* libetpan-config.in
-	    don't add -I/usr/include if /usr is the prefix.
-
-2003-12-15 - libetpan-0.31cvs4 - hoa
-
-	* Makefile.in
-	    some cleanup.
-	
-	* libetpan-config.h.in            * NEW FILE *
-	    added missing file.
-	
-	* generic/maildirdriver.c
-	    added get_message_by_uid()
-	
-	* generic/maildirdriver_cached.c
-	    added get_message_by_uid() and get_message()
-	    index for the message is persistant in cached driver.
-	
-	* libetpan-config.in
-	    don't add -I/usr/include if /usr is the prefix.
-
-2003-12-15 - libetpan-0.31cvs4 - hoa
-
-	* Makefile.in
-	* Rules.in
-	* configure.in
-	* libetpan-config.in
-	* generic/Makefile
-	* generic/data_message_driver.[ch]
-	* generic/generic_cache.c
-	* generic/generic_cache_types.h
-	* generic/imapdriver.[ch]
-	* generic/imapdriver_cached.[ch]
-	* generic/imapdriver_cached_message.h
-	* generic/imapdriver_message.h
-	* generic/imapdriver_tools.c
-	* generic/imapdriver_types.h
-	* generic/imapstorage.[ch]
-	* generic/libetpan.h
-	* generic/maildirdriver.h
-	* generic/maildirdriver_cached.[ch]
-	* generic/maildirdriver_cached_message.h
-	* generic/maildirdriver_message.h
-	* generic/maildirdriver_types.h
-	* generic/maildirstorage.[ch]
-	* generic/maildriver.h
-	* generic/maildriver_tools.c
-	* generic/maildriver_types.h
-	* generic/maildriver_types_helper.[ch]
-	* generic/mailmessage.[ch]
-	* generic/mailmessage_types.[ch]
-	* generic/mailstorage.h
-	* generic/mailstorage_tools.[ch]
-	* generic/mailthread.[ch]
-	* generic/mailthread_types.[ch]
-	* generic/mboxdriver.[ch]
-	* generic/mboxdriver_cached.[ch]
-	* generic/mboxdriver_cached_message.h
-	* generic/mboxdriver_message.h
-	* generic/mboxdriver_types.h
-	* generic/mboxstorage.[ch]
-	* generic/mhdriver.h
-	* generic/mhdriver_cached.[ch]
-	* generic/mhdriver_cached_message.h
-	* generic/mhdriver_message.h
-	* generic/mhdriver_types.h
-	* generic/mhstorage.[ch]
-	* generic/mime_message_driver.[ch]
-	* generic/nntpdriver.[ch]
-	* generic/nntpdriver_cached.[ch]
-	* generic/nntpdriver_cached_message.h
-	* generic/nntpdriver_message.h
-	* generic/nntpdriver_tools.c
-	* generic/nntpdriver_types.h
-	* generic/nntpstorage.[ch]
-	* generic/pop3driver.h
-	* generic/pop3driver_cached.[ch]
-	* generic/pop3driver_cached_message.h
-	* generic/pop3driver_message.h
-	* generic/pop3driver_types.h
-	* generic/pop3storage.[ch]
-	* imap/mailimap.[ch]
-	* imap/mailimap_helper.h
-	* imap/mailimap_parser.c
-	* imap/mailimap_sender.c
-	* imap/mailimap_socket.h
-	* imap/mailimap_ssl.h
-	* imap/mailimap_types.[ch]
-	* imap/mailimap_types_helper.[ch]
-	* imf/mailimf.h
-	* imf/mailimf_types.h
-	* imf/mailimf_types_helper.h
-	* imf/mailimf_write.h
-	* maildir/maildir.[ch]
-	* maildir/maildir_types.h
-	* mbox/mailmbox.c
-	* mbox/mailmbox.h
-	* mbox/mailmbox_types.h
-	* mh/mailmh.[ch]
-	* mime/mailmime.h
-	* mime/mailmime_content.h
-	* mime/mailmime_decode.h
-	* mime/mailmime_disposition.h
-	* mime/mailmime_types.h
-	* mime/mailmime_types_helper.h
-	* mime/mailmime_write.h
-	* nntp/newsnntp.h
-	* nntp/newsnntp_socket.h
-	* nntp/newsnntp_ssl.h
-	* nntp/newsnntp_types.h
-	* pop3/mailpop3.h
-	* pop3/mailpop3_socket.h
-	* pop3/mailpop3_ssl.h
-	* pop3/mailpop3_types.h
-	* smtp/mailsmtp.[ch]
-	* smtp/mailsmtp_helper.c
-	* smtp/mailsmtp_socket.h
-	* smtp/mailsmtp_ssl.h
-	* smtp/mailsmtp_types.h
-	* tests/compose-msg.c
-	* tests/fetch-attachment.c
-	* tests/frm-common.[ch]
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/option-parser.[ch]
-	* tests/readmsg-common.[ch]
-	* tests/readmsg-simple.c
-	* tests/readmsg.c
-	* tests/smtpsend.c
-	* tools/Makefile
-	* tools/carray.h
-	* tools/mail.h
-	* tools/mail_cache_db.c
-	* tools/maillock.c
-	* tools/mailstream.h
-	* tools/mailstream_helper.[ch]
-	* tools/mailstream_low.h
-	* tools/mailstream_socket.h
-	* tools/mailstream_ssl.h
-	* tools/mailstream_types.h
-	* tools/mmapstring.c
-	    fixed some dependencies.
-	    Application that use libEtPan! now have to use
-	    '#include <libetpan/libetpan.h>'
-	    #include <libetpan.h> still exists for backward compatibility.
-	    API version (with libtool) has been introduced.
-
-2003-12-14 - libetpan-0.31cvs3 - hoa
-
-	* Makefile.in
-	    fixed dependencies.
-	
-	* generic/maildriver_tools.c
-	* generic/mailstorage_tools.c
-	    added missing includes.
-	
-	* imf/mailimf_types.h
-	    fixed documentation.
-
-2003-12-11 - libetpan-0.31cvs2 - hoa
-
-	* tools/carray.h
-	    fixed prototype of non-macro version.
-
-2003-12-11 - libetpan-0.31cvs1 - hoa
-
-	* configure.in
-	* imap/mailimap_helper.c
-	* imap/mailimap_parser.c
-	* imap/mailimap_print.c
-	* imap/mailimap_sender.c
-	* imap/mailimap_types.[ch]
-	    now sends empty astring as "".
-	    fixed a problem when fetching RFC822[.XXX] parts.
-	    fixed a problem with mailbox flags.
-
-2003-12-10 - libetpan-0.31 - hoa
-
-	* release 0.31 - Steve Morse release
-
-	* general
-	    - all fields name of structures are changed.
-	    - bugfixes.
-	    - union {} are added everywhere it is possible to save memory.
-	    - support for Berkeley DB 1.
-	    - improved compatibility with FreeBSD and Mac OS X.
-	
-	* drivers
-	    - cache drivers are disable if Berkeley DB is not found.
-	    - disable search call.
-	    - support of buggy Courier-IMAP server.
-	    - semantic of mailsession_get_envelopes_list() changed : it 
-	        does no more remove messages from the list.
-	    - mailsession_get_message_by_uid() is added and implemented 
-	        in some drivers.
-
-2003-12-10 - libetpan-0.30-cvs22 - hoa
-
-	* configure.in
-	* tools/mail_cache_db.c
-	    if Berkeley DB is not found, cached drivers are disabled.
-	
-	* generic/mailmessage_tools.c
-	* generic/mhdriver_tools.c
-	* generic/mime_message_driver.c
-	    fetch_header(), fetch_section_header(), fetch_section_mime()
-	    returns the ending single CRLF line for all drivers.
-
-	* tests/compose-msg.c
-	* tests/fetch-attachment.c
-	* tests/frm-common.c
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/option-parser.c
-	* tests/readmsg.c
-	    fixed examples. Add static keyword where needed, forbid use
-	    of 'msg->msg_single_fields'.
-
-2003-12-08 - libetpan-0.30-cvs21 - hoa
-
-	* tests/fetch-attachment.c
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/option-parser.[ch]
-	* tests/readmsg-simple.c
-	* tests/readmsg.c
-	* tests/frm-common.[ch]          * NEW FILES *
-	    conform to new API.
-	    added missing files frm-common.[ch]
-
-2003-12-08 - libetpan-0.30-cvs20 - hoa
-
-	* generic/generic_cache.[ch]
-	* generic/generic_cache_types.h
-	* generic/maildriver_types.[ch]
-	* generic/maildriver.[ch]
-	* generic/maildriver_tools.[ch]
-	* generic/maildriver_types_helper.c
-	* generic/mailmessage.[ch]
-	* generic/mailmessage_tools.c
-	* generic/mailmessage_types.c
-	* generic/mailstorage.[ch]
-	* generic/mailstorage_tools.[ch]
-	* generic/mailstorage_types.h
-	* generic/mailthread.[ch]
-	* generic/mailthread_types.c
-	    prefix field names.
-	    reflect the changes in the naming.
-	    changed prototype of storage uninitializer.
-	    changed prototype of session initializer.
-	    removed mail_search_key related things.
-
-	* generic/data_message_driver.c
-	* generic/imfcache.c
-	* generic/mime_message_driver.c
-	    reflect the changes in the naming.
-	
-	* generic/imapdriver.[ch]
-	* generic/imapdriver_cached.[ch]
-	* generic/imapdriver_cached_message.c
-	* generic/imapdriver_message.c
-	* generic/imapdriver_tools.[ch]
-	* generic/imapdriver_types.h
-	* generic/imapstorage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, imapdriver becomes imap_session_driver
-	    and imapdriver_cached becomes imap_cached_session_driver.
-	
-	* generic/libetpan.h
-	    drivers are now included in this header.
-	
-	* generic/maildirdriver.[ch]
-	* generic/maildirdriver_cached.[ch]
-	* generic/maildirdriver_cached_message.c
-	* generic/maildirdriver_message.c
-	* generic/maildirdriver_tools.[ch]
-	* generic/maildirdriver_types.h
-	* generic/maildirstorage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, maildirdriver becomes maildir_session_driver
-	    and maildirdriver_cached becomes 
-	    maildir_cached_session_driver.
-	
-	* generic/mboxdriver.[ch]
-	* generic/mboxdriver_cached.[ch]
-	* generic/mboxdriver_cached_message.c
-	* generic/mboxdriver_message.c
-	* generic/mboxdriver_tools.[ch]
-	* generic/mboxdriver_types.h
-	* generic/mboxstorage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, mboxdriver becomes mbox_session_driver
-	    and mboxdriver_cached becomes mbox_cached_session_driver.
-
-	* generic/mhdriver.[ch]
-	* generic/mhdriver_cached.[ch]
-	* generic/mhdriver_cached_message.c
-	* generic/mhdriver_message.c
-	* generic/mhdriver_tools.[ch]
-	* generic/mhdriver_types.h
-	* generic/mhstorage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, mboxdriver becomes mh_session_driver
-	    and mhdriver_cached becomes mh_cached_session_driver.
-
-	* generic/nntpdriver.[ch]
-	* generic/nntpdriver_cached.[ch]
-	* generic/nntpdriver_cached_message.c
-	* generic/nntpdriver_message.c
-	* generic/nntpdriver_tools.[ch]
-	* generic/nntpdriver_types.h
-	* generic/nntpstorage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, nntpdriver becomes nntp_session_driver
-	    and nntpdriver_cached becomes nntp_cached_session_driver.
-
-	* generic/pop3driver.[ch]
-	* generic/pop3driver_cached.[ch]
-	* generic/pop3driver_cached_message.c
-	* generic/pop3driver_message.c
-	* generic/pop3driver_tools.[ch]
-	* generic/pop3driver_types.h
-	* generic/pop3storage.[ch]
-	    reflect the changes in the naming.
-	    additionnally, pop3driver becomes pop3_session_driver
-	    and pop3driver_cached becomes pop3_cached_session_driver.
-
-	* imap/mailimap.c
-	* imap/mailimap_print.c
-	* imap/mailimap_sender.c
-	* imf/mailimf_types_helper.c
-	* imf/mailimf_write.c
-	* mime/mailmime.c
-	* mime/mailmime_content.c
-	* mime/mailmime_types.c
-	* mime/mailmime_types_helper.c
-	* nntp/newsnntp.c
-	* smtp/mailsmtp_helper.c
-	    proper use of clist_content(), clist_next(), carray_count()
-	    and carray_data().
-
-2003-12-05 - libetpan-0.30-cvs19 - hoa
-
-	* generic/imapdriver.c
-	    don't fail if SEARCH command is not supported by the server.
-	    
-	* configure.in
-	    improved autodetection of Berkeley DB version.
-	    Thanks to Keith Edmunds.
-
-2003-12-04 - libetpan-0.30-cvs18 - hoa
-
-	* generic/generic_cache.c
-	* generic/imapdriver.c
-	* generic/imapdriver_cached.c
-	* generic/imapdriver_tools.c
-	* generic/maildirdriver.c
-	* generic/maildirdriver_cached.c
-	* generic/maildirdriver_tools.c
-	* generic/maildriver_tools.c
-	* generic/maildriver_types.c
-	* generic/mailstorage.c
-	* generic/mailstorage_types.h
-	* generic/mailthread.c
-	* generic/mailthread_types.c
-	* generic/mboxdriver.c
-	* generic/mboxdriver_cached.c
-	* generic/mboxdriver_message.c
-	* generic/mboxdriver_tools.c
-	* generic/mhdriver.c
-	* generic/mhdriver_cached.c
-	* generic/mhdriver_cached_message.c
-	* generic/mhdriver_message.c
-	* generic/mhdriver_tools.c
-	* generic/nntpdriver.c
-	* generic/nntpdriver_cached.c
-	* generic/nntpdriver_tools.c
-	* generic/pop3driver.c
-	* generic/pop3driver_cached.c
-	* generic/pop3driver_tools.c
-	* maildir/maildir.c
-	* mbox/mailmbox.c
-	* mbox/mailmbox_parse.c
-	* mbox/mailmbox_types.[ch]
-	* mh/mailmh.[ch]
-	* pop3/mailpop3.c
-	* pop3/mailpop3_types.h
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/readmsg-common.c
-	* tools/carray.[ch]
-	* tools/chash.[ch]
-	* tools/mmapstring.c
-	    changed carray and chash structure to easy use of them.
-	    reflect these changes on the whole code.
-
-2003-12-03 - libetpan-0.30-cvs17 - hoa
-
-	* mh/mailmh.[ch]
-	    don't update folder implicitely.
-	
-	* generic/mhdriver.c
-	* generic/mhdriver_cached.c
-	* generic/mhdriver_cached_message.c
-	* generic/mhdriver_message.c
-	* generic/mhdriver_tools.c
-	    fixed MH driver status and expunge.
-
-	* generic/imapstorage.h
-	    removed duplicate licence.
-	
-	* imap/mailimap_keywords.[ch]
-	* imap/mailimap_sender.[ch]
-	* imap/mailimap_socket.[ch]
-	* imap/mailimap_ssl.[ch]
-	* imf/mailimf.[ch]
-	* imf/mailimf_types.[ch]
-	* imf/mailimf_write.[ch]
-	* maildir/maildir.[ch]
-	* mbox/mailmbox.[ch]
-	* mbox/mailmbox_types.[ch]
-	* mime/mailmime.[ch]
-	* mime/mailmime_content.[ch]
-	* mime/mailmime_decode.[ch]
-	* mime/mailmime_disposition.[ch]
-	* mime/mailmime_types.[ch]
-	* mime/mailmime_types_helper.[ch]
-	* mime/mailmime_write.[ch]
-	* nntp/newsnntp.[ch]
-	* nntp/newsnntp_socket.[ch]
-	* nntp/newsnntp_ssl.[ch]
-	* pop3/mailpop3.[ch]
-	* pop3/mailpop3_socket.[ch]
-	* pop3/mailpop3_ssl.[ch]
-	* smtp/mailsmtp.[ch]
-	* smtp/mailsmtp_helper.[ch]
-	* smtp/mailsmtp_socket.[ch]
-	* smtp/mailsmtp_ssl.[ch]
-	* tools/charconv.[ch]
-	* tools/chash.c
-	* tools/connect.[ch]
-	* tools/mail_cache_db.[ch]
-	* tools/maillock.[ch]
-	* tools/mailstream.[ch]
-	* tools/mailstream_helper.[ch]
-	* tools/mailstream_low.[ch]
-	* tools/mailstream_socket.c
-	* tools/mailstream_ssl.c
-	* tools/mailstream_types.h
-	    applied 'const' qualifier where it is needed except in
-	    generic part.
-
-2003-12-03 - libetpan-0.30-cvs16 - hoa
-
-	* imap/mailimap_sender.c
-	    Workaround for a bug in Courier-IMAP.
-	    Thanks to Mark B. Elrod.
-
-2003-12-03 - libetpan-0.30-cvs15 - hoa
-
-	* README
-	* imap/mailimap_sender.c
-	    fixed IMAP protocol when sending a DELETE command
-	    (there was a missing space).
-	    Thanks to Zsolt VARGA.
-
-2003-12-02 - libetpan-0.30-cvs14 - hoa
-
-	* generic/maildriver_types.h
-	* generic/maildriver_tools.c
-	* generic/nntpdriver.c
-	* generic/nntpdriver_cached.c
-	* tests/frm-simple.c
-	* tests/frm.c
-	    changed semantic of get_envelopes_list() :
-	    the messages that could not be fetched are not
-	    removed from the given list.
-
-2003-12-02 - libetpan-0.30-cvs13 - hoa
-
-	* tests/Makefile
-	* tests/compose-msg.c
-	* tests/etpan-message-data-driver.[ch]  * REMOVED FILES *
-	* tests/fetch-attachment.c
-	* tests/frm-common.c                    * NEW FILES *
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/readmsg-common.c
-	* tests/readmsg.c
-	    synchronize tests with new API.
-
-2003-12-02 - libetpan-0.30-cvs12 - hoa
-
-	* generic/mboxdriver.c
-	* generic/mboxdriver_cached.c
-	* generic/mboxdriver_cached_message.c
-	* generic/mboxdriver_message.c
-	* generic/mboxdriver_tools.c
-	* mbox/mailmbox.c
-	* mbox/mailmbox_parse.c
-	* mbox/mailmbox_types.[ch]
-	    added a prefix before field names in mbox module.
-
-2003-12-02 - libetpan-0.30-cvs11 - hoa
-
-	* generic/imapdriver_tools.c
-	* generic/imfcache.c
-	* generic/maildriver_types.c
-	* generic/mailthread.c
-	* imf/mailimf.c
-	* imf/mailimf_types.[ch]
-	* imf/mailimf_types_helper.c
-	* imf/mailimf_write.c
-	* mime/mailmime.c
-	* mime/mailmime_content.c
-	    added a prefix before field names in IMF module.
-
-2003-12-01 - libetpan-0.30-cvs10 - hoa
-
-	* generic/maildirdriver.c
-	* generic/maildirdriver_cached.c
-	* generic/maildirdriver_tools.c
-	* generic/mhdriver.c
-	* generic/mhdriver_cached.c
-	* generic/mhdriver_cached_message.c
-	* generic/mhdriver_message.c
-	* generic/mhdriver_tools.c
-	* maildir/maildir.c
-	* maildir/maildir_types.h
-	* mh/mailmh.c
-	* mh/mailmh.h
-	    added a prefix before field names in MH
-	    and maildir modules.
-	    Thanks to Melvin Hadasht.
-
-2003-12-01 - libetpan-0.30-cvs9 - hoa
-
-	* generic/nntpdriver.c
-	* generic/nntpdriver_cached.c
-	* generic/nntpdriver_tools.c
-	* generic/pop3driver.c
-	* generic/pop3driver_cached.c
-	* generic/pop3driver_cached_message.c
-	* generic/pop3driver_tools.c
-	* nntp/newsnntp.[ch]
-	* nntp/newsnntp_types.h
-	* pop3/mailpop3.[ch]
-	* pop3/mailpop3_types.h
-	    added a prefix before field names in NNTP
-	    and POP3 modules.
-	    Thanks to Melvin Hadasht.
-
-2003-12-01 - libetpan-0.30-cvs8 - hoa
-
-	* generic/imapdriver_cached_message.c
-	* generic/imapdriver_message.c
-	* generic/imapdriver_tools.c
-	* generic/mailmessage_tools.c
-	* generic/mime_message_driver.c
-	* mime/mailmime_content.c
-	* mime/mailmime_decode.c
-	* mime/mailmime_disposition.c
-	* mime/mailmime_types.[ch]
-	* mime/mailmime_types_helper.[ch]
-	* mime/mailmime_write.c
-	    changed field name in MIME module and
-	    replaced some structure with union.
-	
-	* imap/mailimap.c
-	* nntp/newsnntp.c
-	    fixed bug that didn't allow connection.
-
-2003-12-01 - libetpan-0.30-cvs7 - hoa
-
-	* libetpan-config.in
-	    added LDFLAGS to libetpan-config --libs.
-	
-	* nntp/newsnntp.c
-	* pop3/mailpop3.c
-	* generic/mailstorage_tools.c
-	    don't unreference stream on connect() error.
-	
-	* generic/data_message_driver.c
-	* generic/maildriver_types.c
-	* generic/maildriver_types.h
-	* generic/mailmessage_tools.c
-	    now a zero length string can be given as (NULL, 0)
-	    for the content of the message.
-	    changed field names of mail_search_key structure.
-	
-	* generic/maildriver_errors.h
-	    added error type.
-	
-	* generic/imapdriver.c
-	* generic/imapdriver_cached.c
-	* generic/imapdriver_cached_message.c
-	* generic/imapdriver_message.c
-	* generic/imapdriver_tools.c
-	* generic/nntpdriver_message.c
-	* imap/mailimap.c
-	* imap/mailimap.h
-	* imap/mailimap_helper.c
-	* imap/mailimap_print.c
-	* imap/mailimap_sender.c
-	* imap/mailimap_socket.c
-	* imap/mailimap_types.[ch]
-	* imap/mailimap_types_helper.[ch]
-	    changed the name of the fields in IMAP low-level implementation,
-	    (prefix has been added to field names in structures).
-	
-	* mime/mailmime.c
-	    a FWS can now appear in Content-Type field, before
-	    the MIME type.
-
-2003-11-25 - libetpan-0.30-cvs6 - hoa
-
-	* generic/mboxdriver_cached.c
-	    max-uid file is now located in flags directory.
-	    this allows to keep flags coherence.
-
-2003-11-25 - libetpan-0.30-cvs5 - hoa
-
-	* configure.in
-	* tools/mailstream_socket.c
-	* tools/mailstream_ssl.c
-	    removed specific check for <sys/select.h>
-	
-	* generic/data_message_driver.c
-	* generic/data_message_driver.h
-	* generic/libetpan_version.h.in
-	* generic/maildriver_errors.h
-	* generic/mime_message_driver.c
-	* generic/mime_message_driver.h
-	    added licence information.
-
-2003-11-25 - libetpan-0.30-cvs4 - hoa
-
-	* configure.in
-	* tools/mailstream_socket.c
-	* tools/mailstream_ssl.c
-	    Check for valid <sys/select.h>.
-	    Because Mac OS X systems, <sys/select.h> cannot be included
-	    alone. Then, we follow the old standard to use select() system
-	    call.
-	
-	* generic/generic_cache.c
-	* generic/libetpan_version.c
-	    clean up code.
-	
-	* tools/mail_cache_db.c
-	    Support for Berkeley DB version 1.x.
-
-2003-11-25 - libetpan-0.30-cvs3 - hoa
-
-	* generic/maildirdriver.c 
-	    fixed a crash in get_envelopes_list().
-	
-	* generic/maildriver_errors.h  * NEW FILE *
-	* generic/maildriver_types.h
-	    moved error codes from maildriver_types.h to
-	    maidlriver_errors.h.
-	
-	* generic/mailthread.h
-	* generic/mailthread_types.h
-	    moved threading type to mailthread_types.h
-	
-	* maildir/maildir.c
-	    added internal basename() function so that
-	    libEtPan! can compile on Mac OS X.
-	
-	* tools/mail_cache_db.c
-	* tools/maildb_helper.[ch]     * REMOVED FILES *
-	    added support for DB1 (cleanse of database) and 
-	    removed deprecated files.
-
-2003-11-22 - libetpan-0.30-cvs2 - hoa
-
-	* generic/nntpdriver_message.c
-	    added UID to NNTP mailmessage structure.
-
-2003-11-22 - libetpan-0.30-cvs1 - hoa
-
-	* generic/imapdriver.c
-	* generic/imapdriver_cached.c
-	* generic/imapdriver_message.c
-	* generic/imapdriver_tools.c
-	* generic/maildirdriver.c
-	* generic/maildirdriver_cached.c
-	* generic/maildriver.[ch]
-	* generic/maildriver_types.h
-	* generic/mboxdriver.c
-	* generic/mboxdriver_cached.c
-	* generic/mboxdriver_message.c
-	* generic/mhdriver.c
-	* generic/mhdriver_cached.c
-	* generic/mhdriver_message.c
-	* generic/nntpdriver.c
-	* generic/nntpdriver_cached.c
-	* generic/pop3driver.c
-	* generic/pop3driver_cached.c
-	    mailsession_get_message_by_uid() is added.
-	    It is used like mailsession_get_message(),
-	    but using the uid string.
-	    This is implemented in imap driver, nntp driver,
-	    mh driver and mbox driver (cached and non cached version).
-	    This is not implemented in pop3 nor maildir.
-	    
-	    uid member of mailmessage structure is always defined for
-	    drivers where this function is implemented.
-	    
-	    Thanks to Melvin Hadasht.
-	    
-2003-11-21 - libetpan-0.30 - hoa
-
-	* release 0.30 - Spock's Beard release
-
-	* general
-	    - fixed several memory leaks.
-	    
-	    - defines now exist for new features since version 0.29
-
-	* tools
-	    - dump of network traffic is now possible by setting
-	      exported variable mailstream_debug to 1.
-	    
-	    - TLS/SSL driver for stream is fixed.
-	    
-	* imf
-	    - fixed RFC 2822 format, wrap headers and break lines
-	      when they are longer than requirement (998).
-	    
-	    - reduced size of headers data.
-	      a union is used inside the structure.
-	      *** WARNING *** : this change use of structure field as a union
-	      member is used in mailimf_field structure.
-
-	* imap
-	   - several fixes in IMAP module.
-	
-	* mime
-	   - fixed quoted-printable parser.
-	
-	* generic - cache for drivers
-	   - cache database is now cleaned up.
-	   
-	   - fixed header fields cache.
-	      *** WARNING *** cache format changed. You should reset all
-	      your cache of headers (env.db).
-
-	* generic - threading
-      
-	   - fixed threading when threading by references with subject.
-
-	* generic - drivers for message
-   
-	   - separated flush() and check() in message.
-	     *** WARNING *** : this changes the API of the message.
-	     flush() is used to free the internal structure used
-	     to store the MIME structure of the message. It invalidates
-	     the "mime" member of the message.
-	     check() is used for to notify the modification of message
-	     flags to the session, so that the session saves the flags
-	     of the message at the next call of mailsession_check() or
-	     when leaving the session.
-
-	   - IMAP implementation is more compliant.
-	   
-	   - added driver to build MIME message and see the rendering
-	     through fetch functions.
-	     
-	   - added driver to parse message content given with a string.
-
-	* generic - drivers for maildir
-
-	   - maildir driver for storage / session / messages
-	     is implemented.
-
-2003-11-21 - libetpan-0.1-cvs31 - hoa
-
-	* Makefile.in
-	* README
-	* configure.in
-	* generic/Makefile
-	* generic/libetpan.h
-	* generic/libetpan_version.c
-	* generic/libetpan_version.h.in
-	    support for runtime version of libetpan
-
-2003-11-20 - libetpan-0.29-cvs30 - hoa
-
-	* imf/mailimf_write.c
-	    wrap mailbox list when we have a single address as
-	    a mailbox.
-
-2003-11-20 - libetpan-0.29-cvs29 - hoa
-
-	* generic/imapdriver.c
-	    clean up code.
-	
-	* imap/mailimap.c
-	    update message count with EXPUNGE responses.
-	
-	* tools/mailstream_socket.c
-	    added comment about initial state of socket.
-	
-	* tools/mailstream_ssl.c
-	    added comment about initial state of socket.
-	    read() is fixed.
-	    
-2003-11-19 - libetpan-0.29-cvs28 - hoa
-
-	* generic/mailthread.c
-	    fixed threading by references when using subjects.
-
-2003-11-19 - libetpan-0.29-cvs27 - hoa
-
-	* generic/maildirdriver_cached.c
-	* generic/mboxdriver_cached.c
-	* generic/mhdriver_cached.c
-	* generic/nntpdriver_cached.c
-	* generic/pop3driver_cached.c
-	    don't open any files if flags_store is empty.
-	
-	* imap/mailimap_types.c
-	    fixed a crash when freeing a mailbox list information
-	    with no flags.
-	
-	* tools/mailstream.c
-	    default value for network timeout.
-
-2003-11-17 - libetpan-0.29-cvs26 - hoa
-
-	* imap/mailimap.c
-	* imap/mailimap_sender.c
-	    fixed syntax of SEARCH command.
-	
-	* tools/mailstream.[ch]
-	* tools/mailstream_types.h
-	    if LIBETPAN_STREAM_DEBUG is define in mailstream_types.h, we 
-	    can use a global variable mailstream_debug to enable the dump 
-	    of the network protocol on the file libetpan-stream-debug.log.
-	
-2003-11-17 - libetpan-0.29-cvs25 - hoa
-
-	* generic/imapdriver.c
-	    use SEARCH instead of STATUS on selected folder to 
-	    get UNSEEN messages count.
-	
-	* imap/mailimap.c
-	    allows multiple SEARCH responses.
-	
-	* imap/mailimap_keywords.c
-	* imap/mailimap_parser.c
-	    fixed parsing of mailbox flags.
-	
-	* tools/clist.c
-	    fixed count when using clist_concat().
-
-2003-11-14 - libetpan-0.29-cvs24 - hoa
-
-	* imf/mailimf_write.c
-	    fixed the space between Message-IDs, problem introduced
-	    by rewriting of headers wrapper.
-
-2003-11-13 - libetpan-0.29-cvs23 - hoa
-
-	* generic/maildirdriver_types.h
-	* generic/mhdriver_types.h
-	    fixed some comments.
-	
-	* mime/mailmime_content.c
-	    fixed infinite loop in MIME parser.
-
-2003-11-12 - libetpan-0.29-cvs22 - hoa
-
-	* generic/maildriver_tools.h
-	    removed exported functions that does no more exist.
-
-2003-11-12 - libetpan-0.29-cvs21 - hoa
-
-	* generic/maildriver_tools.h
-	    removed exported function that does no more exist.
-
-2003-11-11 - libetpan-0.29-cvs20 - hoa
-
-	* generic/Makefile
-	* generic/mailmessage.h
-	* generic/data_message_driver.[ch]      * NEW FILES *
-	* generic/mime_message_driver.[ch]      * NEW FILES *
-	    driver to allow construction of MIME message.
-	    (mime_message_driver.[ch]).
-	    driver to operations on message which content is
-	    given by a string.
-
-2003-11-10 - libetpan-0.29-cvs19 - hoa
-
-	* Makefile.in
-	    compilation of maildir low-level implementation.
-
-	* maildir/Makefile                             * NEW FILE *
-	* maildir/maildir.[ch]	                       * NEW FILES *
-	* maildir/maildir_types.h                      * NEW FILE *
-	    maildir low-level implementation.
-	
-	* generic/Makefile
-	* generic/maildirdriver.[ch]                   * NEW FILES *
-	* generic/maildirdriver_cached.[ch]            * NEW FILES *
-	* generic/maildirdriver_cached_message.[ch]    * NEW FILES *
-	* generic/maildirdriver_message.[ch]           * NEW FILES *
-	* generic/maildirdriver_tools.[ch]             * NEW FILES *
-	* generic/maildirdriver_types.h                * NEW FILE *
-	* generic/maildirstorage.[ch]                  * NEW FILES *
-	    implementation of maildir driver, cached and non-cached
-	    versions.
-	
-	* generic/generic_cache.c
-	    use msync() when finished writing using mmap() with MAP_SHARED.
-	
-	* generic/imapdriver_tools.c
-	    changed flag name "Forwarded" into something more standard
-	    "$Forwarded" (draft on flag keywords for IMAP).
-	
-	* generic/maildriver.h
-	    added maildir drivers for session.
-	
-	* generic/maildriver_types.h
-	* generic/mailmessage_tools.c
-	    added message data for drivers that will use internal
-	    data although they are using the generic functions.
-	
-	* generic/mailmessage.h
-	    added maildir drivers for message.
-	
-	* generic/mailstorage.h
-	    added maildir driver for storage.
-	
-	* generic/mboxdriver_cached.c
-	    optimization on memory use.
-	
-	* generic/mhdriver_cached.c
-	    code clean up.
-	
-	* generic/mhdriver_tools.c
-	* mh/mailmh.c
-	    don't use MAP_SHARED for mmap() where it is not needed.
-
-	* tests/fetch-attachment.c
-	* tests/frm.c
-	* tests/frm-simple.c
-	* tests/frm-tree.c
-	* tests/frm.c
-	* tests/option-parser.[ch]
-	* tests/readmsg-simple.c
-	* tests/readmsg.c
-	    factorize code of storage initialization into
-	    option-parser.[ch].
-
-2003-11-09 - libetpan-0.29-cvs18 - hoa
-
-	* generic/imapdriver_tools.c
-	    fixed management of MAIL_FLAG_FORWARDED.
-	
-	* generic/nntpdriver_tools.c
-	    fixed a memory leak.
-	
-	* imap/mailimap_types.c
-	    fixed a memory freeing.
-
-2003-11-05 - libetpan-0.29-cvs17 - hoa
-
-	* imf/mailimf.c
-	    broken parsing of message-id due to previous change
-	    is fixed.
-	
-2003-11-05 - libetpan-0.29-cvs16 - hoa
-
-	* imf/mailimf.c
-	    accept some weird syntax, for example :
-	    foo@bar.com <foo@bar.com>
-	    This is now accepted.
-
-2003-11-04 - libetpan-0.29-cvs15 - hoa
-
-	* imf/mailimf_write.c
-	    fixed (again) wrapping of header fields.
-
-2003-11-03 - libetpan-0.29-cvs14 - hoa
-
-	* generic/imapdriver_message.c
-	    fixed behaviour of IMAP message driver.
-
-2003-11-03 - libetpan-0.29-cvs13 - hoa
-
-	* mh/mailmh.[ch]
-	* mime/mailmime.[ch]
-	* mime/mailmime_decode.[ch]
-	* mime/mailmime_disposition.[ch]
-	* mime/mailmime_types.[ch]
-	* mime/mailmime_types_helper.[ch]
-	    removed duplicated licence.
-	
-	* mime/mailmime_content.[ch]
-	* mime/mailmime_write.[ch]
-	    removed duplicated licence.
-	    fixed quoted-printable parser.
-	    fixed multipart parser, preamble and epilogue are now stored.
-	    fixed quoted-printable part renderer.
-
-2003-10-29 - libetpan-0.29-cvs12 - hoa
-
-	* generic/mailmessage_tools.c
-	    fixed a bug in generic fetch header part of section.
-	
-	* generic/nntpdriver.c
-	    check() replace flush() message in message envelopes list
-	    fetch to reflect new API (0.29-cvs1).
-
-2003-10-29 - libetpan-0.29-cvs11 - hoa
-
-	* imf/mailimf_write.c
-	    workaround for a bug of old versions of INN.
-	
-	* mime/mailmime_types_helper.c
-	    mailmime_single_fields_init() now accept NULL as the
-	    "mailmime_fields" argument, so that we call this function
-	    with only a "mailmime_content".
-	
-2003-10-29 - libetpan-0.29-cvs10 - hoa
-
-	* generic/imapdriver_cached.c
-	* generic/imapdriver_cached_message.c
-	* generic/mboxdriver_cached.c
-	* generic/mhdriver_cached.c
-	* generic/nntpdriver_cached.c
-	* generic/pop3driver_cached.c
-	    code cleanup.
-	    message content cache files are now cleaned up in
-	    an unlocked state.
-
-2003-10-29 - libetpan-0.29-cvs9 - hoa
-	
-	* mbox/mailmbox.c
-	    fixed get_line() function. Does not get out from the buffer.
-
-2003-10-29 - libetpan-0.29-cvs8 - hoa
-	
-	* generic/imapdriver_tools.c
-	    fixed conversion of data in IMAP driver.
-
-2003-10-29 - libetpan-0.29-cvs7 - hoa
-	
-	* mime/mailmime_content.c
-	    remove unparsed IMF (RFC 2822) headers in the
-	    parsed MIME structure, that are MIME headers,
-	    so that rendering of MIME message from parsed MIME
-	    structure is correct.
-
-2003-10-28 - libetpan-0.29-cvs6 - hoa
-
-	* generic/nntpdriver_cached.c
-	    now, the flags are not lost when the cache is deleted.
-	    
-	* generic/imapdriver_message.c
-	    get rid of deprecated things in IMAP protocol.
-	    mailmessage_fetch() will no longer mark the message 
-	    as read.
-
-2003-10-28 - libetpan-0.29-cvs5 - hoa
-	
-	* generic/imfcache.c
-	    fixed header fields cache.
-	    *** WARNING *** cache format changed. You should reset all
-	    your cache of headers (env.db).
-	
-	* generic/maildriver.h
-	    added comment about driver function.
-	
-	* tools/maillock.c
-	    change dotlock behaviour (wait 5 seconds after each failed try)
-	
-2003-10-27 - libetpan-0.29-cvs4 - hoa
-	
-	* README
-	    added information about C #define
-	
-	* generic/imapdriver_cached_message.c
-	    fixed memory leak in cached IMAP message driver.
-	    MIME structure is not fetched again when already fetched.
-	
-	* imf/mailimf_types.h
-	    added LIBETPAN_MAILIMF_FIELD_UNION #define to know that
-	      we are on version of libEtPan! with a union to implement
-	      mailimf_field data type.
-
-	* generic/maildriver_types.h
-	    added LIBETPAN_MAILMESSAGE_CHECK #define to know that
-	      we are on version of libEtPan! with mailmessage_check()
-	      call separated from mailmessage_flush() call, introduced
-	      in 0.29-cvs1
-
-	* imf/mailimf_write.c
-	    fixed wrapping of header text. First character was removed 
-	      when the first word was too long.
-
-	* generic/generic_cache.[ch]
-	* generic/generic_cache_types.h
-	* generic/imapdriver.[ch]
-	* generic/imapdriver_cached.[ch]
-	* generic/imapdriver_tools.h
-	* generic/imapdriver_types.h
-	* generic/imapstorage.[ch]
-	* generic/imfcache.[ch]
-	* generic/libetpan.h
-	* generic/maildriver.c
-	* generic/maildriver_tools.c
-	* generic/maildriver_types.c
-	* generic/mailmessage_types.h
-	* generic/mailstorage.[ch]
-	* generic/mailstorage_tools.[ch]
-	* generic/mailstorage_types.h
-	* generic/mboxdriver.[ch]
-	* generic/mboxdriver_cached.h
-	* generic/mboxdriver_types.h
-	* generic/mboxstorage.[ch]
-	* generic/mhdriver.[ch]
-	* generic/mhdriver_cached.[ch]
-	* generic/mhdriver_types.h
-	* generic/mhstorage.[ch]
-	* generic/nntpdriver.[ch]
-	* generic/nntpdriver_cached.[ch]
-	* generic/nntpdriver_types.h
-	* generic/nntpstorage.[ch]
-	* generic/pop3driver.[ch]
-	* generic/pop3driver_cached.[ch]
-	* generic/pop3driver_types.h
-	* generic/pop3storage.[ch]
-	* imap/mailimap_types_helper.[ch]
-	* imf/mailimf_types_helper.h
-	* imf/mailimf_write.h
-	* mbox/mailmbox.h
-	* mh/mailmh.[ch]
-	* mime/mailmime.[ch]
-	* mime/mailmime_content.[ch]
-	* mime/mailmime_decode.[ch]
-	* mime/mailmime_disposition.[ch]
-	* mime/mailmime_types.[ch]
-	* mime/mailmime_types_helper.[ch]
-	* mime/mailmime_write.[ch]
-	* tools/carray.[ch]
-	* tools/charconv.[ch]
-	* tools/chash.[ch]
-	* tools/cinthash.[ch]
-	* tools/clist.[ch]
-	* tools/hmac-md5.h
-	* tools/mailstream_socket.h
-	* tools/mailstream_types.h
-	* tools/mapping.[ch]
-	* tools/md5.[ch]
-	* tools/md5global.h
-	* tools/mmapstring.[ch]
-	    added licence information and name of last commiter.
-	
-2003-10-25
-	
-	* version 0.29-cvs3
-	* generic/imapdriver_cached.c
-	    fixed wrong message size (of 0) when UID list cache is
-	    used in IMAP cached driver. The size is now stored in the 
-	    UID list cache.
-	
-	* imf/mailimf.c
-	    fixed single address parsing (his will strip all spaces in
-	    the address)
-
-2003-10-24
-	
-	* version 0.29-cvs2
-	* generic/imapdriver_tools.c
-	    flag NEW in IMAP driver is disabled when the message is SEEN.
-
-2003-10-23
-	
-	* version 0.29-cvs1
-	* imf - reduced size of headers data
-	    WARNING : this change use of structure field as a union
-	      member is used in mailimf_field structure.
-	* generic - imap - fixed some data conversion
-	* tools - chash - add a call
-	* generic - separated flush() and check() in message.
-	    WARNING : this changes the API of the message.
-	      flush() is used to free the internal structure used
-	      to store the MIME structure of the message. It invalidates
-	      the "mime" member of the message.
-	      check() is used for to notify the modification of message
-	      flags to the session, so that the session saves the flags
-	      of the message at the next call of mailsession_check() or
-	      when leaving the session.
-	* all - fixed some leaks
-	* imf - fixed mailbox group parsing
-	* imf, mime - fixed RFC 2822 format (CR LF at end of lines)
-	* generic - pop3, nntp - fixed memory leaks
-	* generic - message theading - waste less memory
-	* imap - fixed some memory leaks
-	* mime - parse some non-conform MIME encoded headers
-	* nntp - fixed a memory leak
-	* mbox - strip UID headers when fetching message content
-	* tools - adds new database cache file interface (mail_cache_db.[ch])
-	* tools - added extern "C" { } to avoid name mangling in C++
-	* generic - drivers now make use of new database cache file interface.
-	* tools - adds a function to clean up the database file
-	* all - some compilation warning fixes
-	* generic - drivers - cached drivers now clean their cache
-	* mbox - removed use of cinthash
-	* generic - mbox - removed use of cinthash
-	* all - removed use of alloc.h
-	* imf - can now fold some more headers (including headers with free
-	     form values) for more standards conformance
-	* mime - can parse multilines headers, fixed quoted-printable
-	     decoding (all single \n are now decoded to \r\n)
-	* mbox - synchronize mmapped file before unmapping it.
-	* tools - mmapstring - removed use of cinthash, replaced with chash
-	
-2003-10-06 - XetPan release
-
-        * version 0.29
-	* generic - imap - bugfixes
-	* tools - mailstream - debug for stream, network timeout
-	* tools - mailstream - ssl library is initialized by ssl driver,
-	    fixed a bug
-	* tools - chash - fixed chash interface
-	* imf - fixed interface
-	* mime - fixed memory leak and some interface
-	* generic - fixed messages thread
-	* nntp - bugfixes
-	* pop3 - bugfixes
-	* smtp - added SMTP auth CRAM-MD5, LOGIN, PLAIN
-	* imap - bugfixes
-	* mime - fixed writing of MIME part
-	* tests - added SMTP sample, thanks to Gael Roualland
-	
-2003-04-01 - Avril Lavigne Release
-
-	* version 0.28
-	* imap - fixed IMAP parser
-	* mime - fixed section id generation
-	* mime - fixed mime parser
-	* generic - conform to IMAP naming for flags
-	* tools - prefix for tcp_connect() and get_service_port()
-	* generic - nntp - noop function added
-	* configure - some fixes
-	* generic - message parse fixes
-	* generic - nntp - non existant message are marked as read
-	* generic - thanks to David Woodhouse, access to protocol
-	    using a command, (ex: ssh /usr/sbin/imapd)
-	    imply an API change when calling nntp_storage_init(),
-	    pop3_storage_init() or imap_storage_init().
-	* generic - pop3 - apop is tried and if deconnected, reconnection
-	    is carried out and clear authentication is tried.
-	* mime - make public the encoding functions
-	* mime - conform to RFC 2046 (quoted-string)
-	* tools - fixed chash
-	
-2002-12-18 - Christmas release ^^ //clindoeil
-
-	* version 0.27
-	* imf - added easier interface for IMF fields (RFC 2822)
-	* mime - added easier interface for MIME fields
-	* mime - conversion to quoted printable will quote F to avoid
-	    "From_" sequence
-	* imf - easier usage of IMF (RFC 2822)
-	* fixed toupper() usage
-	* generic - changed interface for mail threading so that we
-	    can notify a default charset.
-	* sunZ - capitaine de soirées
-	* tools - charconv can convert strings with illegal sequences
-	* mime - add helper functions
-	* imf - add helper functions
-	* various bugfixes
-	* imap - comments in IMAP module - API and data structure description
-	* generic - API documentation
-	* generic - flags and cache directory are now different
-	* all - can be used in C++
-	* doc - updated documentation
-	
-2002-09-02
-
-	* version 0.26
-	* generic - message interface
-	*         - new driver interface
-	* imf - bugfix
-	* generic - generic flags, flags for all drivers
-	* generic - mail_info (display of the messages list)
-		and mailmessage (display of the message) merged
-	* tools - fixed an infinite loop when EOF was reached when
-	        fetching a line finished with LF.
-	* mime - does not parse the message mime part when the subtype is
-	        not RFC822
-	* generic - flags and envelopes are stored into Berkeley Database
-		for performance
-	* generic - Berkeley database are now locked (with dotlock)
-	* generic - expunge for mboxdriver (cached version).
-	* tools - bugfix in chash
-	* mh - make a hash table from the subfolders
-	* generic - expunge for pop3driver and mhdriver (cached version)
-	* generic - status of mailboxes
-	* generic - fixed a problem with cache in mbox
-	* generic - fixed cache for nntp driver
-	* generic - "References" field is now fetched with IMAP driver
-	* imap - bugfix when parsing HEADER.FIELDS requests
-	       bugfix in literal
-	* generic - readonly mailbox in mbox driver are no more expunged
-	* tools - fixed memory leaks
-	* generic - internal uid of mbox is based on body length of the message
-	       close mailboxes when retrieving non-cached envelopes.
-	* generic - optimized flags cache
-	* generic - mail storage added
-	* generic - check_folder will store flags on disk
-	* imap - close stream no session logout
-	* imf - day of week stuff
-	* mh - implemented ...folder_find
-	* tools - some code factorization in clist
-	* imap - bugfix for mailbox data and status attribute (UNSEEN) handler
-	
-2002-06-26
-
-	* version 0.25
-	* BSD licence
-	* get rid of strndup()
-	* generic - started implementation of messages threads
-	* driver -  changed the way to get message list in NNTP driver
-	           fetch message returns also the length of the message
-	           bug fix in IMAP driver
-	* MIME - MIME message builder use the same data structure
-	           as the MIME message parser
-	* imf  - less strict parser, bug fix
-	* nntp - bugfix
-	* mbox - UID in mbox
-	* pop  - capa is implemented
-	* driver - cache for mbox and mh, new version of the driver
-	         of mbox.
-	* mh   - max index is retrieved when performing a stat of the folder
-	* MIME - bugfix when parsing multipart, base64 at padding
-	           encoded phrase can now be parsed
-	* tools - character table conversion for buffers
-	* generic - implementation of message threads in now finished
-	* tools - character table conversion notify error type
-	* mime - merged mailmime_write.c and message_build.c
-	* driver - changed interface when fetching MIME parts
-	* driver - error strings added
-	* generic - thread orderedsubject is implemented
-	* mbox - problem when the message identifier was wrong - fixed
-	* mh   - added time information so that the mh-cached driver
-	            can invalidate the cache
-	* driver - MH driver with cache is implemented
-	* mime - add parent in mailmime structure
-	* tools - macro fixed in carray
-	* imap - imap debugging can now compile
-	* driver - added parameters() to interface to set parameters specific
-	             to each driver.
-	             cache is now defined for each session, no more globally.
-		     some code cleaning
-		     mbox parameters are "force read only" and "force no UID"
-		     nntp set max articles to fetch
-	* all - changed <stdint.h> to <inttypes.h> which is more widespread
-	* pop3 - fixed APOP, timestamp is get at connection, no more when
-	             APOP was tried.
-	* tools - GPL MD5 is replaced by RSA Data Security MD5.
-	* driver - nntp cache sets starting and ending article in the cache
-	           mbox cache for a message is updated when it is changed
-		   (detected with size)
-	* tools - changed the name of stream driver so that it does
-	           not interfer with pth.
-		  the user is given the responsibility to initialize the
-		  SSL mechanism (openssl).
-	* mime - serious bugfix
-	* imf - removed "unparsed fields" type.
-	* driver - nntp does not use xover whenever there are no news
-	             header to fetch
-	           bugfix in imap
-		   take account of the bugfix in mime in maildriver_tools.c
-		   no more use of "unparsed fields".
-	
-2002-04-27
-
-	* version 0.20
-	* glib calls removed
-	* driver interface added
-
-2002-02-10
-	
-	* version 0.10
-	* initial release

+ 0 - 56
deltachat-ios/libraries/libetpan/Makefile.am

@@ -1,56 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-ACLOCAL_AMFLAGS = -I m4
-
-EXTRA_DIST = libetpan-config.in libetpan-config.h.in COPYRIGHT
-
-bin_SCRIPTS = libetpan-config
-
-# The file stamp-prepare is generated in the top build directory by
-# rules defined in rules.mk.
-CLEANFILES = stamp-prepare libetpan-config.h 
-
-DISTCLEANFILES = libetpan-config
-
-SUBDIRS = build-windows include src tests doc
-
-BUILT_SOURCES += libetpan-config.h
-
-etpaninclude_HEADERS = libetpan-config.h
-
-# We need to build the header file before the link farm for VPATH
-# builds.
-$(top_builddir)/stamp-prepare: libetpan-config.h
-
-libetpan-config.h: libetpan-config.h.in config.h
-	cat $(srcdir)/libetpan-config.h.in | $(CPP) -I$(top_builddir) - \
-	| sed -e '/^#/d;/^[ \t]*$$/d;s/^@/#/' > $@

+ 0 - 284
deltachat-ios/libraries/libetpan/NEWS

@@ -1,284 +0,0 @@
-2006-03-22 - libetpan-0.45
-
-	* release 0.45 - Depth Charge
-	    bugfix release
-
-2006-03-08 - libetpan-0.43
-
-	* release 0.43 - Lateralus
-	    bugfix release
-
-2006-01-09 - libetpan-0.42
-
-	* release 0.41 - Figure Number Five
-	    bugfix release
-
-2005-12-02 - libetpan-0.41
-
-    * release 0.41 - Transfixion
-        * passphrase is implemented for S/MIME and PGP.
-        * avoid symbols conflict between GnuTLS and OpenSSL.
-
-2005-10-07 - libetpan-0.40 - hoa
-
-    * release 0.40 - Kashmir
-
-	* SSL initialization is optional.
-
-2005-09-16 - libetpan-0.39 - hoa
-
-    * release 0.39 - Deliverance
-
-	* compatibility with GnuTLS
-	* SASL for higher level
-									
-2005-07-20 - libetpan-0.38 - hoa
-
-    * release 0.38 - Deadwing
-
-	* fixed SSL
-	* IMAP improvements
-	* SASL
-
-2005-07-03 - libetpan-0.37 - hoa
-
-    * release 0.37 - Deadwing
-
-	* windows port
-	* fixed IMAP implementation (for sylpheed)
-
-2005-02-22 - libetpan-0.36 - hoa
-
-    * release 0.36 - Silver Drop
-        
-        * memory leak
-        * fixed maildir support
-
-2004-12-28 - libetpan-0.35 - hoa
-
-    libEtPan! - a mail library
-	
-    	* release 0.35 - Dimebag Darrell
-
-	* minor bugfixes.
-
-2004-11-04 - libetpan-0.34 - hoa
-
-    libEtPan! - a mail library
-	
-	* release 0.34 - edge
-
-	* general
-	   - support for debian systems mbox
-	   - ability to disable thread-safe support
-
-
-2004-08-24 - libetpan-0.33 - hoa
-
-    libEtPan! - a mail library
-	
-	* release 0.33 - entropia
-
-	* general
-	   - bugfixes in IMAP module and mailstream
-	   - fixed low-level data structures
-	   - better support for ARM and PPC architecture
-       - support for cross-compilation	
-	   - fixed Berkeley DB support
-	   - changed folder structure of libetpan package
-	   - can now add a message to a mailbox with flags
-	   - support for hotmail mailboxes (with help of hotwayd)
-	   - added Berkeley DB mail storage as experimental
-       - added support for PGP and S/MIME
-	   - better folder API
-
-
-2003-12-16 - libetpan-0.32 - hoa
-
-	libEtPan! - a mail library
-
-	* release 0.32 - Black Utopia
-
-	* general
-	    - added documentation for IMF / tools
-	    - bugfixes in IMAP module due to structures change.
-	    - Application that use libEtPan! now have to use
-	        '#include <libetpan/libetpan.h>'
-
-	* generic    
-	    - get_message() is implemented in Maildir cached driver.
-
-2003-12-10 - libEtPan! version 0.31
-
-	libEtPan! - a mail library
-
-	* release 0.31 - Steve Morse release
-
-	* general
-	    - all fields name of structures are changed.
-	    - bugfixes.
-	    - union {} are added everywhere it is possible to save memory.
-	    - support for Berkeley DB 1.
-	    - improved compatibility with FreeBSD and Mac OS X.
-	
-	* drivers
-	    - cache drivers are disable if Berkeley DB is not found.
-	    - disable search call.
-	    - support of buggy Courier-IMAP server.
-	    - semantic of mailsession_get_envelopes_list() changed : it 
-	        does no more remove messages from the list.
-	    - mailsession_get_message_by_uid() is added and implemented 
-	        in some drivers.
-
-2003-11-21 - libEtPan! version 0.30
-
-	libEtPan! - a mail library
-
-	* release 0.30 - Spock's Beard release
-	
-	*  main new features
-	    - cache for drivers is cleaned up.
-	    - maildir driver.
-
-	* general
-	    - fixed several memory leaks.
-	    
-	    - defines now exist for new features since version 0.29
-
-
-	* tools
-	    - dump of network traffic is now possible by setting
-	      exported variable mailstream_debug to 1.
-	    
-	    - TLS/SSL driver for stream is fixed.
-	    
-	* imf
-	    - fixed RFC 2822 format, wrap headers and break lines
-	      when they are longer than requirement (998).
-	    
-	    - reduced size of headers data.
-	      a union is used inside the structure.
-	      *** WARNING *** : this change use of structure field as a union
-	      member is used in mailimf_field structure.
-
-	* imap
-	   - several fixes in IMAP module.
-	
-	* mime
-	   - fixed quoted-printable parser.
-	
-	* generic - cache for drivers
-	   - cache database is now cleaned up.
-	   
-	   - fixed header fields cache.
-	      *** WARNING *** cache format changed. You should reset all
-	      your cache of headers (env.db).
-
-	* generic - threading
-      
-	   - fixed threading when threading by references with subject.
-
-	* generic - drivers for message
-   
-	   - separated flush() and check() in message.
-	     *** WARNING *** : this changes the API of the message.
-	     flush() is used to free the internal structure used
-	     to store the MIME structure of the message. It invalidates
-	     the "mime" member of the message.
-	     check() is used for to notify the modification of message
-	     flags to the session, so that the session saves the flags
-	     of the message at the next call of mailsession_check() or
-	     when leaving the session.
-
-	   - IMAP implementation is more compliant.
-	   
-	   - added driver to build MIME message and see the rendering
-	     through fetch functions.
-	     
-	   - added driver to parse message content given with a string.
-
-	* generic - drivers for maildir
-
-	   - maildir driver for storage / session / messages
-	     is implemented.
-
-* 2003-10-06 - libEtPan! version 0.29
-
-	libEtPan! - a mail library
-
-	* XetPan release
-
-	* debug for stream, network timeout
-	* SSL library is initialized by SSL stream driver
-	* fixed messages threading
-	* added SMTP authentication CRAM-MD5, LOGIN, PLAIN
-	* added example of use of SMTP
-
-* 2003-04-01 - libEtPan! version 0.28
-
-	libEtPan! - a mail library
-	
-	* Avril Lavigne Release
-
-	* fixed IMAP parser
-	* access to network protocols with a command
-	* pop3 driver can try APOP authentication and fallback on clear
-		authentication
-
-* 2002-12-18 - libEtPan! version 0.27
-
-	libEtPan! - a mail library
-	
-	* Christmas release ^^ //clindoeil
-
-	* helper interface for IMF (RFC 2822) and MIME
-	* changed interface for mail threading so that a default
-	    charset can be set.
-		*** this means that mail threading INTERFACE CHANGED ***
-	* API documentation in code
-	* flags directory and cache directory can be different.
-		*** this means that storage INTERFACE CHANGED ***
-
-* 2002-09-02 - libEtPan! version 0.26
-
-	libEtPan! - a mail library
-
-	* flags for all cache drivers
-	* flags stored on disk use Berkeley DB
-	* mailmessage, session and storage interface are separated
-		*** this means that generic INTERFACE CHANGED ***
-	* fixes various bugs and memory leaks
-
-	etpan - a console mail client
-
-	* available on CVS
-	* virtual folder (using storage interface) is used
-	* folder list view / message list view / message view
-	* we can poll for status of mailboxes
-	* got rid of expat
-	* uses new interface of libEtPan!
-
-* 2002-06-26 - libEtPan! version 0.25
-
-	libEtPan! - a mail library
-
-	* BSD licence
-	* portability tested on Solaris, FreeBSD, IRIX and Linux
-	* implementation of messages threads
-	* MIME message generator
-	* drivers are implemented for IMAP4rev1, POP3, NNTP, MH, mbox
-	    in both cached and non-cached version.
-
-	etpan - a console mail client
-
-	* a small mail client not distributed has been implemented
-	    written in ncurses
-	    featuring :
-		- MIME message editor
-	    	- IMAP4rev1, POP3, NNTP, MH, mbox access
-	    	- renderer (HTML rendering for example)
-	    	- retrieving of MIME parts
-		- messages threads
-
-	    big missing feature :
-		- removing messages is not yet possible

+ 0 - 62
deltachat-ios/libraries/libetpan/README.md

@@ -1,62 +0,0 @@
-## LibEtPan
-
-The purpose of this mail library is to provide a portable, efficient framework for different kinds of mail access: IMAP, SMTP, POP and NNTP.
-
-It provides an API for C language.
-
-[![Build Status](https://travis-ci.org/dinhviethoa/libetpan.png?branch=master)](https://travis-ci.org/dinhviethoa/libetpan)
-
-## Features
-
-- IMAP
-- SMTP
-- POP
-- NNTP
-- RFC822/MIME message builder
-- RFC822/MIME message parser
-- Maildir
-- mbox
-- MH
-
-## Build instructions
-
-### Unix
-
-You need to install autoconf, automake and libtool.
-They can be installed using [brew](http://brew.sh/).
-
-    $ ./autogen.sh
-    $ make
-
-You can use flag --with-poll for using poll() instead of select() for checking connection status
-
-### How to link with it
-
-    $ gcc -c -o sample.o sample.c `libetpan-config --cflags`
-    $ gcc -o sample sample.o `libetpan-config --libs`
-
-### Mac / iOS
-
-- Download Xcode
-- Open `build-mac/libetpan.xcodeproj`
-- Choose the correct target "static libetpan" for Mac or "libetpan ios" for iOS.
-- Build
-
-### Setup a Mac project
-
-- Add `libetpan.xcodeproj` as sub-project
-- Link with libetpan.a
-
-### Setup an iOS project
-
-- Add `libetpan.xcodeproj` as sub-project
-- Link with libetpan-ios.a
-- Set "Other Linker Flags": `-lsasl2`
-
-### Build on Windows
-
-- See README and Visual Studio Solution in build-windows folder
-
-## More information
-
-See http://etpan.org/libetpan.html for more information and examples.

+ 0 - 94
deltachat-ios/libraries/libetpan/autogen.sh

@@ -1,94 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-
-# name of the current package
-PKG_NAME=`basename \`(cd $srcdir; pwd)\``
-
-# default configure options
-conf_flags="--enable-debug"
-
-DIE=0
-libtool=0
-gettext=0
-run_automake=0
-libtoolize=libtoolize
-
-if which glibtoolize >/dev/null 2>&1 ; then
-    libtoolize=glibtoolize
-fi
-
-missing() {
-  echo
-  echo "**Error**: You must have \`$1' installed to compile $PKG_NAME."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-(aclocal --version) < /dev/null > /dev/null 2>&1 || missing aclocal
-(autoconf --version) < /dev/null > /dev/null 2>&1 || missing autoconf
-
-grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && gettext=1
-grep "^AC_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null && libtool=1
-grep "^AM_INIT_AUTOMAKE" $srcdir/configure.ac >/dev/null && run_automake=1
-
-if test "$gettext" -eq 1; then
-  grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
-  (gettextize --version) < /dev/null > /dev/null 2>&1 || missing gettext
-fi
-
-if test "$libtool" -eq 1; then
-  ($libtoolize --version) < /dev/null > /dev/null 2>&1 || missing libtool
-fi
-
-if test "$DIE" -eq 1; then
-  exit 1
-fi
-
-if test -z "$*"; then
-  echo "**Warning**: I am going to run \`configure' with default arguments."
-  echo "If you wish to pass any others to it, please specify them on the"
-  echo \`$0\'" command line."
-  echo
-else
-  unset conf_flags
-fi
-
-if test  "$gettext" -eq 1; then
-  echo "Running gettextize...  Ignore non-fatal messages."
-  echo "no" | gettextize --force --copy
-fi
-
-if test  "$libtool" -eq 1; then
-  echo "Running libtoolize..."
-  $libtoolize --force --copy
-fi
-
-echo "Running aclocal..."
-aclocal -I m4
-
-echo "Running autoheader..."
-autoheader
-echo "Running autoconf ..."
-autoconf
-
-if test  "$run_automake" -eq 1; then
-  echo "Running automake..."
-  automake --add-missing --foreign --force --copy
-fi
-
-
-if test x$NOCONFIGURE = x; then
-  echo Running $srcdir/configure $conf_flags "$@" ...
-  $srcdir/configure $conf_flags "$@" \
-  && echo Now type \`make\' to compile $PKG_NAME
-else
-  echo Skipping configure process.
-fi
-
-#if which jade >/dev/null; then
-#	echo "Generate documentation ..."
-#	(cd doc && make doc)
-#fi

+ 0 - 9
deltachat-ios/libraries/libetpan/build-android/.gitignore

@@ -1,9 +0,0 @@
-dependencies/cyrus-sasl/cyrus-sasl-android-*.zip
-dependencies/cyrus-sasl/build-android/obj
-dependencies/openssl/openssl-android-*.zip
-dependencies/openssl/packages
-include/libetpan
-third-parties
-obj
-libetpan-android-*.zip
-

+ 0 - 13
deltachat-ios/libraries/libetpan/build-android/README.md

@@ -1,13 +0,0 @@
-## Build instruction for Android ##
-
-```
-$ export ANDROID_NDK=/path/to/android-ndk
-$ cd build-android
-$ ./build.sh
-```
-
-It will produce the following binaries:
-
-- libetpan-android-*version*.zip
-- dependencies/cyrus-sasl/cyrus-sasl-android-*version*.zip
-- dependencies/openssl/openssl-android-*version*.zip

+ 0 - 72
deltachat-ios/libraries/libetpan/build-android/build.sh

@@ -1,72 +0,0 @@
-#!/bin/sh
-
-build_version=6
-openssl_build_version=3
-cyrus_sasl_build_version=4
-package_name=libetpan-android
-
-current_dir="`pwd`"
-
-if test "x$ANDROID_NDK" = x ; then
-  echo should set ANDROID_NDK before running this script.
-  exit 1
-fi
-
-if test ! -f "$current_dir/dependencies/openssl/openssl-android-$openssl_build_version.zip" ; then
-  echo Building OpenSSL first
-  cd "$current_dir/dependencies/openssl"
-  ./build.sh
-fi
-
-if test ! -f "$current_dir/dependencies/cyrus-sasl/cyrus-sasl-android-$cyrus_sasl_build_version.zip" ; then
-  echo Building Cyrus SASL first
-  cd "$current_dir/dependencies/cyrus-sasl"
-  ./build.sh
-fi
-
-function build {
-  rm -rf "$current_dir/obj"
-  
-  cd "$current_dir/jni"
-  $ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
-    OPENSSL_PATH="$current_dir/third-party/openssl-android-$openssl_build_version" \
-    CYRUS_SASL_PATH="$current_dir/third-party/cyrus-sasl-android-$cyrus_sasl_build_version"
-
-  mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
-  cp "$current_dir/obj/local/$TARGET_ARCH_ABI/libetpan.a" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
-  rm -rf "$current_dir/obj"
-}
-
-mkdir -p "$current_dir/third-party"
-cd "$current_dir/third-party"
-unzip -qo "$current_dir/dependencies/openssl/openssl-android-$openssl_build_version.zip"
-unzip -qo "$current_dir/dependencies/cyrus-sasl/cyrus-sasl-android-$cyrus_sasl_build_version.zip"
-
-cd "$current_dir/.."
-tar xzf "$current_dir/../build-mac/autogen-result.tar.gz"
-./configure
-make prepare
-
-# Copy public headers to include
-cp -r include/libetpan "$current_dir/include"
-mkdir -p "$current_dir/$package_name-$build_version/include"
-cp -r include/libetpan "$current_dir/$package_name-$build_version/include"
-
-# Start building.
-ANDROID_PLATFORM=android-16
-archs="armeabi armeabi-v7a x86"
-for arch in $archs ; do
-  TARGET_ARCH_ABI=$arch
-  build
-done
-ANDROID_PLATFORM=android-21
-archs="arm64-v8a"
-for arch in $archs ; do
-  TARGET_ARCH_ABI=$arch
-  build
-done
-
-rm -rf "$current_dir/third-party"
-cd "$current_dir"
-zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
-rm -rf "$package_name-$build_version"

+ 0 - 607
deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build-android/include/config.h

@@ -1,607 +0,0 @@
-/* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.in by autoheader.  */
-
-
-/* acconfig.h - autoheader configuration input */
-/* 
- * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The name "Carnegie Mellon University" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For permission or any other legal
- *    details, please contact  
- *      Office of Technology Transfer
- *      Carnegie Mellon University
- *      5000 Forbes Avenue
- *      Pittsburgh, PA  15213-3890
- *      (412) 268-4387, fax: (412) 268-7395
- *      tech-transfer@andrew.cmu.edu
- *
- * 4. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by Computing Services
- *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
- *
- * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
- * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-
-/* Runtime config file location */
-#define CONFIGDIR "/usr/lib/sasl2:/etc/sasl2"
-
-/* Do we need a leading _ for dlsym? */
-/* #undef DLSYM_NEEDS_UNDERSCORE */
-
-/* Should we build a shared plugin (via dlopen) library? */
-/* #undef DO_DLOPEN */
-
-/* should we support sasl_checkapop? */
-#define DO_SASL_CHECKAPOP /**/
-
-/* should we support setpass() for SRP? */
-/* #undef DO_SRP_SETPASS */
-
-/* should we mutex-wrap calls into the GSS library? */
-#define GSS_USE_MUTEXES /**/
-
-/* Enable 'alwaystrue' password verifier? */
-/* #undef HAVE_ALWAYSTRUE */
-
-/* Include support for Courier's authdaemond? */
-#define HAVE_AUTHDAEMON /**/
-
-/* Define to 1 if you have the <des.h> header file. */
-/* #undef HAVE_DES_H */
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#define HAVE_DIRENT_H 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the `dns_lookup' function. */
-/* #undef HAVE_DNS_LOOKUP */
-
-/* Define to 1 if you have the `dn_expand' function. */
-#define HAVE_DN_EXPAND 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Do we have a getaddrinfo? */
-#define HAVE_GETADDRINFO /**/
-
-/* Define to 1 if you have the `getdomainname' function. */
-#define HAVE_GETDOMAINNAME 1
-
-/* Define to 1 if you have the `gethostname' function. */
-#define HAVE_GETHOSTNAME 1
-
-/* Do we have a getnameinfo() function? */
-#define HAVE_GETNAMEINFO /**/
-
-/* Define to 1 if you have the `getpassphrase' function. */
-/* #undef HAVE_GETPASSPHRASE */
-
-/* Define to 1 if you have the `getpwnam' function. */
-#define HAVE_GETPWNAM 1
-
-/* Define to 1 if you have the `getspnam' function. */
-/* #undef HAVE_GETSPNAM */
-
-/* do we have getsubopt()? */
-#define HAVE_GETSUBOPT /**/
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define to 1 if you have the <gssapi/gssapi_ext.h> header file. */
-/* #undef HAVE_GSSAPI_GSSAPI_EXT_H */
-
-/* Define if you have the gssapi.h header file */
-#define HAVE_GSSAPI_H /**/
-
-/* Define to 1 if you have the `gsskrb5_register_acceptor_identity' function.
-   */
-/* #undef HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY */
-
-/* Define if your GSSAPI implementation defines GSS_C_NT_HOSTBASED_SERVICE */
-#define HAVE_GSS_C_NT_HOSTBASED_SERVICE /**/
-
-/* Define if your GSSAPI implementation defines GSS_C_NT_USER_NAME */
-#define HAVE_GSS_C_NT_USER_NAME /**/
-
-/* Define to 1 if you have the `gss_decapsulate_token' function. */
-/* #undef HAVE_GSS_DECAPSULATE_TOKEN */
-
-/* Define to 1 if you have the `gss_encapsulate_token' function. */
-/* #undef HAVE_GSS_ENCAPSULATE_TOKEN */
-
-/* Define to 1 if you have the `gss_get_name_attribute' function. */
-/* #undef HAVE_GSS_GET_NAME_ATTRIBUTE */
-
-/* Define to 1 if you have the `gss_oid_equal' function. */
-/* #undef HAVE_GSS_OID_EQUAL */
-
-/* Define to 1 if you have the `inet_aton' function. */
-#define HAVE_INET_ATON 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `jrand48' function. */
-#define HAVE_JRAND48 1
-
-/* Do we have Kerberos 4 Support? */
-/* #undef HAVE_KRB */
-
-/* Define to 1 if you have the `krb_get_err_text' function. */
-/* #undef HAVE_KRB_GET_ERR_TEXT */
-
-/* Define to 1 if you have the <lber.h> header file. */
-/* #undef HAVE_LBER_H */
-
-/* Define to 1 if you have the <ldap.h> header file. */
-/* #undef HAVE_LDAP_H */
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#define HAVE_LIBRESOLV 1
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <malloc.h> header file. */
-/* #undef HAVE_MALLOC_H */
-
-/* Define to 1 if you have the `memcpy' function. */
-#define HAVE_MEMCPY 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mkdir' function. */
-#define HAVE_MKDIR 1
-
-/* Do we have mysql support? */
-/* #undef HAVE_MYSQL */
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
-/* Do we have OpenSSL? */
-#define HAVE_OPENSSL /**/
-
-/* Use OPIE for server-side OTP? */
-/* #undef HAVE_OPIE */
-
-/* Define to 1 if you have the <pam/pam_appl.h> header file. */
-/* #undef HAVE_PAM_PAM_APPL_H */
-
-/* Define to 1 if you have the <paths.h> header file. */
-#define HAVE_PATHS_H 1
-
-/* Do we have Postgres support? */
-/* #undef HAVE_PGSQL */
-
-/* Include Support for pwcheck daemon? */
-/* #undef HAVE_PWCHECK */
-
-/* Include support for saslauthd? */
-#define HAVE_SASLAUTHD /**/
-
-/* Define to 1 if you have the <security/pam_appl.h> header file. */
-#define HAVE_SECURITY_PAM_APPL_H 1
-
-/* Define to 1 if you have the `select' function. */
-#define HAVE_SELECT 1
-
-/* Does the system have snprintf()? */
-#define HAVE_SNPRINTF /**/
-
-/* Does sockaddr have an sa_len? */
-/* #undef HAVE_SOCKADDR_SA_LEN */
-
-/* Define to 1 if you have the `socket' function. */
-#define HAVE_SOCKET 1
-
-/* Do we have a socklen_t? */
-#define HAVE_SOCKLEN_T /**/
-
-/* Do we have SQLite support? */
-/* #undef HAVE_SQLITE */
-
-/* Do we have SQLite3 support? */
-/* #undef HAVE_SQLITE3 */
-
-/* Is there an ss_family in sockaddr_storage? */
-#define HAVE_SS_FAMILY /**/
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strspn' function. */
-#define HAVE_STRSPN 1
-
-/* Define to 1 if you have the `strstr' function. */
-#define HAVE_STRSTR 1
-
-/* Define to 1 if you have the `strtol' function. */
-#define HAVE_STRTOL 1
-
-/* Do we have struct sockaddr_stroage? */
-#define HAVE_STRUCT_SOCKADDR_STORAGE /**/
-
-/* Define to 1 if you have the <sysexits.h> header file. */
-#define HAVE_SYSEXITS_H 1
-
-/* Define to 1 if you have the `syslog' function. */
-#define HAVE_SYSLOG 1
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_DIR_H */
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_NDIR_H */
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <varargs.h> header file. */
-/* #undef HAVE_VARARGS_H */
-
-/* Does the system have vsnprintf()? */
-#define HAVE_VSNPRINTF /**/
-
-/* define if your compiler has __attribute__ */
-#define HAVE___ATTRIBUTE__ 1
-
-/* Should we keep handle to Berkeley DB open in SASLDB plugin? */
-/* #undef KEEP_DB_OPEN */
-
-/* Ignore IP Address in Kerberos 4 tickets? */
-/* #undef KRB4_IGNORE_IP_ADDRESS */
-
-/* Name of package */
-#define PACKAGE "cyrus-sasl"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME ""
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING ""
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION ""
-
-/* Where do we look for Courier authdaemond's socket? */
-#define PATH_AUTHDAEMON_SOCKET "/dev/null"
-
-/* Where do we look for saslauthd's socket? */
-#define PATH_SASLAUTHD_RUNDIR "/var/state/saslauthd"
-
-/* Runtime plugin location */
-#define PLUGINDIR "/usr/lib/sasl2"
-
-/* Force a preferred mechanism */
-/* #undef PREFER_MECH */
-
-/* Location of pwcheck socket */
-/* #undef PWCHECKDIR */
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#define RETSIGTYPE void
-
-/* Use BerkeleyDB for SASLdb */
-/* #undef SASL_BERKELEYDB */
-
-/* Path to default SASLdb database */
-#define SASL_DB_PATH "/etc/sasldb2"
-
-/* File to use for source of randomness */
-#define SASL_DEV_RANDOM "/dev/random"
-
-/* Use GDBM for SASLdb */
-/* #undef SASL_GDBM */
-
-/* Use NDBM for SASLdb */
-#define SASL_NDBM /**/
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 8
-
-/* Link ANONYMOUS Staticly */
-#define STATIC_ANONYMOUS /**/
-
-/* Link CRAM-MD5 Staticly */
-#define STATIC_CRAMMD5 /**/
-
-/* Link DIGEST-MD5 Staticly */
-#define STATIC_DIGESTMD5 /**/
-
-/* Link GSSAPI Staticly */
-/* #undef STATIC_GSSAPIV2 */
-
-/* User KERBEROS_V4 Staticly */
-/* #undef STATIC_KERBEROS4 */
-
-/* Link ldapdb plugin Staticly */
-/* #undef STATIC_LDAPDB */
-
-/* Link LOGIN Staticly */
-/* #undef STATIC_LOGIN */
-
-/* Link NTLM Staticly */
-/* #undef STATIC_NTLM */
-
-/* Link OTP Staticly */
-#define STATIC_OTP /**/
-
-/* Link PASSDSS Staticly */
-/* #undef STATIC_PASSDSS */
-
-/* Link PLAIN Staticly */
-#define STATIC_PLAIN /**/
-
-/* Link SASLdb Staticly */
-/* #undef STATIC_SASLDB */
-
-/* Link SCRAM Staticly */
-#define STATIC_SCRAM /**/
-
-/* Link SQL plugin staticly */
-/* #undef STATIC_SQL */
-
-/* Link SRP Staticly */
-/* #undef STATIC_SRP */
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Should we try to dlopen() plugins while staticly compiled? */
-/* #undef TRY_DLOPEN_WHEN_STATIC */
-
-/* use the doors IPC API for saslauthd? */
-/* #undef USE_DOORS */
-
-/* Version number of package */
-#define VERSION "2.1.25"
-
-/* Use DES */
-#define WITH_DES /**/
-
-/* Linking against dmalloc? */
-/* #undef WITH_DMALLOC */
-
-/* Use internal RC4 implementation? */
-#define WITH_RC4 /**/
-
-/* Use OpenSSL DES Implementation */
-#define WITH_SSL_DES /**/
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef mode_t */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef pid_t */
-
-
-
-
-/* Create a struct iovec if we need one */
-#if !defined(_WIN32) && !defined(HAVE_SYS_UIO_H)
-/* (win32 is handled in sasl.h) */
-struct iovec {
-    char *iov_base;
-    long iov_len;
-};
-#else
-#include <sys/types.h>
-#include <sys/uio.h>
-#endif
-
-/* location of the random number generator */
-#ifdef DEV_RANDOM
-/* #undef DEV_RANDOM */
-#endif
-#define DEV_RANDOM SASL_DEV_RANDOM
-
-/* if we've got krb_get_err_txt, we might as well use it;
-   especially since krb_err_txt isn't in some newer distributions
-   (MIT Kerb for Mac 4 being a notable example). If we don't have
-   it, we fall back to the krb_err_txt array */
-#ifdef HAVE_KRB_GET_ERR_TEXT
-#define get_krb_err_txt krb_get_err_text
-#else
-#define get_krb_err_txt(X) (krb_err_txt[(X)])
-#endif
-
-/* Make Solaris happy... */
-#ifndef __EXTENSIONS__
-#define __EXTENSIONS__
-#endif
-
-/* Make Linux happy... */
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#ifndef HAVE___ATTRIBUTE__
-/* Can't use attributes... */
-#define __attribute__(foo)
-#endif
-
-#define SASL_PATH_ENV_VAR "SASL_PATH"
-#define SASL_CONF_PATH_ENV_VAR "SASL_CONF_PATH"
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#ifndef WIN32
-# include <netdb.h>
-# ifdef HAVE_SYS_PARAM_H
-#  include <sys/param.h>
-# endif
-#else /* WIN32 */
-# include <winsock2.h>
-#endif /* WIN32 */
-#include <string.h>
-
-#include <netinet/in.h>
-
-#ifndef HAVE_SOCKLEN_T
-typedef unsigned int socklen_t;
-#endif /* HAVE_SOCKLEN_T */
-
-#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
-#define	_SS_MAXSIZE	128	/* Implementation specific max size */
-#define	_SS_PADSIZE	(_SS_MAXSIZE - sizeof (struct sockaddr))
-
-struct sockaddr_storage {
-	struct	sockaddr ss_sa;
-	char		__ss_pad2[_SS_PADSIZE];
-};
-# define ss_family ss_sa.sa_family
-#endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
-
-#ifndef AF_INET6
-/* Define it to something that should never appear */
-#define	AF_INET6	AF_MAX
-#endif
-
-#ifndef HAVE_GETADDRINFO
-#define	getaddrinfo	sasl_getaddrinfo
-#define	freeaddrinfo	sasl_freeaddrinfo
-#define	gai_strerror	sasl_gai_strerror
-#endif
-
-#ifndef HAVE_GETNAMEINFO
-#define	getnameinfo	sasl_getnameinfo
-#endif
-
-#if !defined(HAVE_GETNAMEINFO) || !defined(HAVE_GETADDRINFO)
-#include "gai.h"
-#endif
-
-#ifndef AI_NUMERICHOST   /* support glibc 2.0.x */
-#define AI_NUMERICHOST  4
-#define NI_NUMERICHOST  2
-#define NI_NAMEREQD     4
-#define NI_NUMERICSERV  8
-#endif
-
-/* Defined in RFC 1035. max strlen is only 253 due to length bytes. */
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  255
-#endif
-
-// #ifndef HAVE_SYSEXITS_H
-// #include "exits.h"
-// #else
-// #include "sysexits.h"
-// #endif
-
-/* Get the correct time.h */
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#ifndef HIER_DELIMITER
-#define HIER_DELIMITER '/'
-#endif
-
-#endif /* CONFIG_H */
-

+ 0 - 54
deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build-android/jni/Android.mk

@@ -1,54 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-src_files = \
-lib/auxprop.c \
-lib/canonusr.c \
-lib/checkpw.c \
-lib/client.c \
-lib/common.c \
-lib/config.c \
-lib/dlopen.c \
-lib/external.c \
-lib/getsubopt.c \
-lib/md5.c \
-lib/saslutil.c \
-lib/server.c \
-lib/seterror.c \
-lib/snprintf.c \
-plugins/anonymous.c \
-plugins/anonymous_init.c \
-plugins/cram.c \
-plugins/crammd5_init.c \
-plugins/digestmd5.c \
-plugins/digestmd5_init.c \
-plugins/login.c \
-plugins/login_init.c \
-plugins/ntlm.c \
-plugins/ntlm_init.c \
-plugins/otp.c \
-plugins/otp_init.c \
-plugins/passdss.c \
-plugins/passdss_init.c \
-plugins/plain.c \
-plugins/plain_init.c \
-plugins/plugin_common.c \
-plugins/scram.c \
-plugins/scram_init.c \
-plugins/srp.c \
-plugins/srp_init.c
-
-src_dir := $(LOCAL_PATH)/../..
-
-LOCAL_MODULE := sasl2
-
-ifeq ($(OPENSSL_PATH),)
-$(error OPENSSL_PATH must be set)
-endif
-
-NDK_TOOLCHAIN_VERSION := clang
-LOCAL_C_INCLUDES += $(src_dir) $(src_dir)/include $(src_dir)/plugins \
-   $(src_dir)/build-android/include $(OPENSSL_PATH)/include
-LOCAL_SRC_FILES := $(addprefix $(src_dir)/, $(src_files))
-
-include $(BUILD_STATIC_LIBRARY)

+ 0 - 78
deltachat-ios/libraries/libetpan/build-android/dependencies/cyrus-sasl/build.sh

@@ -1,78 +0,0 @@
-#!/bin/sh
-
-version=2.1.26
-build_version=4
-ARCHIVE=cyrus-sasl-$version
-openssl_build_version=3
-package_name=cyrus-sasl-android
-
-if test "x$ANDROID_NDK" = x ; then
-  echo should set ANDROID_NDK before running this script.
-  exit 1
-fi
-
-ARCHIVE_NAME=$ARCHIVE.tar.gz
-ARCHIVE_PATCH=$ARCHIVE.patch
-current_dir="`pwd`"
-package_dir="$current_dir/../../../build-mac/dependencies/packages"
-
-if [ ! -e "$package_dir/$ARCHIVE_NAME" ]; then
-  echo "Missing archive $ARCHIVE"
-  exit 1
-fi
-
-if test ! -f "$current_dir/../openssl/openssl-android-$openssl_build_version.zip" ; then
-  echo Building OpenSSL first
-  cd "$current_dir/../openssl"
-  ./build.sh
-fi
-
-function build {
-  rm -rf "$current_dir/src"
-  
-  mkdir -p "$current_dir/src"
-  cd "$current_dir/src"
-  tar xzf "$package_dir/$ARCHIVE_NAME"
-  if [ $? != 0 ]; then
-    echo "Unable to decompress $ARCHIVE_NAME"
-    exit 1
-  fi
-  
-  if test ! -f "$current_dir/$package_name-$build_version/include/sasl/sasl.h" ; then
-    mkdir -p "$current_dir/$package_name-$build_version"
-    mkdir -p "$current_dir/$package_name-$build_version/include/sasl"
-    public_headers="hmac-md5.h md5.h md5global.h sasl.h saslplug.h saslutil.h prop.h"
-    cd "$current_dir/src/$ARCHIVE/include"
-    cp -R $public_headers "$current_dir/$package_name-$build_version/include/sasl"
-  fi
-
-  cd "$current_dir/src"
-  unzip -q "$current_dir/../openssl/openssl-android-$openssl_build_version.zip"
-
-  cp -R "$current_dir/build-android" "$current_dir/src/$ARCHIVE"
-  cd "$current_dir/src/$ARCHIVE/build-android/jni"
-  $ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
-    OPENSSL_PATH="$current_dir/src/openssl-android-$openssl_build_version"
-
-  mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
-  cp "$current_dir/src/$ARCHIVE/build-android/obj/local/$TARGET_ARCH_ABI/libsasl2.a" "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
-  rm -rf "$current_dir/src"
-}
-
-# Start building.
-ANDROID_PLATFORM=android-16
-archs="armeabi armeabi-v7a x86"
-for arch in $archs ; do
-  TARGET_ARCH_ABI=$arch
-  build
-done
-ANDROID_PLATFORM=android-21
-archs="arm64-v8a"
-for arch in $archs ; do
-  TARGET_ARCH_ABI=$arch
-  build
-done
-
-cd "$current_dir"
-zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
-rm -rf "$package_name-$build_version"

+ 0 - 171
deltachat-ios/libraries/libetpan/build-android/dependencies/openssl/build.sh

@@ -1,171 +0,0 @@
-#!/bin/sh
-
-build_version=3
-version=1.0.2j
-package_name=openssl-android
-
-if test "x$ANDROID_NDK" = x ; then
-  echo should set ANDROID_NDK before running this script.
-  exit 1
-fi
-
-if test ! -f packages/openssl-$version.tar.gz; then
-  mkdir -p packages
-  cd packages
-  curl -O https://www.openssl.org/source/openssl-$version.tar.gz
-  cd ..
-fi
-
-function build_x86_64 {
-  toolchain=x86_64-4.9
-  toolchain_name=x86_64-linux-android
-  arch_cflags=""
-  arch_ldflags=""
-  arch_dir_name="x86_64"
-  openssl_configure_mode="android64"
-  ANDROID_PLATFORM=android-16
-  ARCH_FOLDER=arch-x86_64
-  export MACHINE=x86_64
-  export RELEASE=2.6.37
-  export SYSTEM=android
-  export ARCH=x86_64
-  export CROSS_COMPILE="x86_64-linux-android-"
-  export ANDROID_DEV="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr"
-  export HOSTCC=gcc
-  
-  build
-}
-
-function build_armeabi {
-  toolchain=arm-linux-androideabi-4.9
-  toolchain_name=arm-linux-androideabi
-  arch_cflags="-mthumb"
-  arch_ldflags=""
-  arch_dir_name="armeabi"
-  # openssl_configure_mode="android-armeabi"
-  openssl_configure_mode="android-armv7"
-  ANDROID_PLATFORM=android-16
-  ARCH_FOLDER=arch-arm
-  export MACHINE=armv7
-  export RELEASE=2.6.37
-  export SYSTEM=android
-  export ARCH=arm
-  export CROSS_COMPILE="arm-linux-androideabi-"
-  export ANDROID_DEV="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr"
-  export HOSTCC=gcc
-
-  build
-}
-
-function build_x86 {
-  toolchain=x86-4.9
-  toolchain_name=i686-linux-android
-  arch_cflags="-march=i686 -msse3 -mstackrealign -mfpmath=sse"
-  arch_ldflags=""
-  arch_dir_name="x86"
-  openssl_configure_mode="android-x86"
-  ANDROID_PLATFORM=android-16
-  ARCH_FOLDER=arch-x86
-  export MACHINE=i386
-  export RELEASE=2.6.37
-  export SYSTEM=android
-  export ARCH=x86
-  export CROSS_COMPILE="i686-linux-android-"
-  export ANDROID_DEV="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr"
-  export HOSTCC=gcc
-
-  build
-}
-
-function build_armeabi_v7a {
-  toolchain=arm-linux-androideabi-4.9
-  toolchain_name=arm-linux-androideabi
-  arch_cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
-  arch_ldflags="-march=armv7-a -Wl,--fix-cortex-a8"
-  arch_dir_name="armeabi-v7a"
-  # openssl_configure_mode="android-armeabi"
-  openssl_configure_mode="android-armv7"
-  ANDROID_PLATFORM=android-16
-  ARCH_FOLDER=arch-arm
-  export MACHINE=armv7-a
-  export RELEASE=2.6.37
-  export SYSTEM=android
-  export ARCH=arm
-  export CROSS_COMPILE="arm-linux-androideabi-"
-  export ANDROID_DEV="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr"
-  export HOSTCC=gcc
- 
-  build
-}
-
-function build_arm64_v8a {
-  toolchain=aarch64-linux-android-4.9
-  toolchain_name=aarch64-linux-android
-  arch_cflags="-march=armv8-a"
-  arch_ldflags="-march=armv8-a"
-  arch_dir_name="arm64-v8a"
-#  openssl_configure_mode="android64-aarch64"
-  openssl_configure_mode="android no-asm"
-  ANDROID_PLATFORM=android-21
-  ARCH_FOLDER=arch-arm64
-  export MACHINE=arm64
-  export RELEASE=2.6.37
-  export SYSTEM=android
-  export ARCH=aarch64
-  export CROSS_COMPILE="aarch64-linux-android-"
-  export ANDROID_DEV="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr"
-  export HOSTCC=gcc
-  
-  build
-}
-
-function build {
-  rm -rf "$current_dir/src"
-  mkdir -p "$current_dir/src"
-  cd "$current_dir/src"
-  
-  tar xzf "$current_dir/packages/openssl-$version.tar.gz"
-  cd openssl-$version
-
-  # toolchain_path="`pwd`/$toolchain_name"
-  toolchain_path="$ANDROID_NDK/toolchains/$toolchain/prebuilt/darwin-x86_64"
-  # "$ANDROID_NDK/build/tools/make-standalone-toolchain.sh" --platform=$android_platform --toolchain=$toolchain --install-dir="$toolchain_path"
-  toolchain_bin_path="$toolchain_path/bin"
-  saved_path="$PATH"
-  export PATH=$PATH:$toolchain_bin_path
-  export TOOL=arm-linux-androideabi
-  # export ndk_toolchain_base_name="$toolchain_bin_path/$toolchain_name"
-  # export CC=$ndk_toolchain_base_name-gcc
-  # export CXX=$ndk_toolchain_base_name-g++
-  # export LINK=${CXX}
-  # export LD=$ndk_toolchain_base_name-ld
-  # export AR=$ndk_toolchain_base_name-ar
-  # export RANLIB=$ndk_toolchain_base_name-ranlib
-  # export STRIP=$ndk_toolchain_base_name-strip
-  # export CPPFLAGS="$arch_cflags -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -I$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER/usr/include "
-  # export CXXFLAGS="$CPPFLAGS -frtti -fexceptions "
-  # export CFLAGS="$CPPFLAGS"
-  # export LDFLAGS="$arch_ldflags"
-  export CROSS_SYSROOT="$ANDROID_NDK/platforms/$ANDROID_PLATFORM/$ARCH_FOLDER"
-  ./Configure $openssl_configure_mode
-  make
-  
-  mkdir -p "$current_dir/$package_name-$build_version"
-  mkdir -p "$current_dir/$package_name-$build_version/libs/$arch_dir_name"
-  cp -r include "$current_dir/$package_name-$build_version"
-  cp libcrypto.a libssl.a "$current_dir/$package_name-$build_version/libs/$arch_dir_name"
-  cd "$current_dir"
-  rm -rf src
-  export PATH="$saved_path"
-}
-
-# start building.
-current_dir="`pwd`"
-build_armeabi
-build_armeabi_v7a
-build_x86
-build_arm64_v8a
-
-cd "$current_dir"
-zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
-rm -rf "$package_name-$build_version"

+ 0 - 180
deltachat-ios/libraries/libetpan/build-android/include/config.h

@@ -1,180 +0,0 @@
-/* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Check for Linux's /usr/include/features.h
- */
-#ifdef _FEATURES_H
-#  error  config.h must be first file included
-#endif
-
-/* Define to detected Berkeley DB major version number */
-/* #undef DBVERS */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#define HAVE_ARPA_INET_H 1
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#define HAVE_CTYPE_H 1
-
-/* Define to use curl */
-/* #undef HAVE_CURL */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to use expat */
-/* #undef HAVE_EXPAT */
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to use getopt_long */
-#define HAVE_GETOPT_LONG 1
-
-/* Define to 1 if you have the `getpagesize' function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define if you have the iconv() function. */
-/* #undef HAVE_ICONV */
-
-/* prototype of iconv() has const parameters */
-/* #undef HAVE_ICONV_PROTO_CONST */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to enable IPv6 support. */
-#define HAVE_IPV6 1
-
-/* Define to 1 if you have the `lockfile' library (-llockfile). */
-/* #undef HAVE_LIBLOCKFILE */
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-/* #undef HAVE_LIBNSL */
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-/* #undef HAVE_LIBSOCKET */
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Defined if we run on a W32 API based system */
-/* #undef HAVE_MINGW32_SYSTEM */
-
-/* Define to 1 if you have a working `mmap' system call. */
-#define HAVE_MMAP 1
-
-/* Define to 1 if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#define HAVE_NETINET_IN_H 1
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#define HAVE_PTHREAD_H 1
-
-/* Define to use setenv */
-#define HAVE_SETENV 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-/* #undef HAVE_WINSOCK2_H */
-
-/* Enable classes using zlib compression. */
-#define HAVE_ZLIB 1
-
-/* Define to include multithreading support */
-#define LIBETPAN_REENTRANT 1
-
-/* Define this to the version of libEtPan */
-#define LIBETPAN_VERSION "1.2-dev-20141203"
-
-/* Define this to the major version of libEtPan */
-#define LIBETPAN_VERSION_MAJOR 1
-
-/* Define this to the minor version of libEtPan */
-#define LIBETPAN_VERSION_MINOR 2
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#define LT_OBJDIR ".libs/"
-
-/* Name of package */
-#define PACKAGE "libetpan"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "libetpan-devel@lists.sourceforge.net"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "libetpan"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libetpan 1.2"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "libetpan"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2"
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to be lazy on protocol syntax */
-#define UNSTRICT_SYNTAX 1
-
-/* Define to use GnuTLS */
-/* #undef USE_GNUTLS */
-
-/* Define to use SASL */
-#define USE_SASL 1
-
-/* Define to use OpenSSL */
-#define USE_SSL 1
-
-/* Version number of package */
-#define VERSION "1.2"
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-/* #undef inline */
-#endif

+ 0 - 145
deltachat-ios/libraries/libetpan/build-android/jni/Android.mk

@@ -1,145 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-ifeq ($(OPENSSL_PATH),)
-$(error OPENSSL_PATH must be set)
-endif
-
-ifeq ($(CYRUS_SASL_PATH),)
-$(error CYRUS_SASL_PATH must be set)
-endif
-
-src_files = \
-./src/data-types/base64.c \
-./src/data-types/carray.c \
-./src/data-types/charconv.c \
-./src/data-types/chash.c \
-./src/data-types/clist.c \
-./src/data-types/connect.c \
-./src/data-types/mail_cache_db.c \
-./src/data-types/maillock.c \
-./src/data-types/mailsasl.c \
-./src/data-types/mailsem.c \
-./src/data-types/mailstream.c \
-./src/data-types/mailstream_cancel.c \
-./src/data-types/mailstream_cfstream.c \
-./src/data-types/mailstream_compress.c \
-./src/data-types/mailstream_helper.c \
-./src/data-types/mailstream_low.c \
-./src/data-types/mailstream_socket.c \
-./src/data-types/mailstream_ssl.c \
-./src/data-types/md5.c \
-./src/data-types/mmapstring.c \
-./src/data-types/timeutils.c \
-./src/low-level/imap/acl.c \
-./src/low-level/imap/acl_parser.c \
-./src/low-level/imap/acl_sender.c \
-./src/low-level/imap/acl_types.c \
-./src/low-level/imap/annotatemore.c \
-./src/low-level/imap/annotatemore_parser.c \
-./src/low-level/imap/annotatemore_sender.c \
-./src/low-level/imap/annotatemore_types.c \
-./src/low-level/imap/condstore.c \
-./src/low-level/imap/condstore_types.c \
-./src/low-level/imap/enable.c \
-./src/low-level/imap/idle.c \
-./src/low-level/imap/mailimap.c \
-./src/low-level/imap/mailimap_compress.c \
-./src/low-level/imap/mailimap_extension.c \
-./src/low-level/imap/mailimap_helper.c \
-./src/low-level/imap/mailimap_id.c \
-./src/low-level/imap/mailimap_id_parser.c \
-./src/low-level/imap/mailimap_id_sender.c \
-./src/low-level/imap/mailimap_id_types.c \
-./src/low-level/imap/mailimap_keywords.c \
-./src/low-level/imap/mailimap_oauth2.c \
-./src/low-level/imap/mailimap_parser.c \
-./src/low-level/imap/mailimap_print.c \
-./src/low-level/imap/mailimap_sender.c \
-./src/low-level/imap/mailimap_socket.c \
-./src/low-level/imap/mailimap_sort.c \
-./src/low-level/imap/mailimap_sort_types.c \
-./src/low-level/imap/mailimap_ssl.c \
-./src/low-level/imap/mailimap_types.c \
-./src/low-level/imap/mailimap_types_helper.c \
-./src/low-level/imap/namespace.c \
-./src/low-level/imap/namespace_parser.c \
-./src/low-level/imap/namespace_sender.c \
-./src/low-level/imap/namespace_types.c \
-./src/low-level/imap/qresync.c \
-./src/low-level/imap/qresync_types.c \
-./src/low-level/imap/quota.c \
-./src/low-level/imap/quota_parser.c \
-./src/low-level/imap/quota_sender.c \
-./src/low-level/imap/quota_types.c \
-./src/low-level/imap/uidplus.c \
-./src/low-level/imap/uidplus_parser.c \
-./src/low-level/imap/uidplus_sender.c \
-./src/low-level/imap/uidplus_types.c \
-./src/low-level/imap/xgmlabels.c \
-./src/low-level/imap/xgmmsgid.c \
-./src/low-level/imap/xgmthrid.c \
-./src/low-level/imap/xlist.c \
-./src/low-level/imf/mailimf.c \
-./src/low-level/imf/mailimf_types.c \
-./src/low-level/imf/mailimf_types_helper.c \
-./src/low-level/imf/mailimf_write_file.c \
-./src/low-level/imf/mailimf_write_generic.c \
-./src/low-level/imf/mailimf_write_mem.c \
-./src/low-level/mime/mailmime.c \
-./src/low-level/mime/mailmime_content.c \
-./src/low-level/mime/mailmime_decode.c \
-./src/low-level/mime/mailmime_disposition.c \
-./src/low-level/mime/mailmime_types.c \
-./src/low-level/mime/mailmime_types_helper.c \
-./src/low-level/mime/mailmime_write_file.c \
-./src/low-level/mime/mailmime_write_generic.c \
-./src/low-level/mime/mailmime_write_mem.c \
-./src/low-level/nntp/newsnntp.c \
-./src/low-level/nntp/newsnntp_socket.c \
-./src/low-level/nntp/newsnntp_ssl.c \
-./src/low-level/pop3/mailpop3.c \
-./src/low-level/pop3/mailpop3_helper.c \
-./src/low-level/pop3/mailpop3_socket.c \
-./src/low-level/pop3/mailpop3_ssl.c \
-./src/low-level/smtp/mailsmtp.c \
-./src/low-level/smtp/mailsmtp_helper.c \
-./src/low-level/smtp/mailsmtp_oauth2.c \
-./src/low-level/smtp/mailsmtp_socket.c \
-./src/low-level/smtp/mailsmtp_ssl.c \
-./src/main/libetpan_version.c \
-./src/driver/implementation/data-message/data_message_driver.c \
-./src/driver/interface/maildriver.c \
-./src/driver/interface/maildriver_tools.c \
-./src/driver/interface/maildriver_types.c \
-./src/driver/interface/maildriver_types_helper.c \
-./src/driver/interface/mailfolder.c \
-./src/driver/interface/mailmessage.c \
-./src/driver/interface/mailmessage_tools.c \
-./src/driver/interface/mailmessage_types.c \
-./src/driver/interface/mailstorage.c \
-./src/driver/interface/mailstorage_tools.c
-
-NDK_TOOLCHAIN_VERSION := clang
-LOCAL_MODULE := etpan
-LOCAL_SRC_FILES := $(addprefix ../../, $(src_files))
-LOCAL_CFLAGS += -DHAVE_CONFIG_H=1
-c_includes = \
-src \
-src/data-types \
-src/low-level \
-src/low-level/imap \
-src/low-level/imf \
-src/low-level/mime \
-src/low-level/nntp \
-src/low-level/pop3 \
-src/low-level/smtp \
-src/main \
-src/driver/implementation/data-message \
-src/driver/interface
-
-LOCAL_C_INCLUDES = $(addprefix ../../, $(c_includes)) \
-  $(LOCAL_PATH)/../include $(LOCAL_PATH)/../include/libetpan \
-  $(OPENSSL_PATH)/include $(CYRUS_SASL_PATH)/include
-
-include $(BUILD_STATIC_LIBRARY)

+ 0 - 26
deltachat-ios/libraries/libetpan/build-mac/Info.plist

@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>NSPrincipalClass</key>
-	<string></string>
-</dict>
-</plist>

+ 0 - 6
deltachat-ios/libraries/libetpan/build-mac/README

@@ -1,6 +0,0 @@
-./update.sh will be run during the build of the Xcode project.
-
-For the developers:
-Run the following if any file has been added to the sources:
-./update.sh prepare
-It will rebuild autogen-result.tar.gz. This archive will contains the result of ./autogen.sh script.

BIN
deltachat-ios/libraries/libetpan/build-mac/autogen-result.tar.gz


+ 0 - 14
deltachat-ios/libraries/libetpan/build-mac/dependencies/cyrus-2.1.25-libetpan.patch

@@ -1,14 +0,0 @@
-diff -Naur cyrus-sasl-2.1.25/lib/client.c cyrus-sasl-2.1.25.new/lib/client.c
---- cyrus-sasl-2.1.25/lib/client.c	2011-09-02 05:58:01.000000000 -0700
-+++ cyrus-sasl-2.1.25.new/lib/client.c	2014-04-29 10:52:17.000000000 -0700
-@@ -503,8 +503,8 @@
-   
-   /* get the clientFQDN (serverFQDN was set in _sasl_conn_init) */
-   memset(name, 0, sizeof(name));
--  if (get_fqhostname (name, MAXHOSTNAMELEN, 0) != 0) {
--      return (SASL_FAIL);
-+  if (get_fqhostname (name, MAXHOSTNAMELEN, 1) != 0) {
-+      gethostname(name, MAXHOSTNAMELEN);
-   }
- 
-   result = _sasl_strdup(name, &conn->clientFQDN, NULL);

BIN
deltachat-ios/libraries/libetpan/build-mac/dependencies/packages/cyrus-sasl-2.1.25.tar.gz


BIN
deltachat-ios/libraries/libetpan/build-mac/dependencies/packages/cyrus-sasl-2.1.26.tar.gz


+ 0 - 216
deltachat-ios/libraries/libetpan/build-mac/dependencies/prepare-cyrus-sasl.sh

@@ -1,216 +0,0 @@
-#! /bin/bash -
-
-export PATH=/usr/bin:/bin:/usr/sbin:/sbin
-
-version=2.1.26
-ARCHIVE=cyrus-sasl-$version
-ARCHIVE_NAME=$ARCHIVE.tar.gz
-ARCHIVE_PATCH=$ARCHIVE.patch
-#url=ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$ARCHIVE_NAME
-url=ftp://ftp.cyrusimap.org/cyrus-sasl/$ARCHIVE_NAME
-patchfile=cyrus-2.1.25-libetpan.patch
-
-scriptdir="`pwd`"
-
-current_dir="$scriptdir"
-builddir="$current_dir/build/libsasl"
-BUILD_TIMESTAMP=`date +'%Y%m%d%H%M%S'`
-tempbuilddir="$builddir/workdir/$BUILD_TIMESTAMP"
-mkdir -p "$tempbuilddir"
-srcdir="$tempbuilddir/src"
-logdir="$tempbuilddir/log"
-resultdir="$builddir/builds"
-tmpdir="$tempbuilddir/tmp"
-
-mkdir -p "$resultdir"
-mkdir -p "$logdir"
-mkdir -p "$tmpdir"
-mkdir -p "$srcdir"
-
-if test -f "$resultdir/libsasl-$version-ios.tar.gz"; then
-	echo already built
-	cd "$scriptdir/.."
-	tar xzf "$resultdir/libsasl-$version-ios.tar.gz"
-	exit 0
-fi
-
-# download package file
-
-if test -f "$current_dir/packages/$ARCHIVE_NAME" ; then
-	:
-else
-	echo "download source package - $url"
-	
-	mkdir -p "$current_dir/packages"
-  cd "$current_dir/packages"
-	curl -O "$url"
-	if test x$? != x0 ; then
-		echo fetch of $ARCHIVE_NAME failed
-		exit 1
-	fi
-fi
-
-if [ ! -e "$current_dir/packages/$ARCHIVE_NAME" ]; then
-    echo "Missing archive $ARCHIVE"
-    exit 1
-fi
-
-echo "prepare sources"
-
-cd "$srcdir"
-tar -xzf "$current_dir/packages/$ARCHIVE_NAME"
-if [ $? != 0 ]; then
-    echo "Unable to decompress $ARCHIVE_NAME"
-    exit 1
-fi
-
-logfile="$srcdir/$ARCHIVE/build.log"
-
-echo "*** patching sources ***" > "$logfile" 2>&1
-
-cd "$srcdir/$ARCHIVE"
-patch -p1 < $current_dir/$patchfile
-# patch source files
-cd "$srcdir/$ARCHIVE/include"
-sed -E 's/\.\/makemd5 /.\/makemd5i386 /' < Makefile.am > Makefile.am.new
-mv Makefile.am.new Makefile.am
-sed -E 's/\.\/makemd5 /.\/makemd5i386 /' < Makefile.in > Makefile.in.new
-mv Makefile.in.new Makefile.in
-cd "$srcdir/$ARCHIVE/lib"
-sed -E 's/\$\(AR\) cru \.libs\/\$@ \$\(SASL_STATIC_OBJS\)/&; \$\(RANLIB\) .libs\/\$@/' < Makefile.in > Makefile.in.new
-mv Makefile.in.new Makefile.in
-
-echo "building tools"
-echo "*** generating makemd5 ***" >> "$logfile" 2>&1
-
-cd "$srcdir/$ARCHIVE"
-export SDKROOT=
-export IPHONEOS_DEPLOYMENT_TARGET=
-./configure > "$logfile" 2>&1
-if [[ "$?" != "0" ]]; then
-  echo "CONFIGURE FAILED"
-  exit 1
-fi
-cd include
-make makemd5 >> "$logfile" 2>&1
-if [[ "$?" != "0" ]]; then
-  echo "BUILD FAILED"
-  exit 1
-fi
-cd ..
-echo generated makemd5i386 properly
-mv "$srcdir/$ARCHIVE/include/makemd5" "$srcdir/$ARCHIVE/include/makemd5i386"
-make clean >>"$logfile" 2>&1
-make distclean >>"$logfile" 2>&1
-find . -name config.cache -print0 | xargs -0 rm
-
-cd "$srcdir/$ARCHIVE"
-
-export LANG=en_US.US-ASCII
-
-LIB_NAME=$ARCHIVE
-TARGETS="iPhoneOS iPhoneSimulator"
-
-SDK_IOS_MIN_VERSION=7.0
-SDK_IOS_VERSION="`xcodebuild -showsdks 2>/dev/null | grep iphoneos | sed 's/.*iphoneos\(.*\)/\1/'`"
-BUILD_DIR="$tmpdir/build"
-INSTALL_PATH="${BUILD_DIR}/${LIB_NAME}/universal"
-BITCODE_FLAGS="-fembed-bitcode"
-if test "x$NOBITCODE" != x ; then
-   BITCODE_FLAGS=""
-fi
-
-for TARGET in $TARGETS; do
-
-    DEVELOPER="$(xcode-select --print-path)"
-    SDK_ID="$(echo "$TARGET$SDK_IOS_VERSION" | tr A-Z a-z)"
-    SYSROOT="$(xcodebuild -version -sdk "$SDK_ID" 2>/dev/null | egrep '^Path: ' | cut -d ' ' -f 2)"
-
-    case $TARGET in
-        (iPhoneOS) 
-            ARCH=arm
-            MARCHS="armv7 armv7s arm64"
-            EXTRA_FLAGS="$BITCODE_FLAGS -miphoneos-version-min=$SDK_IOS_MIN_VERSION"
-            ;;
-        (iPhoneSimulator)
-            ARCH=i386
-            MARCHS="i386 x86_64"
-            EXTRA_FLAGS="-miphoneos-version-min=$SDK_IOS_MIN_VERSION"
-            ;;
-    esac
-    
-    for MARCH in $MARCHS; do
-				echo "building for $TARGET - $MARCH"
-				echo "*** building for $TARGET - $MARCH ***" >> "$logfile" 2>&1
-			
-        PREFIX=${BUILD_DIR}/${LIB_NAME}/${TARGET}${SDK_IOS_VERSION}${MARCH}
-        rm -rf $PREFIX
-
-        export CPPFLAGS="-arch ${MARCH} -isysroot ${SYSROOT}"
-        export CFLAGS="${CPPFLAGS} -Os ${EXTRA_FLAGS}"
-
-        OPENSSL="--with-openssl=$BUILD_DIR/openssl-1.0.0d/universal"
-        PLUGINS="--enable-otp=no --enable-digest=no --with-des=no --enable-login"
-        ./configure --host=${ARCH} --prefix=$PREFIX --enable-shared=no --enable-static=yes --with-pam=$BUILD_DIR/openpam-20071221/universal $PLUGINS >> "$logfile" 2>&1
-        make -j 8 >> "$logfile" 2>&1
-        if [[ "$?" != "0" ]]; then
-          echo "CONFIGURE FAILED"
-          cat "$logfile"
-          exit 1
-        fi
-        cd lib
-        make install >> "$logfile" 2>&1
-        cd ..
-        cd include
-        make install >> "$logfile" 2>&1
-        cd ..
-        cd plugins
-        make install >> "$logfile" 2>&1
-        cd ..
-        if [[ "$?" != "0" ]]; then
-          echo "BUILD FAILED"
-          cat "$logfile"
-          exit 1
-        fi
-        make clean >> "$logfile" 2>&1
-        make distclean >> "$logfile" 2>&1
-        find . -name config.cache -print0 | xargs -0 rm
-      done
-done
-
-echo "*** creating universal libs ***" >> "$logfile" 2>&1
-
-rm -rf "$INSTALL_PATH"
-mkdir -p "$INSTALL_PATH"
-mkdir -p "$INSTALL_PATH/lib"
-mkdir -p "$INSTALL_PATH/include/sasl"
-cp `find ./include -name '*.h'` "${INSTALL_PATH}/include/sasl"
-ALL_LIBS="libsasl2.a sasl2/libanonymous.a sasl2/libcrammd5.a sasl2/libplain.a sasl2/libsasldb.a sasl2/liblogin.a"
-for lib in $ALL_LIBS; do
-    dir="`dirname $lib`"
-    if [[ "$dir" != "." ]]; then
-        mkdir -p ${INSTALL_PATH}/lib/$dir
-    fi
-    LIBS=
-    for TARGET in $TARGETS; do
-        LIBS="$LIBS ${BUILD_DIR}/${LIB_NAME}/${TARGET}${SDK_IOS_VERSION}*/lib/${lib}"
-    done
-    lipo -create ${LIBS} -output "${INSTALL_PATH}/lib/${lib}"
-done
-
-echo "*** creating built package ***" >> "$logfile" 2>&1
-
-cd "$BUILD_DIR"
-mkdir -p libsasl-ios
-cp -r "$INSTALL_PATH"/* libsasl-ios/
-tar -czf "libsasl-$version-ios.tar.gz" libsasl-ios
-mkdir -p "$resultdir"
-mv "libsasl-$version-ios.tar.gz" "$resultdir"
-cd "$resultdir"
-ln -s "libsasl-$version-ios.tar.gz" "libsasl-prebuilt-ios.tar.gz"
-rm -rf "$tempbuilddir"
-
-cd "$scriptdir/.."
-tar xzf "$resultdir/libsasl-$version-ios.tar.gz"
-
-exit 0

+ 0 - 1765
deltachat-ios/libraries/libetpan/build-mac/libetpan Tests.xcodeproj/project.pbxproj

@@ -1,1765 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXAggregateTarget section */
-		367861D516AB4C1C002F2B96 /* All Tests */ = {
-			isa = PBXAggregateTarget;
-			buildConfigurationList = 367861D616AB4C1C002F2B96 /* Build configuration list for PBXAggregateTarget "All Tests" */;
-			buildPhases = (
-			);
-			dependencies = (
-				367861DA16AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861DC16AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861DE16AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861E016AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861E216AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861E416AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861E616AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861E816AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861EA16AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861EC16AB4C3E002F2B96 /* PBXTargetDependency */,
-				367861FE16AB4D5D002F2B96 /* PBXTargetDependency */,
-				3678621316AB4E30002F2B96 /* PBXTargetDependency */,
-				3678622516AB4E88002F2B96 /* PBXTargetDependency */,
-				3678623916AB4F0D002F2B96 /* PBXTargetDependency */,
-				3678624C16AB4F70002F2B96 /* PBXTargetDependency */,
-			);
-			name = "All Tests";
-			productName = "All Tests";
-		};
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
-		3678611516AB3995002F2B96 /* imap-sample.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E416AB36DF002F2B96 /* imap-sample.c */; };
-		3678611F16AB410C002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678612116AB411F002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678612316AB4131002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678612516AB4142002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678612C16AB4314002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678612E16AB4314002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678612F16AB4314002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678613016AB4314002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678613E16AB4411002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678614016AB4411002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678614116AB4411002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678614216AB4411002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678614A16AB4426002F2B96 /* mime-parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E916AB36DF002F2B96 /* mime-parse.c */; };
-		3678614B16AB442A002F2B96 /* mime-create.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E816AB36DF002F2B96 /* mime-create.c */; };
-		3678615016AB44A6002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678615216AB44A6002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678615316AB44A6002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678615416AB44A6002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678616116AB4547002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678616316AB4547002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678616416AB4547002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678616516AB4547002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678617116AB4551002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678617316AB4551002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678617416AB4551002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678617516AB4551002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678618116AB4559002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678618316AB4559002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678618416AB4559002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678618516AB4559002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678618D16AB461F002F2B96 /* frm-common.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DF16AB36DF002F2B96 /* frm-common.c */; };
-		3678618E16AB4620002F2B96 /* frm-common.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DF16AB36DF002F2B96 /* frm-common.c */; };
-		3678618F16AB4620002F2B96 /* frm-common.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DF16AB36DF002F2B96 /* frm-common.c */; };
-		3678619016AB4623002F2B96 /* frm-simple.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E116AB36DF002F2B96 /* frm-simple.c */; };
-		3678619116AB4627002F2B96 /* frm-tree.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E216AB36DF002F2B96 /* frm-tree.c */; };
-		3678619216AB4629002F2B96 /* frm.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860E316AB36DF002F2B96 /* frm.c */; };
-		3678619316AB4657002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		3678619416AB4657002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		3678619516AB4658002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		3678619716AB4671002F2B96 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		3678619816AB4685002F2B96 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		3678619916AB4689002F2B96 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		3678619E16AB470B002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		367861A016AB470B002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		367861A116AB470B002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		367861A216AB470B002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		367861AA16AB4743002F2B96 /* fetch-attachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DE16AB36DF002F2B96 /* fetch-attachment.c */; };
-		367861AB16AB4757002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		367861AC16AB47CA002F2B96 /* readmsg-common.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EF16AB36DF002F2B96 /* readmsg-common.c */; };
-		367861AD16AB47DC002F2B96 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		367861B316AB48E1002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		367861B516AB48E1002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		367861B616AB48E1002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		367861B716AB48E1002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		367861C316AB48E4002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		367861C516AB48E4002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		367861C616AB48E4002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		367861C716AB48E4002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		367861CF16AB4B7B002F2B96 /* readmsg.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860F316AB36DF002F2B96 /* readmsg.c */; };
-		367861D016AB4B86002F2B96 /* readmsg-simple.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860F116AB36DF002F2B96 /* readmsg-simple.c */; };
-		367861D116AB4BB7002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		367861D216AB4BC8002F2B96 /* option-parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EA16AB36DF002F2B96 /* option-parser.c */; };
-		367861D316AB4BDA002F2B96 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		367861D416AB4BE9002F2B96 /* readmsg-common.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EF16AB36DF002F2B96 /* readmsg-common.c */; };
-		367861F116AB4D4F002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		367861F316AB4D4F002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		367861F416AB4D4F002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		367861F516AB4D4F002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		367861FF16AB4D81002F2B96 /* decrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DD16AB36DF002F2B96 /* decrypt.c */; };
-		3678620016AB4D96002F2B96 /* compose-msg.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860DC16AB36DF002F2B96 /* compose-msg.c */; };
-		3678620516AB4DFE002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678620716AB4DFE002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678620816AB4DFE002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678620916AB4DFE002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678621116AB4E16002F2B96 /* pgp.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860EC16AB36DF002F2B96 /* pgp.c */; };
-		3678621816AB4E63002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678621A16AB4E63002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678621B16AB4E63002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678621C16AB4E63002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678622616AB4E97002F2B96 /* pop-sample.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860ED16AB36DF002F2B96 /* pop-sample.c */; };
-		3678622B16AB4EE6002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678622D16AB4EE6002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678622E16AB4EE6002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678622F16AB4EE6002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678623716AB4EF6002F2B96 /* smime.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860F416AB36DF002F2B96 /* smime.c */; };
-		3678623E16AB4F32002F2B96 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678611E16AB410C002F2B96 /* CoreFoundation.framework */; };
-		3678624016AB4F32002F2B96 /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612016AB411F002F2B96 /* libssl.dylib */; };
-		3678624116AB4F32002F2B96 /* libsasl2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612216AB4131002F2B96 /* libsasl2.2.dylib */; };
-		3678624216AB4F32002F2B96 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678612416AB4142002F2B96 /* libcrypto.dylib */; };
-		3678624A16AB4F41002F2B96 /* smtpsend.c in Sources */ = {isa = PBXBuildFile; fileRef = 367860F516AB36DF002F2B96 /* smtpsend.c */; };
-		3678639916AB61BA002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		3678639B16AB61D3002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		3678639C16AB61D7002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		3678639D16AB61DB002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		3678639E16AB61DE002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		3678639F16AB61E1002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A016AB61E5002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A116AB61E9002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A216AB61EE002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A316AB61F5002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A416AB61F5002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A516AB61F6002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A616AB61F6002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A816AB61F9002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		367863A916AB61FA002F2B96 /* libetpan.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678639816AB61BA002F2B96 /* libetpan.a */; };
-		8568A3DF1C609B8500FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E01C609BD400FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E11C609BDC00FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E21C609BE600FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E31C609BE900FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E41C609BE900FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E51C609BFA00FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3E61C609BFC00FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3E71C609C0700FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3E81C609C2200FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3E91C609C2400FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3EA1C609C2E00FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3EB1C609C3700FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3EC1C609C3900FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3ED1C609C4700FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3EE1C609C4800FF4470 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8568A3DE1C609B8500FF4470 /* libz.tbd */; };
-		8568A3EF1C609C5400FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3F01C609C5400FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		8568A3F11C609C5A00FF4470 /* libiconv.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3678619616AB4671002F2B96 /* libiconv.2.dylib */; };
-		C6ED6CF917A1862C00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFA17A1863E00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFB17A1865600A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFC17A1865700A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFD17A1865700A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFE17A1865800A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6CFF17A1865900A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0017A1865900A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0117A1865B00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0217A1865C00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0317A1865C00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0417A1865D00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0517A1865E00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0617A1865E00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0717A1865F00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF817A1862C00A4A14C /* Security.framework */; };
-		C6ED6D0917A1883000A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D0A17A1884200A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D0B17A1884200A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D0D17A1884400A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D0E17A1884800A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D0F17A1884800A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1017A1884900A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1117A1884A00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1217A1884A00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1317A1884B00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1417A1884C00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1517A1884D00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1617A1884E00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1717A1884E00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-		C6ED6D1817A1884F00A4A14C /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D0817A1883000A4A14C /* CoreServices.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		367861D916AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678610A16AB3964002F2B96;
-			remoteInfo = "imap-sample";
-		};
-		367861DB16AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678612816AB4314002F2B96;
-			remoteInfo = "mime-parse";
-		};
-		367861DD16AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678613A16AB4411002F2B96;
-			remoteInfo = "mime-create";
-		};
-		367861DF16AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678614C16AB44A6002F2B96;
-			remoteInfo = "compose-msg";
-		};
-		367861E116AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678615D16AB4547002F2B96;
-			remoteInfo = "frm-simple";
-		};
-		367861E316AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678616D16AB4551002F2B96;
-			remoteInfo = frm;
-		};
-		367861E516AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678617D16AB4559002F2B96;
-			remoteInfo = "frm-tree";
-		};
-		367861E716AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678619A16AB470B002F2B96;
-			remoteInfo = "fetch-attachment";
-		};
-		367861E916AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 367861AF16AB48E1002F2B96;
-			remoteInfo = "readmsg-simple";
-		};
-		367861EB16AB4C3E002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 367861BF16AB48E4002F2B96;
-			remoteInfo = readmsg;
-		};
-		367861FD16AB4D5D002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 367861ED16AB4D4F002F2B96;
-			remoteInfo = decrypt;
-		};
-		3678621216AB4E30002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678620116AB4DFE002F2B96;
-			remoteInfo = pgp;
-		};
-		3678622416AB4E88002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678621416AB4E63002F2B96;
-			remoteInfo = "pop-sample";
-		};
-		3678623816AB4F0D002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678622716AB4EE6002F2B96;
-			remoteInfo = smime;
-		};
-		3678624B16AB4F70002F2B96 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 367860B216AB35BC002F2B96 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 3678623A16AB4F32002F2B96;
-			remoteInfo = smtpsend;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		3678610916AB3964002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678613216AB4314002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678614416AB4411002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678615616AB44A6002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678616716AB4547002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678617716AB4551002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678618716AB4559002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		367861A416AB470B002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		367861B916AB48E1002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		367861C916AB48E4002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		367861F716AB4D4F002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678620B16AB4DFE002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678621E16AB4E63002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678623116AB4EE6002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-		3678624416AB4F32002F2B96 /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		367860DC16AB36DF002F2B96 /* compose-msg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "compose-msg.c"; sourceTree = "<group>"; };
-		367860DD16AB36DF002F2B96 /* decrypt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = decrypt.c; sourceTree = "<group>"; };
-		367860DE16AB36DF002F2B96 /* fetch-attachment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "fetch-attachment.c"; sourceTree = "<group>"; };
-		367860DF16AB36DF002F2B96 /* frm-common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "frm-common.c"; sourceTree = "<group>"; };
-		367860E016AB36DF002F2B96 /* frm-common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "frm-common.h"; sourceTree = "<group>"; };
-		367860E116AB36DF002F2B96 /* frm-simple.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "frm-simple.c"; sourceTree = "<group>"; };
-		367860E216AB36DF002F2B96 /* frm-tree.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "frm-tree.c"; sourceTree = "<group>"; };
-		367860E316AB36DF002F2B96 /* frm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = frm.c; sourceTree = "<group>"; };
-		367860E416AB36DF002F2B96 /* imap-sample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "imap-sample.c"; sourceTree = "<group>"; };
-		367860E816AB36DF002F2B96 /* mime-create.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "mime-create.c"; sourceTree = "<group>"; };
-		367860E916AB36DF002F2B96 /* mime-parse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "mime-parse.c"; sourceTree = "<group>"; };
-		367860EA16AB36DF002F2B96 /* option-parser.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "option-parser.c"; sourceTree = "<group>"; };
-		367860EB16AB36DF002F2B96 /* option-parser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "option-parser.h"; sourceTree = "<group>"; };
-		367860EC16AB36DF002F2B96 /* pgp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pgp.c; sourceTree = "<group>"; };
-		367860ED16AB36DF002F2B96 /* pop-sample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "pop-sample.c"; sourceTree = "<group>"; };
-		367860EF16AB36DF002F2B96 /* readmsg-common.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "readmsg-common.c"; sourceTree = "<group>"; };
-		367860F016AB36DF002F2B96 /* readmsg-common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "readmsg-common.h"; sourceTree = "<group>"; };
-		367860F116AB36DF002F2B96 /* readmsg-simple.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "readmsg-simple.c"; sourceTree = "<group>"; };
-		367860F216AB36DF002F2B96 /* readmsg-uid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "readmsg-uid.c"; sourceTree = "<group>"; };
-		367860F316AB36DF002F2B96 /* readmsg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = readmsg.c; sourceTree = "<group>"; };
-		367860F416AB36DF002F2B96 /* smime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smime.c; sourceTree = "<group>"; };
-		367860F516AB36DF002F2B96 /* smtpsend.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smtpsend.c; sourceTree = "<group>"; };
-		3678610B16AB3964002F2B96 /* imap-sample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "imap-sample"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678611E16AB410C002F2B96 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
-		3678612016AB411F002F2B96 /* libssl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libssl.dylib; path = usr/lib/libssl.dylib; sourceTree = SDKROOT; };
-		3678612216AB4131002F2B96 /* libsasl2.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsasl2.2.dylib; path = usr/lib/libsasl2.2.dylib; sourceTree = SDKROOT; };
-		3678612416AB4142002F2B96 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = usr/lib/libcrypto.dylib; sourceTree = SDKROOT; };
-		3678613616AB4314002F2B96 /* mime-parse */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "mime-parse"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678614816AB4411002F2B96 /* mime-create */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "mime-create"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678615A16AB44A7002F2B96 /* compose-msg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "compose-msg"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678616B16AB4547002F2B96 /* frm-simple */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "frm-simple"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678617B16AB4551002F2B96 /* frm */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = frm; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678618B16AB4559002F2B96 /* frm-tree */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "frm-tree"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678619616AB4671002F2B96 /* libiconv.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.2.dylib; path = usr/lib/libiconv.2.dylib; sourceTree = SDKROOT; };
-		367861A816AB470B002F2B96 /* fetch-attachment */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "fetch-attachment"; sourceTree = BUILT_PRODUCTS_DIR; };
-		367861BD16AB48E1002F2B96 /* readmsg-simple */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "readmsg-simple"; sourceTree = BUILT_PRODUCTS_DIR; };
-		367861CD16AB48E4002F2B96 /* readmsg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = readmsg; sourceTree = BUILT_PRODUCTS_DIR; };
-		367861FB16AB4D4F002F2B96 /* decrypt */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = decrypt; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678620F16AB4DFE002F2B96 /* pgp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = pgp; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678622216AB4E63002F2B96 /* pop-sample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "pop-sample"; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678623516AB4EE6002F2B96 /* smime */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = smime; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678624816AB4F32002F2B96 /* smtpsend */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = smtpsend; sourceTree = BUILT_PRODUCTS_DIR; };
-		3678639816AB61BA002F2B96 /* libetpan.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libetpan.a; path = "../../../Library/Developer/Xcode/DerivedData/libetpan-dazyuihjymonnybirhcistixjbll/Build/Products/Debug/libetpan.a"; sourceTree = "<group>"; };
-		8568A3DE1C609B8500FF4470 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
-		C6ED6CF817A1862C00A4A14C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
-		C6ED6D0817A1883000A4A14C /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		3678610816AB3964002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				C6ED6D0917A1883000A4A14C /* CoreServices.framework in Frameworks */,
-				3678611F16AB410C002F2B96 /* CoreFoundation.framework in Frameworks */,
-				C6ED6CF917A1862C00A4A14C /* Security.framework in Frameworks */,
-				3678612116AB411F002F2B96 /* libssl.dylib in Frameworks */,
-				3678612316AB4131002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				3678612516AB4142002F2B96 /* libcrypto.dylib in Frameworks */,
-				8568A3DF1C609B8500FF4470 /* libz.tbd in Frameworks */,
-				3678639916AB61BA002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678612B16AB4314002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8568A3EA1C609C2E00FF4470 /* libiconv.2.dylib in Frameworks */,
-				3678612C16AB4314002F2B96 /* CoreFoundation.framework in Frameworks */,
-				C6ED6CFA17A1863E00A4A14C /* Security.framework in Frameworks */,
-				3678612E16AB4314002F2B96 /* libssl.dylib in Frameworks */,
-				3678612F16AB4314002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				3678613016AB4314002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D0A17A1884200A4A14C /* CoreServices.framework in Frameworks */,
-				3678639B16AB61D3002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678613D16AB4411002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678613E16AB4411002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3E31C609BE900FF4470 /* libz.tbd in Frameworks */,
-				3678614016AB4411002F2B96 /* libssl.dylib in Frameworks */,
-				3678614116AB4411002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				8568A3E61C609BFC00FF4470 /* libiconv.2.dylib in Frameworks */,
-				C6ED6CFB17A1865600A4A14C /* Security.framework in Frameworks */,
-				3678614216AB4411002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D0B17A1884200A4A14C /* CoreServices.framework in Frameworks */,
-				3678639C16AB61D7002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678614F16AB44A6002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678615016AB44A6002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3E41C609BE900FF4470 /* libz.tbd in Frameworks */,
-				3678615216AB44A6002F2B96 /* libssl.dylib in Frameworks */,
-				3678615316AB44A6002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				8568A3E71C609C0700FF4470 /* libiconv.2.dylib in Frameworks */,
-				C6ED6CFC17A1865700A4A14C /* Security.framework in Frameworks */,
-				3678615416AB44A6002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D0D17A1884400A4A14C /* CoreServices.framework in Frameworks */,
-				3678639D16AB61DB002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678616016AB4547002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678616116AB4547002F2B96 /* CoreFoundation.framework in Frameworks */,
-				3678616316AB4547002F2B96 /* libssl.dylib in Frameworks */,
-				3678616416AB4547002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				3678616516AB4547002F2B96 /* libcrypto.dylib in Frameworks */,
-				3678619716AB4671002F2B96 /* libiconv.2.dylib in Frameworks */,
-				C6ED6CFD17A1865700A4A14C /* Security.framework in Frameworks */,
-				3678639E16AB61DE002F2B96 /* libetpan.a in Frameworks */,
-				8568A3E91C609C2400FF4470 /* libz.tbd in Frameworks */,
-				C6ED6D0E17A1884800A4A14C /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678617016AB4551002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678617116AB4551002F2B96 /* CoreFoundation.framework in Frameworks */,
-				3678617316AB4551002F2B96 /* libssl.dylib in Frameworks */,
-				3678617416AB4551002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				3678617516AB4551002F2B96 /* libcrypto.dylib in Frameworks */,
-				3678619816AB4685002F2B96 /* libiconv.2.dylib in Frameworks */,
-				C6ED6CFE17A1865800A4A14C /* Security.framework in Frameworks */,
-				3678639F16AB61E1002F2B96 /* libetpan.a in Frameworks */,
-				8568A3EB1C609C3700FF4470 /* libz.tbd in Frameworks */,
-				C6ED6D0F17A1884800A4A14C /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678618016AB4559002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678618116AB4559002F2B96 /* CoreFoundation.framework in Frameworks */,
-				3678618316AB4559002F2B96 /* libssl.dylib in Frameworks */,
-				3678618416AB4559002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				3678618516AB4559002F2B96 /* libcrypto.dylib in Frameworks */,
-				3678619916AB4689002F2B96 /* libiconv.2.dylib in Frameworks */,
-				C6ED6CFF17A1865900A4A14C /* Security.framework in Frameworks */,
-				367863A016AB61E5002F2B96 /* libetpan.a in Frameworks */,
-				8568A3E01C609BD400FF4470 /* libz.tbd in Frameworks */,
-				C6ED6D1017A1884900A4A14C /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678619D16AB470B002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678619E16AB470B002F2B96 /* CoreFoundation.framework in Frameworks */,
-				367861A016AB470B002F2B96 /* libssl.dylib in Frameworks */,
-				367861A116AB470B002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				367861A216AB470B002F2B96 /* libcrypto.dylib in Frameworks */,
-				367861AD16AB47DC002F2B96 /* libiconv.2.dylib in Frameworks */,
-				C6ED6D0017A1865900A4A14C /* Security.framework in Frameworks */,
-				367863A116AB61E9002F2B96 /* libetpan.a in Frameworks */,
-				8568A3ED1C609C4700FF4470 /* libz.tbd in Frameworks */,
-				C6ED6D1117A1884A00A4A14C /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861B216AB48E1002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861B316AB48E1002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3EC1C609C3900FF4470 /* libz.tbd in Frameworks */,
-				367861B516AB48E1002F2B96 /* libssl.dylib in Frameworks */,
-				367861B616AB48E1002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				8568A3F11C609C5A00FF4470 /* libiconv.2.dylib in Frameworks */,
-				C6ED6D0117A1865B00A4A14C /* Security.framework in Frameworks */,
-				367861B716AB48E1002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1217A1884A00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A216AB61EE002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861C216AB48E4002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861C316AB48E4002F2B96 /* CoreFoundation.framework in Frameworks */,
-				367861C516AB48E4002F2B96 /* libssl.dylib in Frameworks */,
-				367861C616AB48E4002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				367861C716AB48E4002F2B96 /* libcrypto.dylib in Frameworks */,
-				367861D316AB4BDA002F2B96 /* libiconv.2.dylib in Frameworks */,
-				C6ED6D0217A1865C00A4A14C /* Security.framework in Frameworks */,
-				367863A316AB61F5002F2B96 /* libetpan.a in Frameworks */,
-				8568A3E11C609BDC00FF4470 /* libz.tbd in Frameworks */,
-				C6ED6D1317A1884B00A4A14C /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861F016AB4D4F002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8568A3EF1C609C5400FF4470 /* libiconv.2.dylib in Frameworks */,
-				367861F116AB4D4F002F2B96 /* CoreFoundation.framework in Frameworks */,
-				367861F316AB4D4F002F2B96 /* libssl.dylib in Frameworks */,
-				367861F416AB4D4F002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				C6ED6D0317A1865C00A4A14C /* Security.framework in Frameworks */,
-				367861F516AB4D4F002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1517A1884D00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A416AB61F5002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678620416AB4DFE002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8568A3F01C609C5400FF4470 /* libiconv.2.dylib in Frameworks */,
-				3678620516AB4DFE002F2B96 /* CoreFoundation.framework in Frameworks */,
-				3678620716AB4DFE002F2B96 /* libssl.dylib in Frameworks */,
-				3678620816AB4DFE002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				C6ED6D0517A1865E00A4A14C /* Security.framework in Frameworks */,
-				3678620916AB4DFE002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1417A1884C00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A516AB61F6002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678621716AB4E63002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678621816AB4E63002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3E81C609C2200FF4470 /* libz.tbd in Frameworks */,
-				3678621A16AB4E63002F2B96 /* libssl.dylib in Frameworks */,
-				3678621B16AB4E63002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				C6ED6D0417A1865D00A4A14C /* Security.framework in Frameworks */,
-				3678621C16AB4E63002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1617A1884E00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A616AB61F6002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678622A16AB4EE6002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678622B16AB4EE6002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3E21C609BE600FF4470 /* libz.tbd in Frameworks */,
-				3678622D16AB4EE6002F2B96 /* libssl.dylib in Frameworks */,
-				3678622E16AB4EE6002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				8568A3E51C609BFA00FF4470 /* libiconv.2.dylib in Frameworks */,
-				C6ED6D0717A1865F00A4A14C /* Security.framework in Frameworks */,
-				3678622F16AB4EE6002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1717A1884E00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A816AB61F9002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678623D16AB4F32002F2B96 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678623E16AB4F32002F2B96 /* CoreFoundation.framework in Frameworks */,
-				8568A3EE1C609C4800FF4470 /* libz.tbd in Frameworks */,
-				3678624016AB4F32002F2B96 /* libssl.dylib in Frameworks */,
-				3678624116AB4F32002F2B96 /* libsasl2.2.dylib in Frameworks */,
-				C6ED6D0617A1865E00A4A14C /* Security.framework in Frameworks */,
-				3678624216AB4F32002F2B96 /* libcrypto.dylib in Frameworks */,
-				C6ED6D1817A1884F00A4A14C /* CoreServices.framework in Frameworks */,
-				367863A916AB61FA002F2B96 /* libetpan.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		367860B016AB35BC002F2B96 = {
-			isa = PBXGroup;
-			children = (
-				367860BE16AB35BC002F2B96 /* libetpan Tests */,
-				367860F616AB38D3002F2B96 /* External Frameworks and Libraries */,
-				367860BC16AB35BC002F2B96 /* Products */,
-			);
-			indentWidth = 2;
-			sourceTree = "<group>";
-			tabWidth = 2;
-			usesTabs = 0;
-		};
-		367860BC16AB35BC002F2B96 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				3678610B16AB3964002F2B96 /* imap-sample */,
-				3678613616AB4314002F2B96 /* mime-parse */,
-				3678614816AB4411002F2B96 /* mime-create */,
-				3678615A16AB44A7002F2B96 /* compose-msg */,
-				3678616B16AB4547002F2B96 /* frm-simple */,
-				3678617B16AB4551002F2B96 /* frm */,
-				3678618B16AB4559002F2B96 /* frm-tree */,
-				367861A816AB470B002F2B96 /* fetch-attachment */,
-				367861BD16AB48E1002F2B96 /* readmsg-simple */,
-				367861CD16AB48E4002F2B96 /* readmsg */,
-				367861FB16AB4D4F002F2B96 /* decrypt */,
-				3678620F16AB4DFE002F2B96 /* pgp */,
-				3678622216AB4E63002F2B96 /* pop-sample */,
-				3678623516AB4EE6002F2B96 /* smime */,
-				3678624816AB4F32002F2B96 /* smtpsend */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		367860BE16AB35BC002F2B96 /* libetpan Tests */ = {
-			isa = PBXGroup;
-			children = (
-				367860C816AB36DF002F2B96 /* tests */,
-			);
-			name = "libetpan Tests";
-			sourceTree = "<group>";
-		};
-		367860C816AB36DF002F2B96 /* tests */ = {
-			isa = PBXGroup;
-			children = (
-				367860DC16AB36DF002F2B96 /* compose-msg.c */,
-				367860DD16AB36DF002F2B96 /* decrypt.c */,
-				367860DE16AB36DF002F2B96 /* fetch-attachment.c */,
-				367860DF16AB36DF002F2B96 /* frm-common.c */,
-				367860E016AB36DF002F2B96 /* frm-common.h */,
-				367860E116AB36DF002F2B96 /* frm-simple.c */,
-				367860E216AB36DF002F2B96 /* frm-tree.c */,
-				367860E316AB36DF002F2B96 /* frm.c */,
-				367860E416AB36DF002F2B96 /* imap-sample.c */,
-				367860E816AB36DF002F2B96 /* mime-create.c */,
-				367860E916AB36DF002F2B96 /* mime-parse.c */,
-				367860EA16AB36DF002F2B96 /* option-parser.c */,
-				367860EB16AB36DF002F2B96 /* option-parser.h */,
-				367860EC16AB36DF002F2B96 /* pgp.c */,
-				367860ED16AB36DF002F2B96 /* pop-sample.c */,
-				367860EF16AB36DF002F2B96 /* readmsg-common.c */,
-				367860F016AB36DF002F2B96 /* readmsg-common.h */,
-				367860F116AB36DF002F2B96 /* readmsg-simple.c */,
-				367860F216AB36DF002F2B96 /* readmsg-uid.c */,
-				367860F316AB36DF002F2B96 /* readmsg.c */,
-				367860F416AB36DF002F2B96 /* smime.c */,
-				367860F516AB36DF002F2B96 /* smtpsend.c */,
-			);
-			name = tests;
-			path = ../tests;
-			sourceTree = "<group>";
-		};
-		367860F616AB38D3002F2B96 /* External Frameworks and Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				3678611E16AB410C002F2B96 /* CoreFoundation.framework */,
-				C6ED6D0817A1883000A4A14C /* CoreServices.framework */,
-				C6ED6CF817A1862C00A4A14C /* Security.framework */,
-				3678612416AB4142002F2B96 /* libcrypto.dylib */,
-				3678612216AB4131002F2B96 /* libsasl2.2.dylib */,
-				3678612016AB411F002F2B96 /* libssl.dylib */,
-				3678619616AB4671002F2B96 /* libiconv.2.dylib */,
-				8568A3DE1C609B8500FF4470 /* libz.tbd */,
-				3678639816AB61BA002F2B96 /* libetpan.a */,
-			);
-			name = "External Frameworks and Libraries";
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		3678610A16AB3964002F2B96 /* imap-sample */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678611216AB3964002F2B96 /* Build configuration list for PBXNativeTarget "imap-sample" */;
-			buildPhases = (
-				3678610716AB3964002F2B96 /* Sources */,
-				3678610816AB3964002F2B96 /* Frameworks */,
-				3678610916AB3964002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "imap-sample";
-			productName = "imap-sample";
-			productReference = 3678610B16AB3964002F2B96 /* imap-sample */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678612816AB4314002F2B96 /* mime-parse */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678613316AB4314002F2B96 /* Build configuration list for PBXNativeTarget "mime-parse" */;
-			buildPhases = (
-				3678612916AB4314002F2B96 /* Sources */,
-				3678612B16AB4314002F2B96 /* Frameworks */,
-				3678613216AB4314002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "mime-parse";
-			productName = "imap-sample";
-			productReference = 3678613616AB4314002F2B96 /* mime-parse */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678613A16AB4411002F2B96 /* mime-create */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678614516AB4411002F2B96 /* Build configuration list for PBXNativeTarget "mime-create" */;
-			buildPhases = (
-				3678613B16AB4411002F2B96 /* Sources */,
-				3678613D16AB4411002F2B96 /* Frameworks */,
-				3678614416AB4411002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "mime-create";
-			productName = "imap-sample";
-			productReference = 3678614816AB4411002F2B96 /* mime-create */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678614C16AB44A6002F2B96 /* compose-msg */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678615716AB44A6002F2B96 /* Build configuration list for PBXNativeTarget "compose-msg" */;
-			buildPhases = (
-				3678614D16AB44A6002F2B96 /* Sources */,
-				3678614F16AB44A6002F2B96 /* Frameworks */,
-				3678615616AB44A6002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "compose-msg";
-			productName = "imap-sample";
-			productReference = 3678615A16AB44A7002F2B96 /* compose-msg */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678615D16AB4547002F2B96 /* frm-simple */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678616816AB4547002F2B96 /* Build configuration list for PBXNativeTarget "frm-simple" */;
-			buildPhases = (
-				3678615E16AB4547002F2B96 /* Sources */,
-				3678616016AB4547002F2B96 /* Frameworks */,
-				3678616716AB4547002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "frm-simple";
-			productName = "imap-sample";
-			productReference = 3678616B16AB4547002F2B96 /* frm-simple */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678616D16AB4551002F2B96 /* frm */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678617816AB4551002F2B96 /* Build configuration list for PBXNativeTarget "frm" */;
-			buildPhases = (
-				3678616E16AB4551002F2B96 /* Sources */,
-				3678617016AB4551002F2B96 /* Frameworks */,
-				3678617716AB4551002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = frm;
-			productName = "imap-sample";
-			productReference = 3678617B16AB4551002F2B96 /* frm */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678617D16AB4559002F2B96 /* frm-tree */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678618816AB4559002F2B96 /* Build configuration list for PBXNativeTarget "frm-tree" */;
-			buildPhases = (
-				3678617E16AB4559002F2B96 /* Sources */,
-				3678618016AB4559002F2B96 /* Frameworks */,
-				3678618716AB4559002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "frm-tree";
-			productName = "imap-sample";
-			productReference = 3678618B16AB4559002F2B96 /* frm-tree */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678619A16AB470B002F2B96 /* fetch-attachment */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 367861A516AB470B002F2B96 /* Build configuration list for PBXNativeTarget "fetch-attachment" */;
-			buildPhases = (
-				3678619B16AB470B002F2B96 /* Sources */,
-				3678619D16AB470B002F2B96 /* Frameworks */,
-				367861A416AB470B002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "fetch-attachment";
-			productName = "imap-sample";
-			productReference = 367861A816AB470B002F2B96 /* fetch-attachment */;
-			productType = "com.apple.product-type.tool";
-		};
-		367861AF16AB48E1002F2B96 /* readmsg-simple */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 367861BA16AB48E1002F2B96 /* Build configuration list for PBXNativeTarget "readmsg-simple" */;
-			buildPhases = (
-				367861B016AB48E1002F2B96 /* Sources */,
-				367861B216AB48E1002F2B96 /* Frameworks */,
-				367861B916AB48E1002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "readmsg-simple";
-			productName = "imap-sample";
-			productReference = 367861BD16AB48E1002F2B96 /* readmsg-simple */;
-			productType = "com.apple.product-type.tool";
-		};
-		367861BF16AB48E4002F2B96 /* readmsg */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 367861CA16AB48E4002F2B96 /* Build configuration list for PBXNativeTarget "readmsg" */;
-			buildPhases = (
-				367861C016AB48E4002F2B96 /* Sources */,
-				367861C216AB48E4002F2B96 /* Frameworks */,
-				367861C916AB48E4002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = readmsg;
-			productName = "imap-sample";
-			productReference = 367861CD16AB48E4002F2B96 /* readmsg */;
-			productType = "com.apple.product-type.tool";
-		};
-		367861ED16AB4D4F002F2B96 /* decrypt */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 367861F816AB4D4F002F2B96 /* Build configuration list for PBXNativeTarget "decrypt" */;
-			buildPhases = (
-				367861EE16AB4D4F002F2B96 /* Sources */,
-				367861F016AB4D4F002F2B96 /* Frameworks */,
-				367861F716AB4D4F002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = decrypt;
-			productName = "imap-sample";
-			productReference = 367861FB16AB4D4F002F2B96 /* decrypt */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678620116AB4DFE002F2B96 /* pgp */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678620C16AB4DFE002F2B96 /* Build configuration list for PBXNativeTarget "pgp" */;
-			buildPhases = (
-				3678620216AB4DFE002F2B96 /* Sources */,
-				3678620416AB4DFE002F2B96 /* Frameworks */,
-				3678620B16AB4DFE002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = pgp;
-			productName = "imap-sample";
-			productReference = 3678620F16AB4DFE002F2B96 /* pgp */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678621416AB4E63002F2B96 /* pop-sample */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678621F16AB4E63002F2B96 /* Build configuration list for PBXNativeTarget "pop-sample" */;
-			buildPhases = (
-				3678621516AB4E63002F2B96 /* Sources */,
-				3678621716AB4E63002F2B96 /* Frameworks */,
-				3678621E16AB4E63002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "pop-sample";
-			productName = "imap-sample";
-			productReference = 3678622216AB4E63002F2B96 /* pop-sample */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678622716AB4EE6002F2B96 /* smime */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678623216AB4EE6002F2B96 /* Build configuration list for PBXNativeTarget "smime" */;
-			buildPhases = (
-				3678622816AB4EE6002F2B96 /* Sources */,
-				3678622A16AB4EE6002F2B96 /* Frameworks */,
-				3678623116AB4EE6002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = smime;
-			productName = "imap-sample";
-			productReference = 3678623516AB4EE6002F2B96 /* smime */;
-			productType = "com.apple.product-type.tool";
-		};
-		3678623A16AB4F32002F2B96 /* smtpsend */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 3678624516AB4F32002F2B96 /* Build configuration list for PBXNativeTarget "smtpsend" */;
-			buildPhases = (
-				3678623B16AB4F32002F2B96 /* Sources */,
-				3678623D16AB4F32002F2B96 /* Frameworks */,
-				3678624416AB4F32002F2B96 /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = smtpsend;
-			productName = "imap-sample";
-			productReference = 3678624816AB4F32002F2B96 /* smtpsend */;
-			productType = "com.apple.product-type.tool";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		367860B216AB35BC002F2B96 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0450;
-			};
-			buildConfigurationList = 367860B516AB35BC002F2B96 /* Build configuration list for PBXProject "libetpan Tests" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-			);
-			mainGroup = 367860B016AB35BC002F2B96;
-			productRefGroup = 367860BC16AB35BC002F2B96 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				3678610A16AB3964002F2B96 /* imap-sample */,
-				3678612816AB4314002F2B96 /* mime-parse */,
-				3678613A16AB4411002F2B96 /* mime-create */,
-				3678614C16AB44A6002F2B96 /* compose-msg */,
-				3678615D16AB4547002F2B96 /* frm-simple */,
-				3678616D16AB4551002F2B96 /* frm */,
-				3678617D16AB4559002F2B96 /* frm-tree */,
-				3678619A16AB470B002F2B96 /* fetch-attachment */,
-				367861AF16AB48E1002F2B96 /* readmsg-simple */,
-				367861BF16AB48E4002F2B96 /* readmsg */,
-				367861ED16AB4D4F002F2B96 /* decrypt */,
-				3678620116AB4DFE002F2B96 /* pgp */,
-				3678621416AB4E63002F2B96 /* pop-sample */,
-				3678622716AB4EE6002F2B96 /* smime */,
-				3678623A16AB4F32002F2B96 /* smtpsend */,
-				367861D516AB4C1C002F2B96 /* All Tests */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		3678610716AB3964002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678611516AB3995002F2B96 /* imap-sample.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678612916AB4314002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678614A16AB4426002F2B96 /* mime-parse.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678613B16AB4411002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678614B16AB442A002F2B96 /* mime-create.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678614D16AB44A6002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678620016AB4D96002F2B96 /* compose-msg.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678615E16AB4547002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678618D16AB461F002F2B96 /* frm-common.c in Sources */,
-				3678619016AB4623002F2B96 /* frm-simple.c in Sources */,
-				3678619316AB4657002F2B96 /* option-parser.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678616E16AB4551002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678618E16AB4620002F2B96 /* frm-common.c in Sources */,
-				3678619216AB4629002F2B96 /* frm.c in Sources */,
-				3678619416AB4657002F2B96 /* option-parser.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678617E16AB4559002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678618F16AB4620002F2B96 /* frm-common.c in Sources */,
-				3678619116AB4627002F2B96 /* frm-tree.c in Sources */,
-				3678619516AB4658002F2B96 /* option-parser.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678619B16AB470B002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861AA16AB4743002F2B96 /* fetch-attachment.c in Sources */,
-				367861AB16AB4757002F2B96 /* option-parser.c in Sources */,
-				367861AC16AB47CA002F2B96 /* readmsg-common.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861B016AB48E1002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861D016AB4B86002F2B96 /* readmsg-simple.c in Sources */,
-				367861D116AB4BB7002F2B96 /* option-parser.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861C016AB48E4002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861CF16AB4B7B002F2B96 /* readmsg.c in Sources */,
-				367861D216AB4BC8002F2B96 /* option-parser.c in Sources */,
-				367861D416AB4BE9002F2B96 /* readmsg-common.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		367861EE16AB4D4F002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				367861FF16AB4D81002F2B96 /* decrypt.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678620216AB4DFE002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678621116AB4E16002F2B96 /* pgp.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678621516AB4E63002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678622616AB4E97002F2B96 /* pop-sample.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678622816AB4EE6002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678623716AB4EF6002F2B96 /* smime.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		3678623B16AB4F32002F2B96 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				3678624A16AB4F41002F2B96 /* smtpsend.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		367861DA16AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678610A16AB3964002F2B96 /* imap-sample */;
-			targetProxy = 367861D916AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861DC16AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678612816AB4314002F2B96 /* mime-parse */;
-			targetProxy = 367861DB16AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861DE16AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678613A16AB4411002F2B96 /* mime-create */;
-			targetProxy = 367861DD16AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861E016AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678614C16AB44A6002F2B96 /* compose-msg */;
-			targetProxy = 367861DF16AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861E216AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678615D16AB4547002F2B96 /* frm-simple */;
-			targetProxy = 367861E116AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861E416AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678616D16AB4551002F2B96 /* frm */;
-			targetProxy = 367861E316AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861E616AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678617D16AB4559002F2B96 /* frm-tree */;
-			targetProxy = 367861E516AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861E816AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678619A16AB470B002F2B96 /* fetch-attachment */;
-			targetProxy = 367861E716AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861EA16AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 367861AF16AB48E1002F2B96 /* readmsg-simple */;
-			targetProxy = 367861E916AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861EC16AB4C3E002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 367861BF16AB48E4002F2B96 /* readmsg */;
-			targetProxy = 367861EB16AB4C3E002F2B96 /* PBXContainerItemProxy */;
-		};
-		367861FE16AB4D5D002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 367861ED16AB4D4F002F2B96 /* decrypt */;
-			targetProxy = 367861FD16AB4D5D002F2B96 /* PBXContainerItemProxy */;
-		};
-		3678621316AB4E30002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678620116AB4DFE002F2B96 /* pgp */;
-			targetProxy = 3678621216AB4E30002F2B96 /* PBXContainerItemProxy */;
-		};
-		3678622516AB4E88002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678621416AB4E63002F2B96 /* pop-sample */;
-			targetProxy = 3678622416AB4E88002F2B96 /* PBXContainerItemProxy */;
-		};
-		3678623916AB4F0D002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678622716AB4EE6002F2B96 /* smime */;
-			targetProxy = 3678623816AB4F0D002F2B96 /* PBXContainerItemProxy */;
-		};
-		3678624C16AB4F70002F2B96 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 3678623A16AB4F32002F2B96 /* smtpsend */;
-			targetProxy = 3678624B16AB4F70002F2B96 /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		367860C316AB35BC002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../include\"";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = macosx;
-			};
-			name = Debug;
-		};
-		367860C416AB35BC002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../include\"";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				SDKROOT = macosx;
-			};
-			name = Release;
-		};
-		3678611316AB3964002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		3678611416AB3964002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		3678613416AB4314002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "mime-parse";
-			};
-			name = Debug;
-		};
-		3678613516AB4314002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "mime-parse";
-			};
-			name = Release;
-		};
-		3678614616AB4411002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "mime-create";
-			};
-			name = Debug;
-		};
-		3678614716AB4411002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "mime-create";
-			};
-			name = Release;
-		};
-		3678615816AB44A6002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "compose-msg";
-			};
-			name = Debug;
-		};
-		3678615916AB44A6002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "compose-msg";
-			};
-			name = Release;
-		};
-		3678616916AB4547002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "frm-simple";
-			};
-			name = Debug;
-		};
-		3678616A16AB4547002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "frm-simple";
-			};
-			name = Release;
-		};
-		3678617916AB4551002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = frm;
-			};
-			name = Debug;
-		};
-		3678617A16AB4551002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = frm;
-			};
-			name = Release;
-		};
-		3678618916AB4559002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "frm-tree";
-			};
-			name = Debug;
-		};
-		3678618A16AB4559002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "frm-tree";
-			};
-			name = Release;
-		};
-		367861A616AB470B002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "fetch-attachment";
-			};
-			name = Debug;
-		};
-		367861A716AB470B002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "fetch-attachment";
-			};
-			name = Release;
-		};
-		367861BB16AB48E1002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "readmsg-simple";
-			};
-			name = Debug;
-		};
-		367861BC16AB48E1002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "readmsg-simple";
-			};
-			name = Release;
-		};
-		367861CB16AB48E4002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = readmsg;
-			};
-			name = Debug;
-		};
-		367861CC16AB48E4002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = readmsg;
-			};
-			name = Release;
-		};
-		367861D716AB4C1C002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Debug;
-		};
-		367861D816AB4C1C002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "$(TARGET_NAME)";
-			};
-			name = Release;
-		};
-		367861F916AB4D4F002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = decrypt;
-			};
-			name = Debug;
-		};
-		367861FA16AB4D4F002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = decrypt;
-			};
-			name = Release;
-		};
-		3678620D16AB4DFE002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = pgp;
-			};
-			name = Debug;
-		};
-		3678620E16AB4DFE002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = pgp;
-			};
-			name = Release;
-		};
-		3678622016AB4E63002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "pop-sample";
-			};
-			name = Debug;
-		};
-		3678622116AB4E63002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = "pop-sample";
-			};
-			name = Release;
-		};
-		3678623316AB4EE6002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = smime;
-			};
-			name = Debug;
-		};
-		3678623416AB4EE6002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = smime;
-			};
-			name = Release;
-		};
-		3678624616AB4F32002F2B96 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = smtpsend;
-			};
-			name = Debug;
-		};
-		3678624716AB4F32002F2B96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = smtpsend;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		367860B516AB35BC002F2B96 /* Build configuration list for PBXProject "libetpan Tests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367860C316AB35BC002F2B96 /* Debug */,
-				367860C416AB35BC002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678611216AB3964002F2B96 /* Build configuration list for PBXNativeTarget "imap-sample" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678611316AB3964002F2B96 /* Debug */,
-				3678611416AB3964002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678613316AB4314002F2B96 /* Build configuration list for PBXNativeTarget "mime-parse" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678613416AB4314002F2B96 /* Debug */,
-				3678613516AB4314002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678614516AB4411002F2B96 /* Build configuration list for PBXNativeTarget "mime-create" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678614616AB4411002F2B96 /* Debug */,
-				3678614716AB4411002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678615716AB44A6002F2B96 /* Build configuration list for PBXNativeTarget "compose-msg" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678615816AB44A6002F2B96 /* Debug */,
-				3678615916AB44A6002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678616816AB4547002F2B96 /* Build configuration list for PBXNativeTarget "frm-simple" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678616916AB4547002F2B96 /* Debug */,
-				3678616A16AB4547002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678617816AB4551002F2B96 /* Build configuration list for PBXNativeTarget "frm" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678617916AB4551002F2B96 /* Debug */,
-				3678617A16AB4551002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678618816AB4559002F2B96 /* Build configuration list for PBXNativeTarget "frm-tree" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678618916AB4559002F2B96 /* Debug */,
-				3678618A16AB4559002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		367861A516AB470B002F2B96 /* Build configuration list for PBXNativeTarget "fetch-attachment" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367861A616AB470B002F2B96 /* Debug */,
-				367861A716AB470B002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		367861BA16AB48E1002F2B96 /* Build configuration list for PBXNativeTarget "readmsg-simple" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367861BB16AB48E1002F2B96 /* Debug */,
-				367861BC16AB48E1002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		367861CA16AB48E4002F2B96 /* Build configuration list for PBXNativeTarget "readmsg" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367861CB16AB48E4002F2B96 /* Debug */,
-				367861CC16AB48E4002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		367861D616AB4C1C002F2B96 /* Build configuration list for PBXAggregateTarget "All Tests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367861D716AB4C1C002F2B96 /* Debug */,
-				367861D816AB4C1C002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		367861F816AB4D4F002F2B96 /* Build configuration list for PBXNativeTarget "decrypt" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				367861F916AB4D4F002F2B96 /* Debug */,
-				367861FA16AB4D4F002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678620C16AB4DFE002F2B96 /* Build configuration list for PBXNativeTarget "pgp" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678620D16AB4DFE002F2B96 /* Debug */,
-				3678620E16AB4DFE002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678621F16AB4E63002F2B96 /* Build configuration list for PBXNativeTarget "pop-sample" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678622016AB4E63002F2B96 /* Debug */,
-				3678622116AB4E63002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678623216AB4EE6002F2B96 /* Build configuration list for PBXNativeTarget "smime" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678623316AB4EE6002F2B96 /* Debug */,
-				3678623416AB4EE6002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		3678624516AB4F32002F2B96 /* Build configuration list for PBXNativeTarget "smtpsend" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				3678624616AB4F32002F2B96 /* Debug */,
-				3678624716AB4F32002F2B96 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 367860B216AB35BC002F2B96 /* Project object */;
-}

+ 0 - 2780
deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/project.pbxproj

@@ -1,2780 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		2307A00C170AAA5500C43C59 /* mailstream_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 2307A00A170AAA5500C43C59 /* mailstream_compress.c */; };
-		365DFFD215D1C93100F2DD85 /* xgmmsgid.c in Sources */ = {isa = PBXBuildFile; fileRef = 365DFFD115D1C93100F2DD85 /* xgmmsgid.c */; };
-		8A75ECDA17040F92007F9972 /* mailimap_sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECD917040F91007F9972 /* mailimap_sort.c */; };
-		8A75ECDB17040F92007F9972 /* mailimap_sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECD917040F91007F9972 /* mailimap_sort.c */; };
-		8A75ECDC17040F92007F9972 /* mailimap_sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECD917040F91007F9972 /* mailimap_sort.c */; };
-		8A75ECE6170414BA007F9972 /* mailimap_sort_types.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECE5170414B8007F9972 /* mailimap_sort_types.c */; };
-		8A75ECE7170414BA007F9972 /* mailimap_sort_types.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECE5170414B8007F9972 /* mailimap_sort_types.c */; };
-		8A75ECE8170414BA007F9972 /* mailimap_sort_types.c in Sources */ = {isa = PBXBuildFile; fileRef = 8A75ECE5170414B8007F9972 /* mailimap_sort_types.c */; };
-		C60136981776D16A00A5AF45 /* mailimap_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C60136961776D16A00A5AF45 /* mailimap_oauth2.c */; };
-		C60136991776D16A00A5AF45 /* mailimap_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C60136961776D16A00A5AF45 /* mailimap_oauth2.c */; };
-		C601369A1776D16A00A5AF45 /* mailimap_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C60136961776D16A00A5AF45 /* mailimap_oauth2.c */; };
-		C60E7B9A16C3809400A25BF4 /* enable.c in Sources */ = {isa = PBXBuildFile; fileRef = C60E7B9816C3809400A25BF4 /* enable.c */; };
-		C60E7B9D16C3809C00A25BF4 /* enable.c in Sources */ = {isa = PBXBuildFile; fileRef = C60E7B9816C3809400A25BF4 /* enable.c */; };
-		C60E7B9E16C3809D00A25BF4 /* enable.c in Sources */ = {isa = PBXBuildFile; fileRef = C60E7B9816C3809400A25BF4 /* enable.c */; };
-		C64BB21816E2FC2F000DB34C /* qresync_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21416E2FC2F000DB34C /* qresync_types.c */; };
-		C64BB21916E2FC2F000DB34C /* qresync_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21416E2FC2F000DB34C /* qresync_types.c */; };
-		C64BB21A16E2FC2F000DB34C /* qresync_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21416E2FC2F000DB34C /* qresync_types.c */; };
-		C64BB21B16E2FC2F000DB34C /* qresync.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21616E2FC2F000DB34C /* qresync.c */; };
-		C64BB21C16E2FC2F000DB34C /* qresync.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21616E2FC2F000DB34C /* qresync.c */; };
-		C64BB21D16E2FC2F000DB34C /* qresync.c in Sources */ = {isa = PBXBuildFile; fileRef = C64BB21616E2FC2F000DB34C /* qresync.c */; };
-		C64DC0181788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C64DC0151788AB3C0012CA0B /* mailsmtp_oauth2.c */; };
-		C64DC0191788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C64DC0151788AB3C0012CA0B /* mailsmtp_oauth2.c */; };
-		C64DC01A1788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */ = {isa = PBXBuildFile; fileRef = C64DC0151788AB3C0012CA0B /* mailsmtp_oauth2.c */; };
-		C64EA7B716A00CA700778456 /* xgmmsgid.c in Sources */ = {isa = PBXBuildFile; fileRef = 365DFFD115D1C93100F2DD85 /* xgmmsgid.c */; };
-		C64EA7B816A00CA700778456 /* xgmmsgid.c in Sources */ = {isa = PBXBuildFile; fileRef = 365DFFD115D1C93100F2DD85 /* xgmmsgid.c */; };
-		C64EA7C116A00CC500778456 /* mailimap_id_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7B916A00CC100778456 /* mailimap_id_parser.c */; };
-		C64EA7C216A00CC500778456 /* mailimap_id_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7B916A00CC100778456 /* mailimap_id_parser.c */; };
-		C64EA7C316A00CC500778456 /* mailimap_id_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7B916A00CC100778456 /* mailimap_id_parser.c */; };
-		C64EA7C516A00CC500778456 /* mailimap_id_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BB16A00CC200778456 /* mailimap_id_sender.c */; };
-		C64EA7C616A00CC500778456 /* mailimap_id_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BB16A00CC200778456 /* mailimap_id_sender.c */; };
-		C64EA7C716A00CC500778456 /* mailimap_id_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BB16A00CC200778456 /* mailimap_id_sender.c */; };
-		C64EA7C916A00CC500778456 /* mailimap_id_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BD16A00CC200778456 /* mailimap_id_types.c */; };
-		C64EA7CA16A00CC500778456 /* mailimap_id_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BD16A00CC200778456 /* mailimap_id_types.c */; };
-		C64EA7CB16A00CC500778456 /* mailimap_id_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BD16A00CC200778456 /* mailimap_id_types.c */; };
-		C64EA7CD16A00CC500778456 /* mailimap_id.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BF16A00CC300778456 /* mailimap_id.c */; };
-		C64EA7CE16A00CC500778456 /* mailimap_id.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BF16A00CC300778456 /* mailimap_id.c */; };
-		C64EA7CF16A00CC500778456 /* mailimap_id.c in Sources */ = {isa = PBXBuildFile; fileRef = C64EA7BF16A00CC300778456 /* mailimap_id.c */; };
-		C65179E5130E84BD004ADD56 /* namespace.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179E4130E84BD004ADD56 /* namespace.c */; };
-		C65179E7130E84BD004ADD56 /* namespace.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179E4130E84BD004ADD56 /* namespace.c */; };
-		C65179F2130E85CA004ADD56 /* namespace_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179F1130E85CA004ADD56 /* namespace_parser.c */; };
-		C65179F5130E85CA004ADD56 /* namespace_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179F1130E85CA004ADD56 /* namespace_parser.c */; };
-		C6517A08130E86C6004ADD56 /* namespace_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A06130E86C6004ADD56 /* namespace_types.c */; };
-		C6517A0A130E86C6004ADD56 /* namespace_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A06130E86C6004ADD56 /* namespace_types.c */; };
-		C6517A0E130E86D3004ADD56 /* namespace_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A0C130E86D3004ADD56 /* namespace_sender.c */; };
-		C6517A10130E86D3004ADD56 /* namespace_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A0C130E86D3004ADD56 /* namespace_sender.c */; };
-		C6635C3A16DFF10E0066276E /* condstore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3616DFF10E0066276E /* condstore_types.c */; };
-		C6635C3B16DFF10E0066276E /* condstore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3816DFF10E0066276E /* condstore.c */; };
-		C6667DEF1342ACCD00969A8E /* xlist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6667DED1342ACCD00969A8E /* xlist.c */; };
-		C6667DF11342ACCD00969A8E /* xlist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6667DED1342ACCD00969A8E /* xlist.c */; };
-		C668E2DA1736004400A2BB47 /* mailimap_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = C668E2D81736004400A2BB47 /* mailimap_compress.c */; };
-		C668E2DB1736004400A2BB47 /* mailimap_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = C668E2D81736004400A2BB47 /* mailimap_compress.c */; };
-		C668E2DC1736004400A2BB47 /* mailimap_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = C668E2D81736004400A2BB47 /* mailimap_compress.c */; };
-		C668E2F9173E18B900A2BB47 /* mailstream_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 2307A00A170AAA5500C43C59 /* mailstream_compress.c */; };
-		C668E2FA173E18BA00A2BB47 /* mailstream_compress.c in Sources */ = {isa = PBXBuildFile; fileRef = 2307A00A170AAA5500C43C59 /* mailstream_compress.c */; };
-		C682E21C15B315EF00BE9DA7 /* acl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9EE105335BC0059C3BA /* acl.c */; };
-		C682E21D15B315EF00BE9DA7 /* acl_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F0105335BC0059C3BA /* acl_parser.c */; };
-		C682E21E15B315EF00BE9DA7 /* acl_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F2105335BC0059C3BA /* acl_sender.c */; };
-		C682E21F15B315EF00BE9DA7 /* acl_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F4105335BC0059C3BA /* acl_types.c */; };
-		C682E22015B315EF00BE9DA7 /* annotatemore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F6105335BC0059C3BA /* annotatemore.c */; };
-		C682E22115B315EF00BE9DA7 /* annotatemore_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F8105335BC0059C3BA /* annotatemore_parser.c */; };
-		C682E22215B315EF00BE9DA7 /* annotatemore_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FA105335BC0059C3BA /* annotatemore_sender.c */; };
-		C682E22315B315EF00BE9DA7 /* annotatemore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FC105335BC0059C3BA /* annotatemore_types.c */; };
-		C682E22415B315EF00BE9DA7 /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E84F105335BC0059C3BA /* base64.c */; };
-		C682E22515B315EF00BE9DA7 /* carray.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E851105335BC0059C3BA /* carray.c */; };
-		C682E22615B315EF00BE9DA7 /* charconv.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E853105335BC0059C3BA /* charconv.c */; };
-		C682E22715B315EF00BE9DA7 /* chash.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E855105335BC0059C3BA /* chash.c */; };
-		C682E22815B315EF00BE9DA7 /* clist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E857105335BC0059C3BA /* clist.c */; };
-		C682E22915B315EF00BE9DA7 /* connect.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E859105335BC0059C3BA /* connect.c */; };
-		C682E22A15B315EF00BE9DA7 /* data_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E888105335BC0059C3BA /* data_message_driver.c */; };
-		C682E22B15B315EF00BE9DA7 /* date.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9BB105335BC0059C3BA /* date.c */; };
-		C682E22C15B315EF00BE9DA7 /* dbdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E893105335BC0059C3BA /* dbdriver.c */; };
-		C682E22D15B315EF00BE9DA7 /* dbdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E895105335BC0059C3BA /* dbdriver_message.c */; };
-		C682E22E15B315EF00BE9DA7 /* dbstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E898105335BC0059C3BA /* dbstorage.c */; };
-		C682E22F15B315EF00BE9DA7 /* feeddriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A2105335BC0059C3BA /* feeddriver.c */; };
-		C682E23015B315EF00BE9DA7 /* feeddriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A4105335BC0059C3BA /* feeddriver_message.c */; };
-		C682E23115B315EF00BE9DA7 /* feedstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A7105335BC0059C3BA /* feedstorage.c */; };
-		C682E23215B315EF00BE9DA7 /* generic_cache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E989105335BC0059C3BA /* generic_cache.c */; };
-		C682E23315B315EF00BE9DA7 /* hotmailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8B0105335BC0059C3BA /* hotmailstorage.c */; };
-		C682E23415B315EF00BE9DA7 /* idle.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FE105335BC0059C3BA /* idle.c */; };
-		C682E23515B315EF00BE9DA7 /* imapdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8BE105335BC0059C3BA /* imapdriver.c */; };
-		C682E23615B315EF00BE9DA7 /* imapdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C0105335BC0059C3BA /* imapdriver_cached.c */; };
-		C682E23715B315EF00BE9DA7 /* imapdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C2105335BC0059C3BA /* imapdriver_cached_message.c */; };
-		C682E23815B315EF00BE9DA7 /* imapdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C4105335BC0059C3BA /* imapdriver_message.c */; };
-		C682E23915B315EF00BE9DA7 /* imapdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C6105335BC0059C3BA /* imapdriver_tools.c */; };
-		C682E23A15B315EF00BE9DA7 /* imapstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8CA105335BC0059C3BA /* imapstorage.c */; };
-		C682E23B15B315EF00BE9DA7 /* imfcache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98C105335BC0059C3BA /* imfcache.c */; };
-		C682E23C15B315EF00BE9DA7 /* libetpan_version.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAC2105335BD0059C3BA /* libetpan_version.c */; };
-		C682E23D15B315EF00BE9DA7 /* mail_cache_db.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E85D105335BC0059C3BA /* mail_cache_db.c */; };
-		C682E23E15B315EF00BE9DA7 /* maildir.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA41105335BC0059C3BA /* maildir.c */; };
-		C682E23F15B315EF00BE9DA7 /* maildirdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8D8105335BC0059C3BA /* maildirdriver.c */; };
-		C682E24015B315EF00BE9DA7 /* maildirdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DA105335BC0059C3BA /* maildirdriver_cached.c */; };
-		C682E24115B315EF00BE9DA7 /* maildirdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DC105335BC0059C3BA /* maildirdriver_cached_message.c */; };
-		C682E24215B315EF00BE9DA7 /* maildirdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DE105335BC0059C3BA /* maildirdriver_message.c */; };
-		C682E24315B315EF00BE9DA7 /* maildirdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E0105335BC0059C3BA /* maildirdriver_tools.c */; };
-		C682E24415B315EF00BE9DA7 /* maildirstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E3105335BC0059C3BA /* maildirstorage.c */; };
-		C682E24515B315EF00BE9DA7 /* maildriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E965105335BC0059C3BA /* maildriver.c */; };
-		C682E24615B315EF00BE9DA7 /* maildriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E968105335BC0059C3BA /* maildriver_tools.c */; };
-		C682E24715B315EF00BE9DA7 /* maildriver_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96A105335BC0059C3BA /* maildriver_types.c */; };
-		C682E24815B315EF00BE9DA7 /* maildriver_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96C105335BC0059C3BA /* maildriver_types_helper.c */; };
-		C682E24915B315EF00BE9DA7 /* mailengine.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E99E105335BC0059C3BA /* mailengine.c */; };
-		C682E24A15B315EF00BE9DA7 /* mailfolder.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96E105335BC0059C3BA /* mailfolder.c */; };
-		C682E24B15B315EF00BE9DA7 /* mailimap.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA00105335BC0059C3BA /* mailimap.c */; };
-		C682E24C15B315EF00BE9DA7 /* mailimap_extension.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA02105335BC0059C3BA /* mailimap_extension.c */; };
-		C682E24D15B315EF00BE9DA7 /* mailimap_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA05105335BC0059C3BA /* mailimap_helper.c */; };
-		C682E24E15B315EF00BE9DA7 /* mailimap_keywords.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA07105335BC0059C3BA /* mailimap_keywords.c */; };
-		C682E24F15B315EF00BE9DA7 /* mailimap_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA09105335BC0059C3BA /* mailimap_parser.c */; };
-		C682E25015B315EF00BE9DA7 /* mailimap_print.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0B105335BC0059C3BA /* mailimap_print.c */; };
-		C682E25115B315EF00BE9DA7 /* mailimap_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0D105335BC0059C3BA /* mailimap_sender.c */; };
-		C682E25215B315EF00BE9DA7 /* mailimap_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0F105335BC0059C3BA /* mailimap_socket.c */; };
-		C682E25315B315EF00BE9DA7 /* mailimap_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA11105335BC0059C3BA /* mailimap_ssl.c */; };
-		C682E25415B315EF00BE9DA7 /* mailimap_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA13105335BC0059C3BA /* mailimap_types.c */; };
-		C682E25515B315EF00BE9DA7 /* mailimap_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA15105335BC0059C3BA /* mailimap_types_helper.c */; };
-		C682E25615B315EF00BE9DA7 /* mailimf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2C105335BC0059C3BA /* mailimf.c */; };
-		C682E25715B315EF00BE9DA7 /* mailimf_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2E105335BC0059C3BA /* mailimf_types.c */; };
-		C682E25815B315EF00BE9DA7 /* mailimf_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA30105335BC0059C3BA /* mailimf_types_helper.c */; };
-		C682E25915B315EF00BE9DA7 /* mailimf_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA33105335BC0059C3BA /* mailimf_write_file.c */; };
-		C682E25A15B315EF00BE9DA7 /* mailimf_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA35105335BC0059C3BA /* mailimf_write_generic.c */; };
-		C682E25B15B315EF00BE9DA7 /* mailimf_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA37105335BC0059C3BA /* mailimf_write_mem.c */; };
-		C682E25C15B315EF00BE9DA7 /* maillock.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E860105335BC0059C3BA /* maillock.c */; };
-		C682E25D15B315EF00BE9DA7 /* mailmbox.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA50105335BC0059C3BA /* mailmbox.c */; };
-		C682E25E15B315EF00BE9DA7 /* mailmbox_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA52105335BC0059C3BA /* mailmbox_parse.c */; };
-		C682E25F15B315EF00BE9DA7 /* mailmbox_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA54105335BC0059C3BA /* mailmbox_types.c */; };
-		C682E26015B315EF00BE9DA7 /* mailmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E970105335BC0059C3BA /* mailmessage.c */; };
-		C682E26115B315EF00BE9DA7 /* mailmessage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E972105335BC0059C3BA /* mailmessage_tools.c */; };
-		C682E26215B315EF00BE9DA7 /* mailmessage_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E974105335BC0059C3BA /* mailmessage_types.c */; };
-		C682E26315B315EF00BE9DA7 /* mailmh.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA5E105335BC0059C3BA /* mailmh.c */; };
-		C682E26415B315EF00BE9DA7 /* mailmime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA6F105335BC0059C3BA /* mailmime.c */; };
-		C682E26515B315EF00BE9DA7 /* mailmime_content.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA71105335BC0059C3BA /* mailmime_content.c */; };
-		C682E26615B315EF00BE9DA7 /* mailmime_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA73105335BC0059C3BA /* mailmime_decode.c */; };
-		C682E26715B315EF00BE9DA7 /* mailmime_disposition.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA75105335BC0059C3BA /* mailmime_disposition.c */; };
-		C682E26815B315EF00BE9DA7 /* mailmime_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA77105335BC0059C3BA /* mailmime_types.c */; };
-		C682E26915B315EF00BE9DA7 /* mailmime_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA79105335BC0059C3BA /* mailmime_types_helper.c */; };
-		C682E26A15B315EF00BE9DA7 /* mailmime_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7C105335BC0059C3BA /* mailmime_write_file.c */; };
-		C682E26B15B315EF00BE9DA7 /* mailmime_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7E105335BC0059C3BA /* mailmime_write_generic.c */; };
-		C682E26C15B315EF00BE9DA7 /* mailmime_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA80105335BC0059C3BA /* mailmime_write_mem.c */; };
-		C682E26D15B315EF00BE9DA7 /* mailpop3.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9D105335BC0059C3BA /* mailpop3.c */; };
-		C682E26E15B315EF00BE9DA7 /* mailpop3_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9F105335BC0059C3BA /* mailpop3_helper.c */; };
-		C682E26F15B315EF00BE9DA7 /* mailpop3_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA1105335BC0059C3BA /* mailpop3_socket.c */; };
-		C682E27015B315EF00BE9DA7 /* mailpop3_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA3105335BC0059C3BA /* mailpop3_ssl.c */; };
-		C682E27115B315EF00BE9DA7 /* mailprivacy.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A0105335BC0059C3BA /* mailprivacy.c */; };
-		C682E27215B315EF00BE9DA7 /* mailprivacy_gnupg.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A2105335BC0059C3BA /* mailprivacy_gnupg.c */; };
-		C682E27315B315EF00BE9DA7 /* mailprivacy_smime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A4105335BC0059C3BA /* mailprivacy_smime.c */; };
-		C682E27415B315EF00BE9DA7 /* mailprivacy_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A6105335BC0059C3BA /* mailprivacy_tools.c */; };
-		C682E27515B315EF00BE9DA7 /* mailsasl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E862105335BC0059C3BA /* mailsasl.c */; };
-		C682E27615B315EF00BE9DA7 /* mailsem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E864105335BC0059C3BA /* mailsem.c */; };
-		C682E27715B315EF00BE9DA7 /* mailsmtp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB0105335BC0059C3BA /* mailsmtp.c */; };
-		C682E27815B315EF00BE9DA7 /* mailsmtp_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB2105335BC0059C3BA /* mailsmtp_helper.c */; };
-		C682E27915B315EF00BE9DA7 /* mailsmtp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB4105335BC0059C3BA /* mailsmtp_socket.c */; };
-		C682E27A15B315EF00BE9DA7 /* mailsmtp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB6105335BC0059C3BA /* mailsmtp_ssl.c */; };
-		C682E27B15B315EF00BE9DA7 /* mailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E976105335BC0059C3BA /* mailstorage.c */; };
-		C682E27C15B315EF00BE9DA7 /* mailstorage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E978105335BC0059C3BA /* mailstorage_tools.c */; };
-		C682E27D15B315EF00BE9DA7 /* mailstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E866105335BC0059C3BA /* mailstream.c */; };
-		C682E27E15B315EF00BE9DA7 /* mailstream_cancel.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E868105335BC0059C3BA /* mailstream_cancel.c */; };
-		C682E27F15B315EF00BE9DA7 /* mailstream_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86B105335BC0059C3BA /* mailstream_helper.c */; };
-		C682E28015B315EF00BE9DA7 /* mailstream_low.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86D105335BC0059C3BA /* mailstream_low.c */; };
-		C682E28115B315EF00BE9DA7 /* mailstream_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86F105335BC0059C3BA /* mailstream_socket.c */; };
-		C682E28215B315EF00BE9DA7 /* mailstream_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E871105335BC0059C3BA /* mailstream_ssl.c */; };
-		C682E28315B315EF00BE9DA7 /* mailthread.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98E105335BC0059C3BA /* mailthread.c */; };
-		C682E28415B315EF00BE9DA7 /* mailthread_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E990105335BC0059C3BA /* mailthread_types.c */; };
-		C682E28515B315EF00BE9DA7 /* mboxdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F7105335BC0059C3BA /* mboxdriver.c */; };
-		C682E28615B315EF00BE9DA7 /* mboxdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F9105335BC0059C3BA /* mboxdriver_cached.c */; };
-		C682E28715B315EF00BE9DA7 /* mboxdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FB105335BC0059C3BA /* mboxdriver_cached_message.c */; };
-		C682E28815B315EF00BE9DA7 /* mboxdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FD105335BC0059C3BA /* mboxdriver_message.c */; };
-		C682E28915B315EF00BE9DA7 /* mboxdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FF105335BC0059C3BA /* mboxdriver_tools.c */; };
-		C682E28A15B315EF00BE9DA7 /* mboxstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E902105335BC0059C3BA /* mboxstorage.c */; };
-		C682E28B15B315EF00BE9DA7 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E878105335BC0059C3BA /* md5.c */; };
-		C682E28C15B315EF00BE9DA7 /* mhdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E910105335BC0059C3BA /* mhdriver.c */; };
-		C682E28D15B315EF00BE9DA7 /* mhdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E912105335BC0059C3BA /* mhdriver_cached.c */; };
-		C682E28E15B315EF00BE9DA7 /* mhdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E914105335BC0059C3BA /* mhdriver_cached_message.c */; };
-		C682E28F15B315EF00BE9DA7 /* mhdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E916105335BC0059C3BA /* mhdriver_message.c */; };
-		C682E29015B315EF00BE9DA7 /* mhdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E918105335BC0059C3BA /* mhdriver_tools.c */; };
-		C682E29115B315EF00BE9DA7 /* mhstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E91B105335BC0059C3BA /* mhstorage.c */; };
-		C682E29215B315EF00BE9DA7 /* mime_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E924105335BC0059C3BA /* mime_message_driver.c */; };
-		C682E29315B315EF00BE9DA7 /* mmapstring.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87B105335BC0059C3BA /* mmapstring.c */; };
-		C682E29415B315EF00BE9DA7 /* newsfeed.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C0105335BC0059C3BA /* newsfeed.c */; };
-		C682E29515B315EF00BE9DA7 /* newsfeed_item.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C2105335BC0059C3BA /* newsfeed_item.c */; };
-		C682E29615B315EF00BE9DA7 /* newsfeed_item_enclosure.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C4105335BC0059C3BA /* newsfeed_item_enclosure.c */; };
-		C682E29715B315EF00BE9DA7 /* newsfeed_private.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C6105335BC0059C3BA /* newsfeed_private.c */; };
-		C682E29815B315EF00BE9DA7 /* newsnntp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA8F105335BC0059C3BA /* newsnntp.c */; };
-		C682E29915B315EF00BE9DA7 /* newsnntp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA91105335BC0059C3BA /* newsnntp_socket.c */; };
-		C682E29A15B315EF00BE9DA7 /* newsnntp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA93105335BC0059C3BA /* newsnntp_ssl.c */; };
-		C682E29B15B315EF00BE9DA7 /* nntpdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E932105335BC0059C3BA /* nntpdriver.c */; };
-		C682E29C15B315EF00BE9DA7 /* nntpdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E934105335BC0059C3BA /* nntpdriver_cached.c */; };
-		C682E29D15B315EF00BE9DA7 /* nntpdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E936105335BC0059C3BA /* nntpdriver_cached_message.c */; };
-		C682E29E15B315EF00BE9DA7 /* nntpdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E938105335BC0059C3BA /* nntpdriver_message.c */; };
-		C682E29F15B315EF00BE9DA7 /* nntpdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93A105335BC0059C3BA /* nntpdriver_tools.c */; };
-		C682E2A015B315EF00BE9DA7 /* nntpstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93D105335BC0059C3BA /* nntpstorage.c */; };
-		C682E2A115B315EF00BE9DA7 /* parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C9105335BC0059C3BA /* parser.c */; };
-		C682E2A215B315EF00BE9DA7 /* parser_atom03.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CB105335BC0059C3BA /* parser_atom03.c */; };
-		C682E2A315B315EF00BE9DA7 /* parser_atom10.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CD105335BC0059C3BA /* parser_atom10.c */; };
-		C682E2A415B315EF00BE9DA7 /* parser_rdf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CF105335BC0059C3BA /* parser_rdf.c */; };
-		C682E2A515B315EF00BE9DA7 /* parser_rss20.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9D1105335BC0059C3BA /* parser_rss20.c */; };
-		C682E2A615B315EF00BE9DA7 /* pop3driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94B105335BC0059C3BA /* pop3driver.c */; };
-		C682E2A715B315EF00BE9DA7 /* pop3driver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94D105335BC0059C3BA /* pop3driver_cached.c */; };
-		C682E2A815B315EF00BE9DA7 /* pop3driver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94F105335BC0059C3BA /* pop3driver_cached_message.c */; };
-		C682E2A915B315EF00BE9DA7 /* pop3driver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E951105335BC0059C3BA /* pop3driver_message.c */; };
-		C682E2AA15B315EF00BE9DA7 /* pop3driver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E953105335BC0059C3BA /* pop3driver_tools.c */; };
-		C682E2AB15B315EF00BE9DA7 /* pop3storage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E956105335BC0059C3BA /* pop3storage.c */; };
-		C682E2AC15B315EF00BE9DA7 /* timeutils.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87E105335BC0059C3BA /* timeutils.c */; };
-		C682E2AD15B315EF00BE9DA7 /* uidplus.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1B105335BC0059C3BA /* uidplus.c */; };
-		C682E2AE15B315EF00BE9DA7 /* uidplus_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1D105335BC0059C3BA /* uidplus_parser.c */; };
-		C682E2AF15B315EF00BE9DA7 /* uidplus_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1F105335BC0059C3BA /* uidplus_sender.c */; };
-		C682E2B015B315EF00BE9DA7 /* uidplus_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA21105335BC0059C3BA /* uidplus_types.c */; };
-		C682E2B115B315EF00BE9DA7 /* quota_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FA110376F200897274 /* quota_parser.c */; };
-		C682E2B215B315EF00BE9DA7 /* quota_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FC110376F200897274 /* quota_sender.c */; };
-		C682E2B315B315EF00BE9DA7 /* quota_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FE110376F200897274 /* quota_types.c */; };
-		C682E2B415B315EF00BE9DA7 /* quota.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E57200110376F200897274 /* quota.c */; };
-		C682E2B515B315EF00BE9DA7 /* namespace.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179E4130E84BD004ADD56 /* namespace.c */; };
-		C682E2B615B315EF00BE9DA7 /* namespace_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C65179F1130E85CA004ADD56 /* namespace_parser.c */; };
-		C682E2B715B315EF00BE9DA7 /* namespace_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A06130E86C6004ADD56 /* namespace_types.c */; };
-		C682E2B815B315EF00BE9DA7 /* namespace_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6517A0C130E86D3004ADD56 /* namespace_sender.c */; };
-		C682E2B915B315EF00BE9DA7 /* xlist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6667DED1342ACCD00969A8E /* xlist.c */; };
-		C682E2BA15B315EF00BE9DA7 /* mailstream_cfstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6EFB8761433F1F300F805C0 /* mailstream_cfstream.c */; };
-		C682E2BB15B315EF00BE9DA7 /* xgmlabels.c in Sources */ = {isa = PBXBuildFile; fileRef = C6CE9B1514AA9C8900D20BA6 /* xgmlabels.c */; };
-		C69AB1981054704000F32FBD /* acl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9EE105335BC0059C3BA /* acl.c */; };
-		C69AB19A1054704000F32FBD /* acl_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F0105335BC0059C3BA /* acl_parser.c */; };
-		C69AB19C1054704000F32FBD /* acl_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F2105335BC0059C3BA /* acl_sender.c */; };
-		C69AB19E1054704000F32FBD /* acl_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F4105335BC0059C3BA /* acl_types.c */; };
-		C69AB1A01054704000F32FBD /* annotatemore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F6105335BC0059C3BA /* annotatemore.c */; };
-		C69AB1A21054704000F32FBD /* annotatemore_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F8105335BC0059C3BA /* annotatemore_parser.c */; };
-		C69AB1A41054704000F32FBD /* annotatemore_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FA105335BC0059C3BA /* annotatemore_sender.c */; };
-		C69AB1A61054704000F32FBD /* annotatemore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FC105335BC0059C3BA /* annotatemore_types.c */; };
-		C69AB1A81054704000F32FBD /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E84F105335BC0059C3BA /* base64.c */; };
-		C69AB1AA1054704000F32FBD /* carray.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E851105335BC0059C3BA /* carray.c */; };
-		C69AB1AC1054704000F32FBD /* charconv.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E853105335BC0059C3BA /* charconv.c */; };
-		C69AB1AE1054704000F32FBD /* chash.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E855105335BC0059C3BA /* chash.c */; };
-		C69AB1B01054704000F32FBD /* clist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E857105335BC0059C3BA /* clist.c */; };
-		C69AB1B21054704000F32FBD /* connect.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E859105335BC0059C3BA /* connect.c */; };
-		C69AB1B41054704000F32FBD /* data_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E888105335BC0059C3BA /* data_message_driver.c */; };
-		C69AB1B61054704000F32FBD /* date.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9BB105335BC0059C3BA /* date.c */; };
-		C69AB1B81054704000F32FBD /* dbdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E893105335BC0059C3BA /* dbdriver.c */; };
-		C69AB1BA1054704000F32FBD /* dbdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E895105335BC0059C3BA /* dbdriver_message.c */; };
-		C69AB1BD1054704000F32FBD /* dbstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E898105335BC0059C3BA /* dbstorage.c */; };
-		C69AB1BF1054704000F32FBD /* feeddriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A2105335BC0059C3BA /* feeddriver.c */; };
-		C69AB1C11054704000F32FBD /* feeddriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A4105335BC0059C3BA /* feeddriver_message.c */; };
-		C69AB1C41054704000F32FBD /* feedstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A7105335BC0059C3BA /* feedstorage.c */; };
-		C69AB1C61054704000F32FBD /* generic_cache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E989105335BC0059C3BA /* generic_cache.c */; };
-		C69AB1CA1054704000F32FBD /* hotmailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8B0105335BC0059C3BA /* hotmailstorage.c */; };
-		C69AB1CC1054704000F32FBD /* idle.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FE105335BC0059C3BA /* idle.c */; };
-		C69AB1CE1054704000F32FBD /* imapdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8BE105335BC0059C3BA /* imapdriver.c */; };
-		C69AB1D01054704000F32FBD /* imapdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C0105335BC0059C3BA /* imapdriver_cached.c */; };
-		C69AB1D21054704000F32FBD /* imapdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C2105335BC0059C3BA /* imapdriver_cached_message.c */; };
-		C69AB1D41054704000F32FBD /* imapdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C4105335BC0059C3BA /* imapdriver_message.c */; };
-		C69AB1D61054704000F32FBD /* imapdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C6105335BC0059C3BA /* imapdriver_tools.c */; };
-		C69AB1DA1054704000F32FBD /* imapstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8CA105335BC0059C3BA /* imapstorage.c */; };
-		C69AB1DC1054704000F32FBD /* imfcache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98C105335BC0059C3BA /* imfcache.c */; };
-		C69AB1DF1054704000F32FBD /* libetpan_version.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAC2105335BD0059C3BA /* libetpan_version.c */; };
-		C69AB1E11054704000F32FBD /* mail_cache_db.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E85D105335BC0059C3BA /* mail_cache_db.c */; };
-		C69AB1E41054704000F32FBD /* maildir.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA41105335BC0059C3BA /* maildir.c */; };
-		C69AB1E71054704000F32FBD /* maildirdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8D8105335BC0059C3BA /* maildirdriver.c */; };
-		C69AB1E91054704000F32FBD /* maildirdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DA105335BC0059C3BA /* maildirdriver_cached.c */; };
-		C69AB1EB1054704000F32FBD /* maildirdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DC105335BC0059C3BA /* maildirdriver_cached_message.c */; };
-		C69AB1ED1054704000F32FBD /* maildirdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DE105335BC0059C3BA /* maildirdriver_message.c */; };
-		C69AB1EF1054704000F32FBD /* maildirdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E0105335BC0059C3BA /* maildirdriver_tools.c */; };
-		C69AB1F21054704000F32FBD /* maildirstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E3105335BC0059C3BA /* maildirstorage.c */; };
-		C69AB1F41054704000F32FBD /* maildriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E965105335BC0059C3BA /* maildriver.c */; };
-		C69AB1F71054704000F32FBD /* maildriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E968105335BC0059C3BA /* maildriver_tools.c */; };
-		C69AB1F91054704000F32FBD /* maildriver_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96A105335BC0059C3BA /* maildriver_types.c */; };
-		C69AB1FB1054704000F32FBD /* maildriver_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96C105335BC0059C3BA /* maildriver_types_helper.c */; };
-		C69AB1FD1054704000F32FBD /* mailengine.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E99E105335BC0059C3BA /* mailengine.c */; };
-		C69AB1FF1054704000F32FBD /* mailfolder.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96E105335BC0059C3BA /* mailfolder.c */; };
-		C69AB2011054704000F32FBD /* mailimap.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA00105335BC0059C3BA /* mailimap.c */; };
-		C69AB2031054704000F32FBD /* mailimap_extension.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA02105335BC0059C3BA /* mailimap_extension.c */; };
-		C69AB2061054704000F32FBD /* mailimap_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA05105335BC0059C3BA /* mailimap_helper.c */; };
-		C69AB2081054704000F32FBD /* mailimap_keywords.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA07105335BC0059C3BA /* mailimap_keywords.c */; };
-		C69AB20A1054704000F32FBD /* mailimap_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA09105335BC0059C3BA /* mailimap_parser.c */; };
-		C69AB20C1054704000F32FBD /* mailimap_print.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0B105335BC0059C3BA /* mailimap_print.c */; };
-		C69AB20E1054704000F32FBD /* mailimap_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0D105335BC0059C3BA /* mailimap_sender.c */; };
-		C69AB2101054704000F32FBD /* mailimap_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0F105335BC0059C3BA /* mailimap_socket.c */; };
-		C69AB2121054704000F32FBD /* mailimap_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA11105335BC0059C3BA /* mailimap_ssl.c */; };
-		C69AB2141054704000F32FBD /* mailimap_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA13105335BC0059C3BA /* mailimap_types.c */; };
-		C69AB2161054704000F32FBD /* mailimap_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA15105335BC0059C3BA /* mailimap_types_helper.c */; };
-		C69AB2181054704000F32FBD /* mailimf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2C105335BC0059C3BA /* mailimf.c */; };
-		C69AB21A1054704000F32FBD /* mailimf_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2E105335BC0059C3BA /* mailimf_types.c */; };
-		C69AB21C1054704000F32FBD /* mailimf_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA30105335BC0059C3BA /* mailimf_types_helper.c */; };
-		C69AB21F1054704000F32FBD /* mailimf_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA33105335BC0059C3BA /* mailimf_write_file.c */; };
-		C69AB2211054704000F32FBD /* mailimf_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA35105335BC0059C3BA /* mailimf_write_generic.c */; };
-		C69AB2231054704000F32FBD /* mailimf_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA37105335BC0059C3BA /* mailimf_write_mem.c */; };
-		C69AB2251054704000F32FBD /* maillock.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E860105335BC0059C3BA /* maillock.c */; };
-		C69AB2271054704000F32FBD /* mailmbox.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA50105335BC0059C3BA /* mailmbox.c */; };
-		C69AB2291054704000F32FBD /* mailmbox_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA52105335BC0059C3BA /* mailmbox_parse.c */; };
-		C69AB22B1054704000F32FBD /* mailmbox_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA54105335BC0059C3BA /* mailmbox_types.c */; };
-		C69AB22D1054704000F32FBD /* mailmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E970105335BC0059C3BA /* mailmessage.c */; };
-		C69AB22F1054704000F32FBD /* mailmessage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E972105335BC0059C3BA /* mailmessage_tools.c */; };
-		C69AB2311054704000F32FBD /* mailmessage_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E974105335BC0059C3BA /* mailmessage_types.c */; };
-		C69AB2331054704000F32FBD /* mailmh.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA5E105335BC0059C3BA /* mailmh.c */; };
-		C69AB2351054704000F32FBD /* mailmime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA6F105335BC0059C3BA /* mailmime.c */; };
-		C69AB2371054704000F32FBD /* mailmime_content.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA71105335BC0059C3BA /* mailmime_content.c */; };
-		C69AB2391054704000F32FBD /* mailmime_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA73105335BC0059C3BA /* mailmime_decode.c */; };
-		C69AB23B1054704000F32FBD /* mailmime_disposition.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA75105335BC0059C3BA /* mailmime_disposition.c */; };
-		C69AB23D1054704000F32FBD /* mailmime_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA77105335BC0059C3BA /* mailmime_types.c */; };
-		C69AB23F1054704000F32FBD /* mailmime_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA79105335BC0059C3BA /* mailmime_types_helper.c */; };
-		C69AB2421054704000F32FBD /* mailmime_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7C105335BC0059C3BA /* mailmime_write_file.c */; };
-		C69AB2441054704000F32FBD /* mailmime_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7E105335BC0059C3BA /* mailmime_write_generic.c */; };
-		C69AB2461054704000F32FBD /* mailmime_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA80105335BC0059C3BA /* mailmime_write_mem.c */; };
-		C69AB2481054704000F32FBD /* mailpop3.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9D105335BC0059C3BA /* mailpop3.c */; };
-		C69AB24A1054704000F32FBD /* mailpop3_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9F105335BC0059C3BA /* mailpop3_helper.c */; };
-		C69AB24C1054704000F32FBD /* mailpop3_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA1105335BC0059C3BA /* mailpop3_socket.c */; };
-		C69AB24E1054704000F32FBD /* mailpop3_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA3105335BC0059C3BA /* mailpop3_ssl.c */; };
-		C69AB2511054704000F32FBD /* mailprivacy.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A0105335BC0059C3BA /* mailprivacy.c */; };
-		C69AB2531054704000F32FBD /* mailprivacy_gnupg.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A2105335BC0059C3BA /* mailprivacy_gnupg.c */; };
-		C69AB2551054704000F32FBD /* mailprivacy_smime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A4105335BC0059C3BA /* mailprivacy_smime.c */; };
-		C69AB2571054704000F32FBD /* mailprivacy_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A6105335BC0059C3BA /* mailprivacy_tools.c */; };
-		C69AB25B1054704000F32FBD /* mailsasl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E862105335BC0059C3BA /* mailsasl.c */; };
-		C69AB25D1054704000F32FBD /* mailsem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E864105335BC0059C3BA /* mailsem.c */; };
-		C69AB25F1054704000F32FBD /* mailsmtp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB0105335BC0059C3BA /* mailsmtp.c */; };
-		C69AB2611054704000F32FBD /* mailsmtp_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB2105335BC0059C3BA /* mailsmtp_helper.c */; };
-		C69AB2631054704000F32FBD /* mailsmtp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB4105335BC0059C3BA /* mailsmtp_socket.c */; };
-		C69AB2651054704000F32FBD /* mailsmtp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB6105335BC0059C3BA /* mailsmtp_ssl.c */; };
-		C69AB2681054704000F32FBD /* mailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E976105335BC0059C3BA /* mailstorage.c */; };
-		C69AB26A1054704000F32FBD /* mailstorage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E978105335BC0059C3BA /* mailstorage_tools.c */; };
-		C69AB26D1054704000F32FBD /* mailstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E866105335BC0059C3BA /* mailstream.c */; };
-		C69AB26F1054704000F32FBD /* mailstream_cancel.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E868105335BC0059C3BA /* mailstream_cancel.c */; };
-		C69AB2721054704000F32FBD /* mailstream_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86B105335BC0059C3BA /* mailstream_helper.c */; };
-		C69AB2741054704000F32FBD /* mailstream_low.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86D105335BC0059C3BA /* mailstream_low.c */; };
-		C69AB2761054704000F32FBD /* mailstream_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86F105335BC0059C3BA /* mailstream_socket.c */; };
-		C69AB2781054704000F32FBD /* mailstream_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E871105335BC0059C3BA /* mailstream_ssl.c */; };
-		C69AB27C1054704000F32FBD /* mailthread.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98E105335BC0059C3BA /* mailthread.c */; };
-		C69AB27E1054704000F32FBD /* mailthread_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E990105335BC0059C3BA /* mailthread_types.c */; };
-		C69AB2801054704000F32FBD /* mboxdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F7105335BC0059C3BA /* mboxdriver.c */; };
-		C69AB2821054704000F32FBD /* mboxdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F9105335BC0059C3BA /* mboxdriver_cached.c */; };
-		C69AB2841054704000F32FBD /* mboxdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FB105335BC0059C3BA /* mboxdriver_cached_message.c */; };
-		C69AB2861054704000F32FBD /* mboxdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FD105335BC0059C3BA /* mboxdriver_message.c */; };
-		C69AB2881054704000F32FBD /* mboxdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FF105335BC0059C3BA /* mboxdriver_tools.c */; };
-		C69AB28B1054704000F32FBD /* mboxstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E902105335BC0059C3BA /* mboxstorage.c */; };
-		C69AB28D1054704000F32FBD /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E878105335BC0059C3BA /* md5.c */; };
-		C69AB2901054704000F32FBD /* mhdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E910105335BC0059C3BA /* mhdriver.c */; };
-		C69AB2921054704000F32FBD /* mhdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E912105335BC0059C3BA /* mhdriver_cached.c */; };
-		C69AB2941054704000F32FBD /* mhdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E914105335BC0059C3BA /* mhdriver_cached_message.c */; };
-		C69AB2961054704000F32FBD /* mhdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E916105335BC0059C3BA /* mhdriver_message.c */; };
-		C69AB2981054704000F32FBD /* mhdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E918105335BC0059C3BA /* mhdriver_tools.c */; };
-		C69AB29B1054704000F32FBD /* mhstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E91B105335BC0059C3BA /* mhstorage.c */; };
-		C69AB29D1054704000F32FBD /* mime_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E924105335BC0059C3BA /* mime_message_driver.c */; };
-		C69AB29F1054704000F32FBD /* mmapstring.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87B105335BC0059C3BA /* mmapstring.c */; };
-		C69AB2A21054704000F32FBD /* newsfeed.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C0105335BC0059C3BA /* newsfeed.c */; };
-		C69AB2A41054704000F32FBD /* newsfeed_item.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C2105335BC0059C3BA /* newsfeed_item.c */; };
-		C69AB2A61054704000F32FBD /* newsfeed_item_enclosure.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C4105335BC0059C3BA /* newsfeed_item_enclosure.c */; };
-		C69AB2A81054704000F32FBD /* newsfeed_private.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C6105335BC0059C3BA /* newsfeed_private.c */; };
-		C69AB2AB1054704000F32FBD /* newsnntp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA8F105335BC0059C3BA /* newsnntp.c */; };
-		C69AB2AD1054704000F32FBD /* newsnntp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA91105335BC0059C3BA /* newsnntp_socket.c */; };
-		C69AB2AF1054704000F32FBD /* newsnntp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA93105335BC0059C3BA /* newsnntp_ssl.c */; };
-		C69AB2B21054704000F32FBD /* nntpdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E932105335BC0059C3BA /* nntpdriver.c */; };
-		C69AB2B41054704000F32FBD /* nntpdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E934105335BC0059C3BA /* nntpdriver_cached.c */; };
-		C69AB2B61054704000F32FBD /* nntpdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E936105335BC0059C3BA /* nntpdriver_cached_message.c */; };
-		C69AB2B81054704000F32FBD /* nntpdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E938105335BC0059C3BA /* nntpdriver_message.c */; };
-		C69AB2BA1054704000F32FBD /* nntpdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93A105335BC0059C3BA /* nntpdriver_tools.c */; };
-		C69AB2BD1054704000F32FBD /* nntpstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93D105335BC0059C3BA /* nntpstorage.c */; };
-		C69AB2BF1054704000F32FBD /* parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C9105335BC0059C3BA /* parser.c */; };
-		C69AB2C11054704000F32FBD /* parser_atom03.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CB105335BC0059C3BA /* parser_atom03.c */; };
-		C69AB2C31054704000F32FBD /* parser_atom10.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CD105335BC0059C3BA /* parser_atom10.c */; };
-		C69AB2C51054704000F32FBD /* parser_rdf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CF105335BC0059C3BA /* parser_rdf.c */; };
-		C69AB2C71054704000F32FBD /* parser_rss20.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9D1105335BC0059C3BA /* parser_rss20.c */; };
-		C69AB2C91054704000F32FBD /* pop3driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94B105335BC0059C3BA /* pop3driver.c */; };
-		C69AB2CB1054704000F32FBD /* pop3driver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94D105335BC0059C3BA /* pop3driver_cached.c */; };
-		C69AB2CD1054704000F32FBD /* pop3driver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94F105335BC0059C3BA /* pop3driver_cached_message.c */; };
-		C69AB2CF1054704000F32FBD /* pop3driver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E951105335BC0059C3BA /* pop3driver_message.c */; };
-		C69AB2D11054704000F32FBD /* pop3driver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E953105335BC0059C3BA /* pop3driver_tools.c */; };
-		C69AB2D41054704000F32FBD /* pop3storage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E956105335BC0059C3BA /* pop3storage.c */; };
-		C69AB2D61054704000F32FBD /* timeutils.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87E105335BC0059C3BA /* timeutils.c */; };
-		C69AB2D81054704000F32FBD /* uidplus.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1B105335BC0059C3BA /* uidplus.c */; };
-		C69AB2DA1054704000F32FBD /* uidplus_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1D105335BC0059C3BA /* uidplus_parser.c */; };
-		C69AB2DC1054704000F32FBD /* uidplus_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1F105335BC0059C3BA /* uidplus_sender.c */; };
-		C69AB2DE1054704000F32FBD /* uidplus_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA21105335BC0059C3BA /* uidplus_types.c */; };
-		C69AD25F14AB2062003D04D5 /* xgmlabels.c in Sources */ = {isa = PBXBuildFile; fileRef = C6CE9B1514AA9C8900D20BA6 /* xgmlabels.c */; };
-		C69BA86017DF63CA00D601B7 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C69BA85F17DF63C900D601B7 /* libz.dylib */; };
-		C6CC501516E11074001E7392 /* condstore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3816DFF10E0066276E /* condstore.c */; };
-		C6CC501616E11074001E7392 /* condstore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3816DFF10E0066276E /* condstore.c */; };
-		C6CC501716E11079001E7392 /* condstore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3616DFF10E0066276E /* condstore_types.c */; };
-		C6CC501816E1107A001E7392 /* condstore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6635C3616DFF10E0066276E /* condstore_types.c */; };
-		C6CE9B1614AA9C8B00D20BA6 /* xgmlabels.c in Sources */ = {isa = PBXBuildFile; fileRef = C6CE9B1514AA9C8900D20BA6 /* xgmlabels.c */; };
-		C6E57202110376F200897274 /* quota_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FA110376F200897274 /* quota_parser.c */; };
-		C6E57203110376F200897274 /* quota_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FC110376F200897274 /* quota_sender.c */; };
-		C6E57204110376F200897274 /* quota_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FE110376F200897274 /* quota_types.c */; };
-		C6E57205110376F200897274 /* quota.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E57200110376F200897274 /* quota.c */; };
-		C6E5720E1103770400897274 /* quota.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E57200110376F200897274 /* quota.c */; };
-		C6E572101103770400897274 /* quota_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FA110376F200897274 /* quota_parser.c */; };
-		C6E572121103770400897274 /* quota_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FC110376F200897274 /* quota_sender.c */; };
-		C6E572141103770400897274 /* quota_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6E571FE110376F200897274 /* quota_types.c */; };
-		C6ED6CF717A185FD00A4A14C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6CF617A185FD00A4A14C /* Security.framework */; };
-		C6EFB8781433F1F300F805C0 /* mailstream_cfstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6EFB8761433F1F300F805C0 /* mailstream_cfstream.c */; };
-		C6EFB87A1433F1F300F805C0 /* mailstream_cfstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6EFB8761433F1F300F805C0 /* mailstream_cfstream.c */; };
-		C6EFB8AE1433F58500F805C0 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6EFB8AD1433F58500F805C0 /* CoreFoundation.framework */; };
-		C6EFB8B41433F5A400F805C0 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6EFB8B31433F5A400F805C0 /* CoreServices.framework */; };
-		C6F61F741701409B0073032E /* xgmthrid.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F61F721701409B0073032E /* xgmthrid.c */; };
-		C6F61F751701409B0073032E /* xgmthrid.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F61F721701409B0073032E /* xgmthrid.c */; };
-		C6F61F761701409B0073032E /* xgmthrid.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F61F721701409B0073032E /* xgmthrid.c */; };
-		C6F9EAFB105335BD0059C3BA /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E84F105335BC0059C3BA /* base64.c */; };
-		C6F9EAFD105335BD0059C3BA /* carray.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E851105335BC0059C3BA /* carray.c */; };
-		C6F9EAFF105335BD0059C3BA /* charconv.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E853105335BC0059C3BA /* charconv.c */; };
-		C6F9EB01105335BD0059C3BA /* chash.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E855105335BC0059C3BA /* chash.c */; };
-		C6F9EB03105335BD0059C3BA /* clist.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E857105335BC0059C3BA /* clist.c */; };
-		C6F9EB05105335BD0059C3BA /* connect.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E859105335BC0059C3BA /* connect.c */; };
-		C6F9EB09105335BD0059C3BA /* mail_cache_db.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E85D105335BC0059C3BA /* mail_cache_db.c */; };
-		C6F9EB0C105335BD0059C3BA /* maillock.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E860105335BC0059C3BA /* maillock.c */; };
-		C6F9EB0E105335BD0059C3BA /* mailsasl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E862105335BC0059C3BA /* mailsasl.c */; };
-		C6F9EB10105335BD0059C3BA /* mailsem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E864105335BC0059C3BA /* mailsem.c */; };
-		C6F9EB12105335BD0059C3BA /* mailstream.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E866105335BC0059C3BA /* mailstream.c */; };
-		C6F9EB14105335BD0059C3BA /* mailstream_cancel.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E868105335BC0059C3BA /* mailstream_cancel.c */; };
-		C6F9EB17105335BD0059C3BA /* mailstream_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86B105335BC0059C3BA /* mailstream_helper.c */; };
-		C6F9EB19105335BD0059C3BA /* mailstream_low.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86D105335BC0059C3BA /* mailstream_low.c */; };
-		C6F9EB1B105335BD0059C3BA /* mailstream_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E86F105335BC0059C3BA /* mailstream_socket.c */; };
-		C6F9EB1D105335BD0059C3BA /* mailstream_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E871105335BC0059C3BA /* mailstream_ssl.c */; };
-		C6F9EB24105335BD0059C3BA /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E878105335BC0059C3BA /* md5.c */; };
-		C6F9EB27105335BD0059C3BA /* mmapstring.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87B105335BC0059C3BA /* mmapstring.c */; };
-		C6F9EB2A105335BD0059C3BA /* timeutils.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E87E105335BC0059C3BA /* timeutils.c */; };
-		C6F9EB30105335BD0059C3BA /* data_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E888105335BC0059C3BA /* data_message_driver.c */; };
-		C6F9EB39105335BD0059C3BA /* dbdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E893105335BC0059C3BA /* dbdriver.c */; };
-		C6F9EB3B105335BD0059C3BA /* dbdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E895105335BC0059C3BA /* dbdriver_message.c */; };
-		C6F9EB3E105335BD0059C3BA /* dbstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E898105335BC0059C3BA /* dbstorage.c */; };
-		C6F9EB46105335BD0059C3BA /* feeddriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A2105335BC0059C3BA /* feeddriver.c */; };
-		C6F9EB48105335BD0059C3BA /* feeddriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A4105335BC0059C3BA /* feeddriver_message.c */; };
-		C6F9EB4B105335BD0059C3BA /* feedstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8A7105335BC0059C3BA /* feedstorage.c */; };
-		C6F9EB52105335BD0059C3BA /* hotmailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8B0105335BC0059C3BA /* hotmailstorage.c */; };
-		C6F9EB5E105335BD0059C3BA /* imapdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8BE105335BC0059C3BA /* imapdriver.c */; };
-		C6F9EB60105335BD0059C3BA /* imapdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C0105335BC0059C3BA /* imapdriver_cached.c */; };
-		C6F9EB62105335BD0059C3BA /* imapdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C2105335BC0059C3BA /* imapdriver_cached_message.c */; };
-		C6F9EB64105335BD0059C3BA /* imapdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C4105335BC0059C3BA /* imapdriver_message.c */; };
-		C6F9EB66105335BD0059C3BA /* imapdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8C6105335BC0059C3BA /* imapdriver_tools.c */; };
-		C6F9EB6A105335BD0059C3BA /* imapstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8CA105335BC0059C3BA /* imapstorage.c */; };
-		C6F9EB76105335BD0059C3BA /* maildirdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8D8105335BC0059C3BA /* maildirdriver.c */; };
-		C6F9EB78105335BD0059C3BA /* maildirdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DA105335BC0059C3BA /* maildirdriver_cached.c */; };
-		C6F9EB7A105335BD0059C3BA /* maildirdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DC105335BC0059C3BA /* maildirdriver_cached_message.c */; };
-		C6F9EB7C105335BD0059C3BA /* maildirdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8DE105335BC0059C3BA /* maildirdriver_message.c */; };
-		C6F9EB7E105335BD0059C3BA /* maildirdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E0105335BC0059C3BA /* maildirdriver_tools.c */; };
-		C6F9EB81105335BD0059C3BA /* maildirstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8E3105335BC0059C3BA /* maildirstorage.c */; };
-		C6F9EB93105335BD0059C3BA /* mboxdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F7105335BC0059C3BA /* mboxdriver.c */; };
-		C6F9EB95105335BD0059C3BA /* mboxdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8F9105335BC0059C3BA /* mboxdriver_cached.c */; };
-		C6F9EB97105335BD0059C3BA /* mboxdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FB105335BC0059C3BA /* mboxdriver_cached_message.c */; };
-		C6F9EB99105335BD0059C3BA /* mboxdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FD105335BC0059C3BA /* mboxdriver_message.c */; };
-		C6F9EB9B105335BD0059C3BA /* mboxdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E8FF105335BC0059C3BA /* mboxdriver_tools.c */; };
-		C6F9EB9E105335BD0059C3BA /* mboxstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E902105335BC0059C3BA /* mboxstorage.c */; };
-		C6F9EBAA105335BD0059C3BA /* mhdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E910105335BC0059C3BA /* mhdriver.c */; };
-		C6F9EBAC105335BD0059C3BA /* mhdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E912105335BC0059C3BA /* mhdriver_cached.c */; };
-		C6F9EBAE105335BD0059C3BA /* mhdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E914105335BC0059C3BA /* mhdriver_cached_message.c */; };
-		C6F9EBB0105335BD0059C3BA /* mhdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E916105335BC0059C3BA /* mhdriver_message.c */; };
-		C6F9EBB2105335BD0059C3BA /* mhdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E918105335BC0059C3BA /* mhdriver_tools.c */; };
-		C6F9EBB5105335BD0059C3BA /* mhstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E91B105335BC0059C3BA /* mhstorage.c */; };
-		C6F9EBBC105335BD0059C3BA /* mime_message_driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E924105335BC0059C3BA /* mime_message_driver.c */; };
-		C6F9EBC8105335BD0059C3BA /* nntpdriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E932105335BC0059C3BA /* nntpdriver.c */; };
-		C6F9EBCA105335BD0059C3BA /* nntpdriver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E934105335BC0059C3BA /* nntpdriver_cached.c */; };
-		C6F9EBCC105335BD0059C3BA /* nntpdriver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E936105335BC0059C3BA /* nntpdriver_cached_message.c */; };
-		C6F9EBCE105335BD0059C3BA /* nntpdriver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E938105335BC0059C3BA /* nntpdriver_message.c */; };
-		C6F9EBD0105335BD0059C3BA /* nntpdriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93A105335BC0059C3BA /* nntpdriver_tools.c */; };
-		C6F9EBD3105335BD0059C3BA /* nntpstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E93D105335BC0059C3BA /* nntpstorage.c */; };
-		C6F9EBDF105335BD0059C3BA /* pop3driver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94B105335BC0059C3BA /* pop3driver.c */; };
-		C6F9EBE1105335BD0059C3BA /* pop3driver_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94D105335BC0059C3BA /* pop3driver_cached.c */; };
-		C6F9EBE3105335BD0059C3BA /* pop3driver_cached_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E94F105335BC0059C3BA /* pop3driver_cached_message.c */; };
-		C6F9EBE5105335BD0059C3BA /* pop3driver_message.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E951105335BC0059C3BA /* pop3driver_message.c */; };
-		C6F9EBE7105335BD0059C3BA /* pop3driver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E953105335BC0059C3BA /* pop3driver_tools.c */; };
-		C6F9EBEA105335BD0059C3BA /* pop3storage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E956105335BC0059C3BA /* pop3storage.c */; };
-		C6F9EBF7105335BD0059C3BA /* maildriver.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E965105335BC0059C3BA /* maildriver.c */; };
-		C6F9EBFA105335BD0059C3BA /* maildriver_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E968105335BC0059C3BA /* maildriver_tools.c */; };
-		C6F9EBFC105335BD0059C3BA /* maildriver_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96A105335BC0059C3BA /* maildriver_types.c */; };
-		C6F9EBFE105335BD0059C3BA /* maildriver_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96C105335BC0059C3BA /* maildriver_types_helper.c */; };
-		C6F9EC00105335BD0059C3BA /* mailfolder.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E96E105335BC0059C3BA /* mailfolder.c */; };
-		C6F9EC02105335BD0059C3BA /* mailmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E970105335BC0059C3BA /* mailmessage.c */; };
-		C6F9EC04105335BD0059C3BA /* mailmessage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E972105335BC0059C3BA /* mailmessage_tools.c */; };
-		C6F9EC06105335BD0059C3BA /* mailmessage_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E974105335BC0059C3BA /* mailmessage_types.c */; };
-		C6F9EC08105335BD0059C3BA /* mailstorage.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E976105335BC0059C3BA /* mailstorage.c */; };
-		C6F9EC0A105335BD0059C3BA /* mailstorage_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E978105335BC0059C3BA /* mailstorage_tools.c */; };
-		C6F9EC19105335BD0059C3BA /* generic_cache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E989105335BC0059C3BA /* generic_cache.c */; };
-		C6F9EC1C105335BD0059C3BA /* imfcache.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98C105335BC0059C3BA /* imfcache.c */; };
-		C6F9EC1E105335BD0059C3BA /* mailthread.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E98E105335BC0059C3BA /* mailthread.c */; };
-		C6F9EC20105335BD0059C3BA /* mailthread_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E990105335BC0059C3BA /* mailthread_types.c */; };
-		C6F9EC2C105335BD0059C3BA /* mailengine.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E99E105335BC0059C3BA /* mailengine.c */; };
-		C6F9EC2E105335BD0059C3BA /* mailprivacy.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A0105335BC0059C3BA /* mailprivacy.c */; };
-		C6F9EC30105335BD0059C3BA /* mailprivacy_gnupg.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A2105335BC0059C3BA /* mailprivacy_gnupg.c */; };
-		C6F9EC32105335BD0059C3BA /* mailprivacy_smime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A4105335BC0059C3BA /* mailprivacy_smime.c */; };
-		C6F9EC34105335BD0059C3BA /* mailprivacy_tools.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9A6105335BC0059C3BA /* mailprivacy_tools.c */; };
-		C6F9EC46105335BD0059C3BA /* date.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9BB105335BC0059C3BA /* date.c */; };
-		C6F9EC4B105335BD0059C3BA /* newsfeed.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C0105335BC0059C3BA /* newsfeed.c */; };
-		C6F9EC4D105335BD0059C3BA /* newsfeed_item.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C2105335BC0059C3BA /* newsfeed_item.c */; };
-		C6F9EC4F105335BD0059C3BA /* newsfeed_item_enclosure.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C4105335BC0059C3BA /* newsfeed_item_enclosure.c */; };
-		C6F9EC51105335BD0059C3BA /* newsfeed_private.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C6105335BC0059C3BA /* newsfeed_private.c */; };
-		C6F9EC54105335BD0059C3BA /* parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9C9105335BC0059C3BA /* parser.c */; };
-		C6F9EC56105335BD0059C3BA /* parser_atom03.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CB105335BC0059C3BA /* parser_atom03.c */; };
-		C6F9EC58105335BD0059C3BA /* parser_atom10.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CD105335BC0059C3BA /* parser_atom10.c */; };
-		C6F9EC5A105335BD0059C3BA /* parser_rdf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9CF105335BC0059C3BA /* parser_rdf.c */; };
-		C6F9EC5C105335BD0059C3BA /* parser_rss20.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9D1105335BC0059C3BA /* parser_rss20.c */; };
-		C6F9EC77105335BD0059C3BA /* acl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9EE105335BC0059C3BA /* acl.c */; };
-		C6F9EC79105335BD0059C3BA /* acl_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F0105335BC0059C3BA /* acl_parser.c */; };
-		C6F9EC7B105335BD0059C3BA /* acl_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F2105335BC0059C3BA /* acl_sender.c */; };
-		C6F9EC7D105335BD0059C3BA /* acl_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F4105335BC0059C3BA /* acl_types.c */; };
-		C6F9EC7F105335BD0059C3BA /* annotatemore.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F6105335BC0059C3BA /* annotatemore.c */; };
-		C6F9EC81105335BD0059C3BA /* annotatemore_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9F8105335BC0059C3BA /* annotatemore_parser.c */; };
-		C6F9EC83105335BD0059C3BA /* annotatemore_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FA105335BC0059C3BA /* annotatemore_sender.c */; };
-		C6F9EC85105335BD0059C3BA /* annotatemore_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FC105335BC0059C3BA /* annotatemore_types.c */; };
-		C6F9EC87105335BD0059C3BA /* idle.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9E9FE105335BC0059C3BA /* idle.c */; };
-		C6F9EC89105335BD0059C3BA /* mailimap.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA00105335BC0059C3BA /* mailimap.c */; };
-		C6F9EC8B105335BD0059C3BA /* mailimap_extension.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA02105335BC0059C3BA /* mailimap_extension.c */; };
-		C6F9EC8E105335BD0059C3BA /* mailimap_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA05105335BC0059C3BA /* mailimap_helper.c */; };
-		C6F9EC90105335BD0059C3BA /* mailimap_keywords.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA07105335BC0059C3BA /* mailimap_keywords.c */; };
-		C6F9EC92105335BD0059C3BA /* mailimap_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA09105335BC0059C3BA /* mailimap_parser.c */; };
-		C6F9EC94105335BD0059C3BA /* mailimap_print.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0B105335BC0059C3BA /* mailimap_print.c */; };
-		C6F9EC96105335BD0059C3BA /* mailimap_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0D105335BC0059C3BA /* mailimap_sender.c */; };
-		C6F9EC98105335BD0059C3BA /* mailimap_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA0F105335BC0059C3BA /* mailimap_socket.c */; };
-		C6F9EC9A105335BD0059C3BA /* mailimap_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA11105335BC0059C3BA /* mailimap_ssl.c */; };
-		C6F9EC9C105335BD0059C3BA /* mailimap_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA13105335BC0059C3BA /* mailimap_types.c */; };
-		C6F9EC9E105335BD0059C3BA /* mailimap_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA15105335BC0059C3BA /* mailimap_types_helper.c */; };
-		C6F9ECA4105335BD0059C3BA /* uidplus.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1B105335BC0059C3BA /* uidplus.c */; };
-		C6F9ECA6105335BD0059C3BA /* uidplus_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1D105335BC0059C3BA /* uidplus_parser.c */; };
-		C6F9ECA8105335BD0059C3BA /* uidplus_sender.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA1F105335BC0059C3BA /* uidplus_sender.c */; };
-		C6F9ECAA105335BD0059C3BA /* uidplus_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA21105335BC0059C3BA /* uidplus_types.c */; };
-		C6F9ECB3105335BD0059C3BA /* mailimf.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2C105335BC0059C3BA /* mailimf.c */; };
-		C6F9ECB5105335BD0059C3BA /* mailimf_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA2E105335BC0059C3BA /* mailimf_types.c */; };
-		C6F9ECB7105335BD0059C3BA /* mailimf_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA30105335BC0059C3BA /* mailimf_types_helper.c */; };
-		C6F9ECBA105335BD0059C3BA /* mailimf_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA33105335BC0059C3BA /* mailimf_write_file.c */; };
-		C6F9ECBC105335BD0059C3BA /* mailimf_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA35105335BC0059C3BA /* mailimf_write_generic.c */; };
-		C6F9ECBE105335BD0059C3BA /* mailimf_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA37105335BC0059C3BA /* mailimf_write_mem.c */; };
-		C6F9ECC6105335BD0059C3BA /* maildir.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA41105335BC0059C3BA /* maildir.c */; };
-		C6F9ECD3105335BD0059C3BA /* mailmbox.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA50105335BC0059C3BA /* mailmbox.c */; };
-		C6F9ECD5105335BD0059C3BA /* mailmbox_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA52105335BC0059C3BA /* mailmbox_parse.c */; };
-		C6F9ECD7105335BD0059C3BA /* mailmbox_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA54105335BC0059C3BA /* mailmbox_types.c */; };
-		C6F9ECDF105335BD0059C3BA /* mailmh.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA5E105335BC0059C3BA /* mailmh.c */; };
-		C6F9ECEE105335BD0059C3BA /* mailmime.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA6F105335BC0059C3BA /* mailmime.c */; };
-		C6F9ECF0105335BD0059C3BA /* mailmime_content.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA71105335BC0059C3BA /* mailmime_content.c */; };
-		C6F9ECF2105335BD0059C3BA /* mailmime_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA73105335BC0059C3BA /* mailmime_decode.c */; };
-		C6F9ECF4105335BD0059C3BA /* mailmime_disposition.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA75105335BC0059C3BA /* mailmime_disposition.c */; };
-		C6F9ECF6105335BD0059C3BA /* mailmime_types.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA77105335BC0059C3BA /* mailmime_types.c */; };
-		C6F9ECF8105335BD0059C3BA /* mailmime_types_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA79105335BC0059C3BA /* mailmime_types_helper.c */; };
-		C6F9ECFB105335BD0059C3BA /* mailmime_write_file.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7C105335BC0059C3BA /* mailmime_write_file.c */; };
-		C6F9ECFD105335BD0059C3BA /* mailmime_write_generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA7E105335BC0059C3BA /* mailmime_write_generic.c */; };
-		C6F9ECFF105335BD0059C3BA /* mailmime_write_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA80105335BC0059C3BA /* mailmime_write_mem.c */; };
-		C6F9ED0C105335BD0059C3BA /* newsnntp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA8F105335BC0059C3BA /* newsnntp.c */; };
-		C6F9ED0E105335BD0059C3BA /* newsnntp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA91105335BC0059C3BA /* newsnntp_socket.c */; };
-		C6F9ED10105335BD0059C3BA /* newsnntp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA93105335BC0059C3BA /* newsnntp_ssl.c */; };
-		C6F9ED18105335BD0059C3BA /* mailpop3.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9D105335BC0059C3BA /* mailpop3.c */; };
-		C6F9ED1A105335BD0059C3BA /* mailpop3_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EA9F105335BC0059C3BA /* mailpop3_helper.c */; };
-		C6F9ED1C105335BD0059C3BA /* mailpop3_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA1105335BC0059C3BA /* mailpop3_socket.c */; };
-		C6F9ED1E105335BD0059C3BA /* mailpop3_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAA3105335BC0059C3BA /* mailpop3_ssl.c */; };
-		C6F9ED29105335BD0059C3BA /* mailsmtp.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB0105335BC0059C3BA /* mailsmtp.c */; };
-		C6F9ED2B105335BD0059C3BA /* mailsmtp_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB2105335BC0059C3BA /* mailsmtp_helper.c */; };
-		C6F9ED2D105335BD0059C3BA /* mailsmtp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB4105335BC0059C3BA /* mailsmtp_socket.c */; };
-		C6F9ED2F105335BD0059C3BA /* mailsmtp_ssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAB6105335BC0059C3BA /* mailsmtp_ssl.c */; };
-		C6F9ED39105335BD0059C3BA /* libetpan_version.c in Sources */ = {isa = PBXBuildFile; fileRef = C6F9EAC2105335BD0059C3BA /* libetpan_version.c */; };
-		C6F9ED9E105339200059C3BA /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9ED9D105339200059C3BA /* libssl.dylib */; };
-		C6F9EDA6105339380059C3BA /* libsasl2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9EDA5105339380059C3BA /* libsasl2.dylib */; };
-		C6F9EDAB1053394C0059C3BA /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9EDAA1053394C0059C3BA /* libiconv.dylib */; };
-		C6F9EDAD1053395A0059C3BA /* libexpat.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9EDAC1053395A0059C3BA /* libexpat.dylib */; };
-		C6F9EDB2105339650059C3BA /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9EDB1105339650059C3BA /* libcurl.dylib */; };
-		C6F9EDBE105339EA0059C3BA /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C6F9EDBD105339EA0059C3BA /* libcrypto.dylib */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		C6635C4716E000310066276E /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = C6635C4316DFFE6E0066276E;
-			remoteInfo = "libetpan-prepare";
-		};
-		C6635C4916E000340066276E /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = C6635C4316DFFE6E0066276E;
-			remoteInfo = "libetpan-prepare";
-		};
-		C6635C5116E0027B0066276E /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = C6635C4D16E002340066276E;
-			remoteInfo = "libetpan-prepare-ios";
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		2307A00A170AAA5500C43C59 /* mailstream_compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_compress.c; sourceTree = "<group>"; };
-		2307A00B170AAA5500C43C59 /* mailstream_compress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_compress.h; sourceTree = "<group>"; };
-		365DFFD115D1C93100F2DD85 /* xgmmsgid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = xgmmsgid.c; sourceTree = "<group>"; };
-		365DFFD815D1CF1800F2DD85 /* xgmmsgid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xgmmsgid.h; sourceTree = "<group>"; };
-		8A75ECD917040F91007F9972 /* mailimap_sort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_sort.c; sourceTree = "<group>"; };
-		8A75ECDD17040FBD007F9972 /* mailimap_sort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_sort.h; sourceTree = "<group>"; };
-		8A75ECE5170414B8007F9972 /* mailimap_sort_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_sort_types.c; sourceTree = "<group>"; };
-		8A75ECEA170414E9007F9972 /* mailimap_sort_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_sort_types.h; sourceTree = "<group>"; };
-		8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		8DC2EF5B0486A6940098B216 /* libetpan.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libetpan.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		BD5495471BEAC5EB00E7974E /* md5namespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5namespace.h; sourceTree = "<group>"; };
-		C60136961776D16A00A5AF45 /* mailimap_oauth2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_oauth2.c; sourceTree = "<group>"; };
-		C60136971776D16A00A5AF45 /* mailimap_oauth2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_oauth2.h; sourceTree = "<group>"; };
-		C60E7B9816C3809400A25BF4 /* enable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = enable.c; sourceTree = "<group>"; };
-		C60E7B9916C3809400A25BF4 /* enable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enable.h; sourceTree = "<group>"; };
-		C64BB21416E2FC2F000DB34C /* qresync_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qresync_types.c; sourceTree = "<group>"; };
-		C64BB21516E2FC2F000DB34C /* qresync_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qresync_types.h; sourceTree = "<group>"; };
-		C64BB21616E2FC2F000DB34C /* qresync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qresync.c; sourceTree = "<group>"; };
-		C64BB21716E2FC2F000DB34C /* qresync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qresync.h; sourceTree = "<group>"; };
-		C64BB21E16E32CDB000DB34C /* qresync_private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = qresync_private.h; sourceTree = "<group>"; };
-		C64DC0151788AB3C0012CA0B /* mailsmtp_oauth2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsmtp_oauth2.c; sourceTree = "<group>"; };
-		C64DC0161788AB3C0012CA0B /* mailsmtp_oauth2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_oauth2.h; sourceTree = "<group>"; };
-		C64DC0171788AB3C0012CA0B /* mailsmtp_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_private.h; sourceTree = "<group>"; };
-		C64EA7B916A00CC100778456 /* mailimap_id_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_id_parser.c; sourceTree = "<group>"; };
-		C64EA7BA16A00CC100778456 /* mailimap_id_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_id_parser.h; sourceTree = "<group>"; };
-		C64EA7BB16A00CC200778456 /* mailimap_id_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_id_sender.c; sourceTree = "<group>"; };
-		C64EA7BC16A00CC200778456 /* mailimap_id_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_id_sender.h; sourceTree = "<group>"; };
-		C64EA7BD16A00CC200778456 /* mailimap_id_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_id_types.c; sourceTree = "<group>"; };
-		C64EA7BE16A00CC300778456 /* mailimap_id_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_id_types.h; sourceTree = "<group>"; };
-		C64EA7BF16A00CC300778456 /* mailimap_id.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_id.c; sourceTree = "<group>"; };
-		C64EA7C016A00CC500778456 /* mailimap_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_id.h; sourceTree = "<group>"; };
-		C6516B69130DD667004ADD56 /* namespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = namespace.h; sourceTree = "<group>"; };
-		C65179E4130E84BD004ADD56 /* namespace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = namespace.c; sourceTree = "<group>"; };
-		C65179F0130E85CA004ADD56 /* namespace_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = namespace_parser.h; sourceTree = "<group>"; };
-		C65179F1130E85CA004ADD56 /* namespace_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = namespace_parser.c; sourceTree = "<group>"; };
-		C6517A05130E86C6004ADD56 /* namespace_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = namespace_types.h; sourceTree = "<group>"; };
-		C6517A06130E86C6004ADD56 /* namespace_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = namespace_types.c; sourceTree = "<group>"; };
-		C6517A0B130E86D3004ADD56 /* namespace_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = namespace_sender.h; sourceTree = "<group>"; };
-		C6517A0C130E86D3004ADD56 /* namespace_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = namespace_sender.c; sourceTree = "<group>"; };
-		C6635C3516DFF10E0066276E /* condstore_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = condstore_private.h; sourceTree = "<group>"; };
-		C6635C3616DFF10E0066276E /* condstore_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = condstore_types.c; sourceTree = "<group>"; };
-		C6635C3716DFF10E0066276E /* condstore_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = condstore_types.h; sourceTree = "<group>"; };
-		C6635C3816DFF10E0066276E /* condstore.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = condstore.c; sourceTree = "<group>"; };
-		C6635C3916DFF10E0066276E /* condstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = condstore.h; sourceTree = "<group>"; };
-		C6667DED1342ACCD00969A8E /* xlist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xlist.c; sourceTree = "<group>"; };
-		C6667DEE1342ACCD00969A8E /* xlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xlist.h; sourceTree = "<group>"; };
-		C668E2D81736004400A2BB47 /* mailimap_compress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_compress.c; sourceTree = "<group>"; };
-		C668E2D91736004400A2BB47 /* mailimap_compress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_compress.h; sourceTree = "<group>"; };
-		C682E2C015B315EF00BE9DA7 /* libetpan-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libetpan-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		C69AB10A10546FE500F32FBD /* libetpan.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libetpan.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		C69BA85F17DF63C900D601B7 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
-		C6CE9B1514AA9C8900D20BA6 /* xgmlabels.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xgmlabels.c; sourceTree = "<group>"; };
-		C6CE9B1814AA9C9C00D20BA6 /* xgmlabels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xgmlabels.h; sourceTree = "<group>"; };
-		C6E571FA110376F200897274 /* quota_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quota_parser.c; sourceTree = "<group>"; };
-		C6E571FB110376F200897274 /* quota_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quota_parser.h; sourceTree = "<group>"; };
-		C6E571FC110376F200897274 /* quota_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quota_sender.c; sourceTree = "<group>"; };
-		C6E571FD110376F200897274 /* quota_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quota_sender.h; sourceTree = "<group>"; };
-		C6E571FE110376F200897274 /* quota_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quota_types.c; sourceTree = "<group>"; };
-		C6E571FF110376F200897274 /* quota_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quota_types.h; sourceTree = "<group>"; };
-		C6E57200110376F200897274 /* quota.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quota.c; sourceTree = "<group>"; };
-		C6E57201110376F200897274 /* quota.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quota.h; sourceTree = "<group>"; };
-		C6ED6CF617A185FD00A4A14C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
-		C6EFB8761433F1F300F805C0 /* mailstream_cfstream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_cfstream.c; sourceTree = "<group>"; };
-		C6EFB8771433F1F300F805C0 /* mailstream_cfstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_cfstream.h; sourceTree = "<group>"; };
-		C6EFB8AD1433F58500F805C0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
-		C6EFB8B31433F5A400F805C0 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
-		C6F61F721701409B0073032E /* xgmthrid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xgmthrid.c; sourceTree = "<group>"; };
-		C6F61F731701409B0073032E /* xgmthrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xgmthrid.h; sourceTree = "<group>"; };
-		C6F9E84F105335BC0059C3BA /* base64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = base64.c; sourceTree = "<group>"; };
-		C6F9E850105335BC0059C3BA /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = "<group>"; };
-		C6F9E851105335BC0059C3BA /* carray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = carray.c; sourceTree = "<group>"; };
-		C6F9E852105335BC0059C3BA /* carray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = carray.h; sourceTree = "<group>"; };
-		C6F9E853105335BC0059C3BA /* charconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = charconv.c; sourceTree = "<group>"; };
-		C6F9E854105335BC0059C3BA /* charconv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = charconv.h; sourceTree = "<group>"; };
-		C6F9E855105335BC0059C3BA /* chash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chash.c; sourceTree = "<group>"; };
-		C6F9E856105335BC0059C3BA /* chash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chash.h; sourceTree = "<group>"; };
-		C6F9E857105335BC0059C3BA /* clist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = clist.c; sourceTree = "<group>"; };
-		C6F9E858105335BC0059C3BA /* clist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = clist.h; sourceTree = "<group>"; };
-		C6F9E859105335BC0059C3BA /* connect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = connect.c; sourceTree = "<group>"; };
-		C6F9E85A105335BC0059C3BA /* connect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = connect.h; sourceTree = "<group>"; };
-		C6F9E85B105335BC0059C3BA /* hmac-md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "hmac-md5.h"; sourceTree = "<group>"; };
-		C6F9E85C105335BC0059C3BA /* mail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mail.h; sourceTree = "<group>"; };
-		C6F9E85D105335BC0059C3BA /* mail_cache_db.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mail_cache_db.c; sourceTree = "<group>"; };
-		C6F9E85E105335BC0059C3BA /* mail_cache_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mail_cache_db.h; sourceTree = "<group>"; };
-		C6F9E85F105335BC0059C3BA /* mail_cache_db_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mail_cache_db_types.h; sourceTree = "<group>"; };
-		C6F9E860105335BC0059C3BA /* maillock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maillock.c; sourceTree = "<group>"; };
-		C6F9E861105335BC0059C3BA /* maillock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maillock.h; sourceTree = "<group>"; };
-		C6F9E862105335BC0059C3BA /* mailsasl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsasl.c; sourceTree = "<group>"; };
-		C6F9E863105335BC0059C3BA /* mailsasl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsasl.h; sourceTree = "<group>"; };
-		C6F9E864105335BC0059C3BA /* mailsem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsem.c; sourceTree = "<group>"; };
-		C6F9E865105335BC0059C3BA /* mailsem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsem.h; sourceTree = "<group>"; };
-		C6F9E866105335BC0059C3BA /* mailstream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream.c; sourceTree = "<group>"; };
-		C6F9E867105335BC0059C3BA /* mailstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream.h; sourceTree = "<group>"; };
-		C6F9E868105335BC0059C3BA /* mailstream_cancel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_cancel.c; sourceTree = "<group>"; };
-		C6F9E869105335BC0059C3BA /* mailstream_cancel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_cancel.h; sourceTree = "<group>"; };
-		C6F9E86A105335BC0059C3BA /* mailstream_cancel_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_cancel_types.h; sourceTree = "<group>"; };
-		C6F9E86B105335BC0059C3BA /* mailstream_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_helper.c; sourceTree = "<group>"; };
-		C6F9E86C105335BC0059C3BA /* mailstream_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_helper.h; sourceTree = "<group>"; };
-		C6F9E86D105335BC0059C3BA /* mailstream_low.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_low.c; sourceTree = "<group>"; };
-		C6F9E86E105335BC0059C3BA /* mailstream_low.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_low.h; sourceTree = "<group>"; };
-		C6F9E86F105335BC0059C3BA /* mailstream_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_socket.c; sourceTree = "<group>"; };
-		C6F9E870105335BC0059C3BA /* mailstream_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_socket.h; sourceTree = "<group>"; };
-		C6F9E871105335BC0059C3BA /* mailstream_ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstream_ssl.c; sourceTree = "<group>"; };
-		C6F9E872105335BC0059C3BA /* mailstream_ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_ssl.h; sourceTree = "<group>"; };
-		C6F9E873105335BC0059C3BA /* mailstream_ssl_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_ssl_private.h; sourceTree = "<group>"; };
-		C6F9E874105335BC0059C3BA /* mailstream_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstream_types.h; sourceTree = "<group>"; };
-		C6F9E878105335BC0059C3BA /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = md5.c; sourceTree = "<group>"; };
-		C6F9E879105335BC0059C3BA /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
-		C6F9E87A105335BC0059C3BA /* md5global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5global.h; sourceTree = "<group>"; };
-		C6F9E87B105335BC0059C3BA /* mmapstring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mmapstring.c; sourceTree = "<group>"; };
-		C6F9E87C105335BC0059C3BA /* mmapstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mmapstring.h; sourceTree = "<group>"; };
-		C6F9E87D105335BC0059C3BA /* mmapstring_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mmapstring_private.h; sourceTree = "<group>"; };
-		C6F9E87E105335BC0059C3BA /* timeutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timeutils.c; sourceTree = "<group>"; };
-		C6F9E87F105335BC0059C3BA /* timeutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timeutils.h; sourceTree = "<group>"; };
-		C6F9E888105335BC0059C3BA /* data_message_driver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = data_message_driver.c; sourceTree = "<group>"; };
-		C6F9E889105335BC0059C3BA /* data_message_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = data_message_driver.h; sourceTree = "<group>"; };
-		C6F9E893105335BC0059C3BA /* dbdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dbdriver.c; sourceTree = "<group>"; };
-		C6F9E894105335BC0059C3BA /* dbdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbdriver.h; sourceTree = "<group>"; };
-		C6F9E895105335BC0059C3BA /* dbdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dbdriver_message.c; sourceTree = "<group>"; };
-		C6F9E896105335BC0059C3BA /* dbdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbdriver_message.h; sourceTree = "<group>"; };
-		C6F9E897105335BC0059C3BA /* dbdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbdriver_types.h; sourceTree = "<group>"; };
-		C6F9E898105335BC0059C3BA /* dbstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dbstorage.c; sourceTree = "<group>"; };
-		C6F9E899105335BC0059C3BA /* dbstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dbstorage.h; sourceTree = "<group>"; };
-		C6F9E8A2105335BC0059C3BA /* feeddriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = feeddriver.c; sourceTree = "<group>"; };
-		C6F9E8A3105335BC0059C3BA /* feeddriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feeddriver.h; sourceTree = "<group>"; };
-		C6F9E8A4105335BC0059C3BA /* feeddriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = feeddriver_message.c; sourceTree = "<group>"; };
-		C6F9E8A5105335BC0059C3BA /* feeddriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feeddriver_message.h; sourceTree = "<group>"; };
-		C6F9E8A6105335BC0059C3BA /* feeddriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feeddriver_types.h; sourceTree = "<group>"; };
-		C6F9E8A7105335BC0059C3BA /* feedstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = feedstorage.c; sourceTree = "<group>"; };
-		C6F9E8A8105335BC0059C3BA /* feedstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feedstorage.h; sourceTree = "<group>"; };
-		C6F9E8B0105335BC0059C3BA /* hotmailstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hotmailstorage.c; sourceTree = "<group>"; };
-		C6F9E8B1105335BC0059C3BA /* hotmailstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hotmailstorage.h; sourceTree = "<group>"; };
-		C6F9E8BE105335BC0059C3BA /* imapdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapdriver.c; sourceTree = "<group>"; };
-		C6F9E8BF105335BC0059C3BA /* imapdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver.h; sourceTree = "<group>"; };
-		C6F9E8C0105335BC0059C3BA /* imapdriver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapdriver_cached.c; sourceTree = "<group>"; };
-		C6F9E8C1105335BC0059C3BA /* imapdriver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_cached.h; sourceTree = "<group>"; };
-		C6F9E8C2105335BC0059C3BA /* imapdriver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapdriver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E8C3105335BC0059C3BA /* imapdriver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E8C4105335BC0059C3BA /* imapdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapdriver_message.c; sourceTree = "<group>"; };
-		C6F9E8C5105335BC0059C3BA /* imapdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_message.h; sourceTree = "<group>"; };
-		C6F9E8C6105335BC0059C3BA /* imapdriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapdriver_tools.c; sourceTree = "<group>"; };
-		C6F9E8C7105335BC0059C3BA /* imapdriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_tools.h; sourceTree = "<group>"; };
-		C6F9E8C8105335BC0059C3BA /* imapdriver_tools_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_tools_private.h; sourceTree = "<group>"; };
-		C6F9E8C9105335BC0059C3BA /* imapdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapdriver_types.h; sourceTree = "<group>"; };
-		C6F9E8CA105335BC0059C3BA /* imapstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imapstorage.c; sourceTree = "<group>"; };
-		C6F9E8CB105335BC0059C3BA /* imapstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imapstorage.h; sourceTree = "<group>"; };
-		C6F9E8D8105335BC0059C3BA /* maildirdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirdriver.c; sourceTree = "<group>"; };
-		C6F9E8D9105335BC0059C3BA /* maildirdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver.h; sourceTree = "<group>"; };
-		C6F9E8DA105335BC0059C3BA /* maildirdriver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirdriver_cached.c; sourceTree = "<group>"; };
-		C6F9E8DB105335BC0059C3BA /* maildirdriver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver_cached.h; sourceTree = "<group>"; };
-		C6F9E8DC105335BC0059C3BA /* maildirdriver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirdriver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E8DD105335BC0059C3BA /* maildirdriver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E8DE105335BC0059C3BA /* maildirdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirdriver_message.c; sourceTree = "<group>"; };
-		C6F9E8DF105335BC0059C3BA /* maildirdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver_message.h; sourceTree = "<group>"; };
-		C6F9E8E0105335BC0059C3BA /* maildirdriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirdriver_tools.c; sourceTree = "<group>"; };
-		C6F9E8E1105335BC0059C3BA /* maildirdriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver_tools.h; sourceTree = "<group>"; };
-		C6F9E8E2105335BC0059C3BA /* maildirdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirdriver_types.h; sourceTree = "<group>"; };
-		C6F9E8E3105335BC0059C3BA /* maildirstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildirstorage.c; sourceTree = "<group>"; };
-		C6F9E8E4105335BC0059C3BA /* maildirstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildirstorage.h; sourceTree = "<group>"; };
-		C6F9E8F7105335BC0059C3BA /* mboxdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxdriver.c; sourceTree = "<group>"; };
-		C6F9E8F8105335BC0059C3BA /* mboxdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver.h; sourceTree = "<group>"; };
-		C6F9E8F9105335BC0059C3BA /* mboxdriver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxdriver_cached.c; sourceTree = "<group>"; };
-		C6F9E8FA105335BC0059C3BA /* mboxdriver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver_cached.h; sourceTree = "<group>"; };
-		C6F9E8FB105335BC0059C3BA /* mboxdriver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxdriver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E8FC105335BC0059C3BA /* mboxdriver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E8FD105335BC0059C3BA /* mboxdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxdriver_message.c; sourceTree = "<group>"; };
-		C6F9E8FE105335BC0059C3BA /* mboxdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver_message.h; sourceTree = "<group>"; };
-		C6F9E8FF105335BC0059C3BA /* mboxdriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxdriver_tools.c; sourceTree = "<group>"; };
-		C6F9E900105335BC0059C3BA /* mboxdriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver_tools.h; sourceTree = "<group>"; };
-		C6F9E901105335BC0059C3BA /* mboxdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxdriver_types.h; sourceTree = "<group>"; };
-		C6F9E902105335BC0059C3BA /* mboxstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mboxstorage.c; sourceTree = "<group>"; };
-		C6F9E903105335BC0059C3BA /* mboxstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mboxstorage.h; sourceTree = "<group>"; };
-		C6F9E910105335BC0059C3BA /* mhdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhdriver.c; sourceTree = "<group>"; };
-		C6F9E911105335BC0059C3BA /* mhdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver.h; sourceTree = "<group>"; };
-		C6F9E912105335BC0059C3BA /* mhdriver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhdriver_cached.c; sourceTree = "<group>"; };
-		C6F9E913105335BC0059C3BA /* mhdriver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver_cached.h; sourceTree = "<group>"; };
-		C6F9E914105335BC0059C3BA /* mhdriver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhdriver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E915105335BC0059C3BA /* mhdriver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E916105335BC0059C3BA /* mhdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhdriver_message.c; sourceTree = "<group>"; };
-		C6F9E917105335BC0059C3BA /* mhdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver_message.h; sourceTree = "<group>"; };
-		C6F9E918105335BC0059C3BA /* mhdriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhdriver_tools.c; sourceTree = "<group>"; };
-		C6F9E919105335BC0059C3BA /* mhdriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver_tools.h; sourceTree = "<group>"; };
-		C6F9E91A105335BC0059C3BA /* mhdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhdriver_types.h; sourceTree = "<group>"; };
-		C6F9E91B105335BC0059C3BA /* mhstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mhstorage.c; sourceTree = "<group>"; };
-		C6F9E91C105335BC0059C3BA /* mhstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mhstorage.h; sourceTree = "<group>"; };
-		C6F9E924105335BC0059C3BA /* mime_message_driver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mime_message_driver.c; sourceTree = "<group>"; };
-		C6F9E925105335BC0059C3BA /* mime_message_driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mime_message_driver.h; sourceTree = "<group>"; };
-		C6F9E932105335BC0059C3BA /* nntpdriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpdriver.c; sourceTree = "<group>"; };
-		C6F9E933105335BC0059C3BA /* nntpdriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver.h; sourceTree = "<group>"; };
-		C6F9E934105335BC0059C3BA /* nntpdriver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpdriver_cached.c; sourceTree = "<group>"; };
-		C6F9E935105335BC0059C3BA /* nntpdriver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver_cached.h; sourceTree = "<group>"; };
-		C6F9E936105335BC0059C3BA /* nntpdriver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpdriver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E937105335BC0059C3BA /* nntpdriver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E938105335BC0059C3BA /* nntpdriver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpdriver_message.c; sourceTree = "<group>"; };
-		C6F9E939105335BC0059C3BA /* nntpdriver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver_message.h; sourceTree = "<group>"; };
-		C6F9E93A105335BC0059C3BA /* nntpdriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpdriver_tools.c; sourceTree = "<group>"; };
-		C6F9E93B105335BC0059C3BA /* nntpdriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver_tools.h; sourceTree = "<group>"; };
-		C6F9E93C105335BC0059C3BA /* nntpdriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpdriver_types.h; sourceTree = "<group>"; };
-		C6F9E93D105335BC0059C3BA /* nntpstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nntpstorage.c; sourceTree = "<group>"; };
-		C6F9E93E105335BC0059C3BA /* nntpstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nntpstorage.h; sourceTree = "<group>"; };
-		C6F9E94B105335BC0059C3BA /* pop3driver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3driver.c; sourceTree = "<group>"; };
-		C6F9E94C105335BC0059C3BA /* pop3driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver.h; sourceTree = "<group>"; };
-		C6F9E94D105335BC0059C3BA /* pop3driver_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3driver_cached.c; sourceTree = "<group>"; };
-		C6F9E94E105335BC0059C3BA /* pop3driver_cached.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver_cached.h; sourceTree = "<group>"; };
-		C6F9E94F105335BC0059C3BA /* pop3driver_cached_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3driver_cached_message.c; sourceTree = "<group>"; };
-		C6F9E950105335BC0059C3BA /* pop3driver_cached_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver_cached_message.h; sourceTree = "<group>"; };
-		C6F9E951105335BC0059C3BA /* pop3driver_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3driver_message.c; sourceTree = "<group>"; };
-		C6F9E952105335BC0059C3BA /* pop3driver_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver_message.h; sourceTree = "<group>"; };
-		C6F9E953105335BC0059C3BA /* pop3driver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3driver_tools.c; sourceTree = "<group>"; };
-		C6F9E954105335BC0059C3BA /* pop3driver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver_tools.h; sourceTree = "<group>"; };
-		C6F9E955105335BC0059C3BA /* pop3driver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3driver_types.h; sourceTree = "<group>"; };
-		C6F9E956105335BC0059C3BA /* pop3storage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pop3storage.c; sourceTree = "<group>"; };
-		C6F9E957105335BC0059C3BA /* pop3storage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pop3storage.h; sourceTree = "<group>"; };
-		C6F9E965105335BC0059C3BA /* maildriver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildriver.c; sourceTree = "<group>"; };
-		C6F9E966105335BC0059C3BA /* maildriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildriver.h; sourceTree = "<group>"; };
-		C6F9E967105335BC0059C3BA /* maildriver_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildriver_errors.h; sourceTree = "<group>"; };
-		C6F9E968105335BC0059C3BA /* maildriver_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildriver_tools.c; sourceTree = "<group>"; };
-		C6F9E969105335BC0059C3BA /* maildriver_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildriver_tools.h; sourceTree = "<group>"; };
-		C6F9E96A105335BC0059C3BA /* maildriver_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildriver_types.c; sourceTree = "<group>"; };
-		C6F9E96B105335BC0059C3BA /* maildriver_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildriver_types.h; sourceTree = "<group>"; };
-		C6F9E96C105335BC0059C3BA /* maildriver_types_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildriver_types_helper.c; sourceTree = "<group>"; };
-		C6F9E96D105335BC0059C3BA /* maildriver_types_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildriver_types_helper.h; sourceTree = "<group>"; };
-		C6F9E96E105335BC0059C3BA /* mailfolder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailfolder.c; sourceTree = "<group>"; };
-		C6F9E96F105335BC0059C3BA /* mailfolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailfolder.h; sourceTree = "<group>"; };
-		C6F9E970105335BC0059C3BA /* mailmessage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmessage.c; sourceTree = "<group>"; };
-		C6F9E971105335BC0059C3BA /* mailmessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmessage.h; sourceTree = "<group>"; };
-		C6F9E972105335BC0059C3BA /* mailmessage_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmessage_tools.c; sourceTree = "<group>"; };
-		C6F9E973105335BC0059C3BA /* mailmessage_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmessage_tools.h; sourceTree = "<group>"; };
-		C6F9E974105335BC0059C3BA /* mailmessage_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmessage_types.c; sourceTree = "<group>"; };
-		C6F9E975105335BC0059C3BA /* mailmessage_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmessage_types.h; sourceTree = "<group>"; };
-		C6F9E976105335BC0059C3BA /* mailstorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstorage.c; sourceTree = "<group>"; };
-		C6F9E977105335BC0059C3BA /* mailstorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstorage.h; sourceTree = "<group>"; };
-		C6F9E978105335BC0059C3BA /* mailstorage_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailstorage_tools.c; sourceTree = "<group>"; };
-		C6F9E979105335BC0059C3BA /* mailstorage_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstorage_tools.h; sourceTree = "<group>"; };
-		C6F9E97A105335BC0059C3BA /* mailstorage_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailstorage_types.h; sourceTree = "<group>"; };
-		C6F9E989105335BC0059C3BA /* generic_cache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = generic_cache.c; sourceTree = "<group>"; };
-		C6F9E98A105335BC0059C3BA /* generic_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = generic_cache.h; sourceTree = "<group>"; };
-		C6F9E98B105335BC0059C3BA /* generic_cache_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = generic_cache_types.h; sourceTree = "<group>"; };
-		C6F9E98C105335BC0059C3BA /* imfcache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = imfcache.c; sourceTree = "<group>"; };
-		C6F9E98D105335BC0059C3BA /* imfcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imfcache.h; sourceTree = "<group>"; };
-		C6F9E98E105335BC0059C3BA /* mailthread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailthread.c; sourceTree = "<group>"; };
-		C6F9E98F105335BC0059C3BA /* mailthread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailthread.h; sourceTree = "<group>"; };
-		C6F9E990105335BC0059C3BA /* mailthread_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailthread_types.c; sourceTree = "<group>"; };
-		C6F9E991105335BC0059C3BA /* mailthread_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailthread_types.h; sourceTree = "<group>"; };
-		C6F9E99E105335BC0059C3BA /* mailengine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailengine.c; sourceTree = "<group>"; };
-		C6F9E99F105335BC0059C3BA /* mailengine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailengine.h; sourceTree = "<group>"; };
-		C6F9E9A0105335BC0059C3BA /* mailprivacy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailprivacy.c; sourceTree = "<group>"; };
-		C6F9E9A1105335BC0059C3BA /* mailprivacy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy.h; sourceTree = "<group>"; };
-		C6F9E9A2105335BC0059C3BA /* mailprivacy_gnupg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailprivacy_gnupg.c; sourceTree = "<group>"; };
-		C6F9E9A3105335BC0059C3BA /* mailprivacy_gnupg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy_gnupg.h; sourceTree = "<group>"; };
-		C6F9E9A4105335BC0059C3BA /* mailprivacy_smime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailprivacy_smime.c; sourceTree = "<group>"; };
-		C6F9E9A5105335BC0059C3BA /* mailprivacy_smime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy_smime.h; sourceTree = "<group>"; };
-		C6F9E9A6105335BC0059C3BA /* mailprivacy_tools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailprivacy_tools.c; sourceTree = "<group>"; };
-		C6F9E9A7105335BC0059C3BA /* mailprivacy_tools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy_tools.h; sourceTree = "<group>"; };
-		C6F9E9A8105335BC0059C3BA /* mailprivacy_tools_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy_tools_private.h; sourceTree = "<group>"; };
-		C6F9E9A9105335BC0059C3BA /* mailprivacy_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailprivacy_types.h; sourceTree = "<group>"; };
-		C6F9E9BB105335BC0059C3BA /* date.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = date.c; sourceTree = "<group>"; };
-		C6F9E9BC105335BC0059C3BA /* date.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = date.h; sourceTree = "<group>"; };
-		C6F9E9C0105335BC0059C3BA /* newsfeed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsfeed.c; sourceTree = "<group>"; };
-		C6F9E9C1105335BC0059C3BA /* newsfeed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsfeed.h; sourceTree = "<group>"; };
-		C6F9E9C2105335BC0059C3BA /* newsfeed_item.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsfeed_item.c; sourceTree = "<group>"; };
-		C6F9E9C3105335BC0059C3BA /* newsfeed_item.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsfeed_item.h; sourceTree = "<group>"; };
-		C6F9E9C4105335BC0059C3BA /* newsfeed_item_enclosure.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsfeed_item_enclosure.c; sourceTree = "<group>"; };
-		C6F9E9C5105335BC0059C3BA /* newsfeed_item_enclosure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsfeed_item_enclosure.h; sourceTree = "<group>"; };
-		C6F9E9C6105335BC0059C3BA /* newsfeed_private.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsfeed_private.c; sourceTree = "<group>"; };
-		C6F9E9C7105335BC0059C3BA /* newsfeed_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsfeed_private.h; sourceTree = "<group>"; };
-		C6F9E9C8105335BC0059C3BA /* newsfeed_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsfeed_types.h; sourceTree = "<group>"; };
-		C6F9E9C9105335BC0059C3BA /* parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = parser.c; sourceTree = "<group>"; };
-		C6F9E9CA105335BC0059C3BA /* parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parser.h; sourceTree = "<group>"; };
-		C6F9E9CB105335BC0059C3BA /* parser_atom03.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = parser_atom03.c; sourceTree = "<group>"; };
-		C6F9E9CC105335BC0059C3BA /* parser_atom03.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parser_atom03.h; sourceTree = "<group>"; };
-		C6F9E9CD105335BC0059C3BA /* parser_atom10.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = parser_atom10.c; sourceTree = "<group>"; };
-		C6F9E9CE105335BC0059C3BA /* parser_atom10.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parser_atom10.h; sourceTree = "<group>"; };
-		C6F9E9CF105335BC0059C3BA /* parser_rdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = parser_rdf.c; sourceTree = "<group>"; };
-		C6F9E9D0105335BC0059C3BA /* parser_rdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parser_rdf.h; sourceTree = "<group>"; };
-		C6F9E9D1105335BC0059C3BA /* parser_rss20.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = parser_rss20.c; sourceTree = "<group>"; };
-		C6F9E9D2105335BC0059C3BA /* parser_rss20.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parser_rss20.h; sourceTree = "<group>"; };
-		C6F9E9EE105335BC0059C3BA /* acl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acl.c; sourceTree = "<group>"; };
-		C6F9E9EF105335BC0059C3BA /* acl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl.h; sourceTree = "<group>"; };
-		C6F9E9F0105335BC0059C3BA /* acl_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acl_parser.c; sourceTree = "<group>"; };
-		C6F9E9F1105335BC0059C3BA /* acl_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_parser.h; sourceTree = "<group>"; };
-		C6F9E9F2105335BC0059C3BA /* acl_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acl_sender.c; sourceTree = "<group>"; };
-		C6F9E9F3105335BC0059C3BA /* acl_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_sender.h; sourceTree = "<group>"; };
-		C6F9E9F4105335BC0059C3BA /* acl_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acl_types.c; sourceTree = "<group>"; };
-		C6F9E9F5105335BC0059C3BA /* acl_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_types.h; sourceTree = "<group>"; };
-		C6F9E9F6105335BC0059C3BA /* annotatemore.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = annotatemore.c; sourceTree = "<group>"; };
-		C6F9E9F7105335BC0059C3BA /* annotatemore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = annotatemore.h; sourceTree = "<group>"; };
-		C6F9E9F8105335BC0059C3BA /* annotatemore_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = annotatemore_parser.c; sourceTree = "<group>"; };
-		C6F9E9F9105335BC0059C3BA /* annotatemore_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = annotatemore_parser.h; sourceTree = "<group>"; };
-		C6F9E9FA105335BC0059C3BA /* annotatemore_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = annotatemore_sender.c; sourceTree = "<group>"; };
-		C6F9E9FB105335BC0059C3BA /* annotatemore_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = annotatemore_sender.h; sourceTree = "<group>"; };
-		C6F9E9FC105335BC0059C3BA /* annotatemore_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = annotatemore_types.c; sourceTree = "<group>"; };
-		C6F9E9FD105335BC0059C3BA /* annotatemore_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = annotatemore_types.h; sourceTree = "<group>"; };
-		C6F9E9FE105335BC0059C3BA /* idle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = idle.c; sourceTree = "<group>"; };
-		C6F9E9FF105335BC0059C3BA /* idle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = idle.h; sourceTree = "<group>"; };
-		C6F9EA00105335BC0059C3BA /* mailimap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap.c; sourceTree = "<group>"; };
-		C6F9EA01105335BC0059C3BA /* mailimap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap.h; sourceTree = "<group>"; };
-		C6F9EA02105335BC0059C3BA /* mailimap_extension.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_extension.c; sourceTree = "<group>"; };
-		C6F9EA03105335BC0059C3BA /* mailimap_extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_extension.h; sourceTree = "<group>"; };
-		C6F9EA04105335BC0059C3BA /* mailimap_extension_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_extension_types.h; sourceTree = "<group>"; };
-		C6F9EA05105335BC0059C3BA /* mailimap_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_helper.c; sourceTree = "<group>"; };
-		C6F9EA06105335BC0059C3BA /* mailimap_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_helper.h; sourceTree = "<group>"; };
-		C6F9EA07105335BC0059C3BA /* mailimap_keywords.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_keywords.c; sourceTree = "<group>"; };
-		C6F9EA08105335BC0059C3BA /* mailimap_keywords.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_keywords.h; sourceTree = "<group>"; };
-		C6F9EA09105335BC0059C3BA /* mailimap_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_parser.c; sourceTree = "<group>"; };
-		C6F9EA0A105335BC0059C3BA /* mailimap_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_parser.h; sourceTree = "<group>"; };
-		C6F9EA0B105335BC0059C3BA /* mailimap_print.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_print.c; sourceTree = "<group>"; };
-		C6F9EA0C105335BC0059C3BA /* mailimap_print.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_print.h; sourceTree = "<group>"; };
-		C6F9EA0D105335BC0059C3BA /* mailimap_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_sender.c; sourceTree = "<group>"; };
-		C6F9EA0E105335BC0059C3BA /* mailimap_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_sender.h; sourceTree = "<group>"; };
-		C6F9EA0F105335BC0059C3BA /* mailimap_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_socket.c; sourceTree = "<group>"; };
-		C6F9EA10105335BC0059C3BA /* mailimap_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_socket.h; sourceTree = "<group>"; };
-		C6F9EA11105335BC0059C3BA /* mailimap_ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_ssl.c; sourceTree = "<group>"; };
-		C6F9EA12105335BC0059C3BA /* mailimap_ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_ssl.h; sourceTree = "<group>"; };
-		C6F9EA13105335BC0059C3BA /* mailimap_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_types.c; sourceTree = "<group>"; };
-		C6F9EA14105335BC0059C3BA /* mailimap_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_types.h; sourceTree = "<group>"; };
-		C6F9EA15105335BC0059C3BA /* mailimap_types_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimap_types_helper.c; sourceTree = "<group>"; };
-		C6F9EA16105335BC0059C3BA /* mailimap_types_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimap_types_helper.h; sourceTree = "<group>"; };
-		C6F9EA1B105335BC0059C3BA /* uidplus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uidplus.c; sourceTree = "<group>"; };
-		C6F9EA1C105335BC0059C3BA /* uidplus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uidplus.h; sourceTree = "<group>"; };
-		C6F9EA1D105335BC0059C3BA /* uidplus_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uidplus_parser.c; sourceTree = "<group>"; };
-		C6F9EA1E105335BC0059C3BA /* uidplus_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uidplus_parser.h; sourceTree = "<group>"; };
-		C6F9EA1F105335BC0059C3BA /* uidplus_sender.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uidplus_sender.c; sourceTree = "<group>"; };
-		C6F9EA20105335BC0059C3BA /* uidplus_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uidplus_sender.h; sourceTree = "<group>"; };
-		C6F9EA21105335BC0059C3BA /* uidplus_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uidplus_types.c; sourceTree = "<group>"; };
-		C6F9EA22105335BC0059C3BA /* uidplus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uidplus_types.h; sourceTree = "<group>"; };
-		C6F9EA2C105335BC0059C3BA /* mailimf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf.c; sourceTree = "<group>"; };
-		C6F9EA2D105335BC0059C3BA /* mailimf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf.h; sourceTree = "<group>"; };
-		C6F9EA2E105335BC0059C3BA /* mailimf_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf_types.c; sourceTree = "<group>"; };
-		C6F9EA2F105335BC0059C3BA /* mailimf_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_types.h; sourceTree = "<group>"; };
-		C6F9EA30105335BC0059C3BA /* mailimf_types_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf_types_helper.c; sourceTree = "<group>"; };
-		C6F9EA31105335BC0059C3BA /* mailimf_types_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_types_helper.h; sourceTree = "<group>"; };
-		C6F9EA32105335BC0059C3BA /* mailimf_write.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_write.h; sourceTree = "<group>"; };
-		C6F9EA33105335BC0059C3BA /* mailimf_write_file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf_write_file.c; sourceTree = "<group>"; };
-		C6F9EA34105335BC0059C3BA /* mailimf_write_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_write_file.h; sourceTree = "<group>"; };
-		C6F9EA35105335BC0059C3BA /* mailimf_write_generic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf_write_generic.c; sourceTree = "<group>"; };
-		C6F9EA36105335BC0059C3BA /* mailimf_write_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_write_generic.h; sourceTree = "<group>"; };
-		C6F9EA37105335BC0059C3BA /* mailimf_write_mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailimf_write_mem.c; sourceTree = "<group>"; };
-		C6F9EA38105335BC0059C3BA /* mailimf_write_mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailimf_write_mem.h; sourceTree = "<group>"; };
-		C6F9EA41105335BC0059C3BA /* maildir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maildir.c; sourceTree = "<group>"; };
-		C6F9EA42105335BC0059C3BA /* maildir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildir.h; sourceTree = "<group>"; };
-		C6F9EA43105335BC0059C3BA /* maildir_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maildir_types.h; sourceTree = "<group>"; };
-		C6F9EA50105335BC0059C3BA /* mailmbox.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmbox.c; sourceTree = "<group>"; };
-		C6F9EA51105335BC0059C3BA /* mailmbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmbox.h; sourceTree = "<group>"; };
-		C6F9EA52105335BC0059C3BA /* mailmbox_parse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmbox_parse.c; sourceTree = "<group>"; };
-		C6F9EA53105335BC0059C3BA /* mailmbox_parse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmbox_parse.h; sourceTree = "<group>"; };
-		C6F9EA54105335BC0059C3BA /* mailmbox_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmbox_types.c; sourceTree = "<group>"; };
-		C6F9EA55105335BC0059C3BA /* mailmbox_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmbox_types.h; sourceTree = "<group>"; };
-		C6F9EA5E105335BC0059C3BA /* mailmh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmh.c; sourceTree = "<group>"; };
-		C6F9EA5F105335BC0059C3BA /* mailmh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmh.h; sourceTree = "<group>"; };
-		C6F9EA6F105335BC0059C3BA /* mailmime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime.c; sourceTree = "<group>"; };
-		C6F9EA70105335BC0059C3BA /* mailmime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime.h; sourceTree = "<group>"; };
-		C6F9EA71105335BC0059C3BA /* mailmime_content.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_content.c; sourceTree = "<group>"; };
-		C6F9EA72105335BC0059C3BA /* mailmime_content.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_content.h; sourceTree = "<group>"; };
-		C6F9EA73105335BC0059C3BA /* mailmime_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_decode.c; sourceTree = "<group>"; };
-		C6F9EA74105335BC0059C3BA /* mailmime_decode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_decode.h; sourceTree = "<group>"; };
-		C6F9EA75105335BC0059C3BA /* mailmime_disposition.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_disposition.c; sourceTree = "<group>"; };
-		C6F9EA76105335BC0059C3BA /* mailmime_disposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_disposition.h; sourceTree = "<group>"; };
-		C6F9EA77105335BC0059C3BA /* mailmime_types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_types.c; sourceTree = "<group>"; };
-		C6F9EA78105335BC0059C3BA /* mailmime_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_types.h; sourceTree = "<group>"; };
-		C6F9EA79105335BC0059C3BA /* mailmime_types_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_types_helper.c; sourceTree = "<group>"; };
-		C6F9EA7A105335BC0059C3BA /* mailmime_types_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_types_helper.h; sourceTree = "<group>"; };
-		C6F9EA7B105335BC0059C3BA /* mailmime_write.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_write.h; sourceTree = "<group>"; };
-		C6F9EA7C105335BC0059C3BA /* mailmime_write_file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_write_file.c; sourceTree = "<group>"; };
-		C6F9EA7D105335BC0059C3BA /* mailmime_write_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_write_file.h; sourceTree = "<group>"; };
-		C6F9EA7E105335BC0059C3BA /* mailmime_write_generic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_write_generic.c; sourceTree = "<group>"; };
-		C6F9EA7F105335BC0059C3BA /* mailmime_write_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_write_generic.h; sourceTree = "<group>"; };
-		C6F9EA80105335BC0059C3BA /* mailmime_write_mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailmime_write_mem.c; sourceTree = "<group>"; };
-		C6F9EA81105335BC0059C3BA /* mailmime_write_mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailmime_write_mem.h; sourceTree = "<group>"; };
-		C6F9EA8F105335BC0059C3BA /* newsnntp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsnntp.c; sourceTree = "<group>"; };
-		C6F9EA90105335BC0059C3BA /* newsnntp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsnntp.h; sourceTree = "<group>"; };
-		C6F9EA91105335BC0059C3BA /* newsnntp_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsnntp_socket.c; sourceTree = "<group>"; };
-		C6F9EA92105335BC0059C3BA /* newsnntp_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsnntp_socket.h; sourceTree = "<group>"; };
-		C6F9EA93105335BC0059C3BA /* newsnntp_ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = newsnntp_ssl.c; sourceTree = "<group>"; };
-		C6F9EA94105335BC0059C3BA /* newsnntp_ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsnntp_ssl.h; sourceTree = "<group>"; };
-		C6F9EA95105335BC0059C3BA /* newsnntp_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newsnntp_types.h; sourceTree = "<group>"; };
-		C6F9EA9D105335BC0059C3BA /* mailpop3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailpop3.c; sourceTree = "<group>"; };
-		C6F9EA9E105335BC0059C3BA /* mailpop3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailpop3.h; sourceTree = "<group>"; };
-		C6F9EA9F105335BC0059C3BA /* mailpop3_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailpop3_helper.c; sourceTree = "<group>"; };
-		C6F9EAA0105335BC0059C3BA /* mailpop3_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailpop3_helper.h; sourceTree = "<group>"; };
-		C6F9EAA1105335BC0059C3BA /* mailpop3_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailpop3_socket.c; sourceTree = "<group>"; };
-		C6F9EAA2105335BC0059C3BA /* mailpop3_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailpop3_socket.h; sourceTree = "<group>"; };
-		C6F9EAA3105335BC0059C3BA /* mailpop3_ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailpop3_ssl.c; sourceTree = "<group>"; };
-		C6F9EAA4105335BC0059C3BA /* mailpop3_ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailpop3_ssl.h; sourceTree = "<group>"; };
-		C6F9EAA5105335BC0059C3BA /* mailpop3_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailpop3_types.h; sourceTree = "<group>"; };
-		C6F9EAB0105335BC0059C3BA /* mailsmtp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsmtp.c; sourceTree = "<group>"; };
-		C6F9EAB1105335BC0059C3BA /* mailsmtp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp.h; sourceTree = "<group>"; };
-		C6F9EAB2105335BC0059C3BA /* mailsmtp_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsmtp_helper.c; sourceTree = "<group>"; };
-		C6F9EAB3105335BC0059C3BA /* mailsmtp_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_helper.h; sourceTree = "<group>"; };
-		C6F9EAB4105335BC0059C3BA /* mailsmtp_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsmtp_socket.c; sourceTree = "<group>"; };
-		C6F9EAB5105335BC0059C3BA /* mailsmtp_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_socket.h; sourceTree = "<group>"; };
-		C6F9EAB6105335BC0059C3BA /* mailsmtp_ssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mailsmtp_ssl.c; sourceTree = "<group>"; };
-		C6F9EAB7105335BC0059C3BA /* mailsmtp_ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_ssl.h; sourceTree = "<group>"; };
-		C6F9EAB8105335BC0059C3BA /* mailsmtp_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mailsmtp_types.h; sourceTree = "<group>"; };
-		C6F9EAC1105335BD0059C3BA /* libetpan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libetpan.h; sourceTree = "<group>"; };
-		C6F9EAC2105335BD0059C3BA /* libetpan_version.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = libetpan_version.c; sourceTree = "<group>"; };
-		C6F9ED9D105339200059C3BA /* libssl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libssl.dylib; path = /usr/lib/libssl.dylib; sourceTree = "<absolute>"; };
-		C6F9EDA5105339380059C3BA /* libsasl2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsasl2.dylib; path = /usr/lib/libsasl2.dylib; sourceTree = "<absolute>"; };
-		C6F9EDAA1053394C0059C3BA /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = /usr/lib/libiconv.dylib; sourceTree = "<absolute>"; };
-		C6F9EDAC1053395A0059C3BA /* libexpat.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libexpat.dylib; path = /usr/lib/libexpat.dylib; sourceTree = "<absolute>"; };
-		C6F9EDB1105339650059C3BA /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = /usr/lib/libcurl.dylib; sourceTree = "<absolute>"; };
-		C6F9EDBD105339EA0059C3BA /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = /usr/lib/libcrypto.dylib; sourceTree = "<absolute>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		8DC2EF560486A6940098B216 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				C69BA86017DF63CA00D601B7 /* libz.dylib in Frameworks */,
-				C6F9ED9E105339200059C3BA /* libssl.dylib in Frameworks */,
-				C6F9EDA6105339380059C3BA /* libsasl2.dylib in Frameworks */,
-				C6F9EDAB1053394C0059C3BA /* libiconv.dylib in Frameworks */,
-				C6F9EDAD1053395A0059C3BA /* libexpat.dylib in Frameworks */,
-				C6F9EDB2105339650059C3BA /* libcurl.dylib in Frameworks */,
-				C6F9EDBE105339EA0059C3BA /* libcrypto.dylib in Frameworks */,
-				C6EFB8AE1433F58500F805C0 /* CoreFoundation.framework in Frameworks */,
-				C6EFB8B41433F5A400F805C0 /* CoreServices.framework in Frameworks */,
-				C6ED6CF717A185FD00A4A14C /* Security.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		C682E2BC15B315EF00BE9DA7 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		C69AB10810546FE500F32FBD /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		034768DFFF38A50411DB9C8B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				8DC2EF5B0486A6940098B216 /* libetpan.framework */,
-				C69AB10A10546FE500F32FBD /* libetpan.a */,
-				C682E2C015B315EF00BE9DA7 /* libetpan-ios.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		0867D691FE84028FC02AAC07 /* libetpan */ = {
-			isa = PBXGroup;
-			children = (
-				08FB77AEFE84172EC02AAC07 /* libetpan */,
-				089C1665FE841158C02AAC07 /* Resources */,
-				0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
-				034768DFFF38A50411DB9C8B /* Products */,
-			);
-			indentWidth = 2;
-			name = libetpan;
-			sourceTree = "<group>";
-			tabWidth = 2;
-			usesTabs = 0;
-		};
-		0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9ED9A105338F60059C3BA /* Libraries */,
-				C6EFB8AD1433F58500F805C0 /* CoreFoundation.framework */,
-				C6EFB8B31433F5A400F805C0 /* CoreServices.framework */,
-				C6ED6CF617A185FD00A4A14C /* Security.framework */,
-			);
-			name = "External Frameworks and Libraries";
-			sourceTree = "<group>";
-		};
-		089C1665FE841158C02AAC07 /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				8DC2EF5A0486A6940098B216 /* Info.plist */,
-			);
-			name = Resources;
-			sourceTree = "<group>";
-		};
-		08FB77AEFE84172EC02AAC07 /* libetpan */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E82E105335BC0059C3BA /* src */,
-			);
-			name = libetpan;
-			path = ..;
-			sourceTree = "<group>";
-		};
-		C6F9E82E105335BC0059C3BA /* src */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E839105335BC0059C3BA /* data-types */,
-				C6F9E880105335BC0059C3BA /* driver */,
-				C6F9E996105335BC0059C3BA /* engine */,
-				C6F9E9AD105335BC0059C3BA /* low-level */,
-				C6F9EABD105335BD0059C3BA /* main */,
-			);
-			path = src;
-			sourceTree = "<group>";
-		};
-		C6F9E839105335BC0059C3BA /* data-types */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E84F105335BC0059C3BA /* base64.c */,
-				C6F9E850105335BC0059C3BA /* base64.h */,
-				C6F9E851105335BC0059C3BA /* carray.c */,
-				C6F9E852105335BC0059C3BA /* carray.h */,
-				C6F9E853105335BC0059C3BA /* charconv.c */,
-				C6F9E854105335BC0059C3BA /* charconv.h */,
-				C6F9E855105335BC0059C3BA /* chash.c */,
-				C6F9E856105335BC0059C3BA /* chash.h */,
-				C6F9E857105335BC0059C3BA /* clist.c */,
-				C6F9E858105335BC0059C3BA /* clist.h */,
-				C6F9E859105335BC0059C3BA /* connect.c */,
-				C6F9E85A105335BC0059C3BA /* connect.h */,
-				C6F9E85B105335BC0059C3BA /* hmac-md5.h */,
-				C6F9E85C105335BC0059C3BA /* mail.h */,
-				C6F9E85D105335BC0059C3BA /* mail_cache_db.c */,
-				C6F9E85E105335BC0059C3BA /* mail_cache_db.h */,
-				C6F9E85F105335BC0059C3BA /* mail_cache_db_types.h */,
-				C6F9E860105335BC0059C3BA /* maillock.c */,
-				C6F9E861105335BC0059C3BA /* maillock.h */,
-				C6F9E862105335BC0059C3BA /* mailsasl.c */,
-				C6F9E863105335BC0059C3BA /* mailsasl.h */,
-				C6F9E864105335BC0059C3BA /* mailsem.c */,
-				C6F9E865105335BC0059C3BA /* mailsem.h */,
-				C6F9E866105335BC0059C3BA /* mailstream.c */,
-				C6F9E867105335BC0059C3BA /* mailstream.h */,
-				C6F9E868105335BC0059C3BA /* mailstream_cancel.c */,
-				C6F9E869105335BC0059C3BA /* mailstream_cancel.h */,
-				C6F9E86A105335BC0059C3BA /* mailstream_cancel_types.h */,
-				C6EFB8761433F1F300F805C0 /* mailstream_cfstream.c */,
-				C6EFB8771433F1F300F805C0 /* mailstream_cfstream.h */,
-				2307A00A170AAA5500C43C59 /* mailstream_compress.c */,
-				2307A00B170AAA5500C43C59 /* mailstream_compress.h */,
-				C6F9E86B105335BC0059C3BA /* mailstream_helper.c */,
-				C6F9E86C105335BC0059C3BA /* mailstream_helper.h */,
-				C6F9E86D105335BC0059C3BA /* mailstream_low.c */,
-				C6F9E86E105335BC0059C3BA /* mailstream_low.h */,
-				C6F9E86F105335BC0059C3BA /* mailstream_socket.c */,
-				C6F9E870105335BC0059C3BA /* mailstream_socket.h */,
-				C6F9E871105335BC0059C3BA /* mailstream_ssl.c */,
-				C6F9E872105335BC0059C3BA /* mailstream_ssl.h */,
-				C6F9E873105335BC0059C3BA /* mailstream_ssl_private.h */,
-				C6F9E874105335BC0059C3BA /* mailstream_types.h */,
-				C6F9E878105335BC0059C3BA /* md5.c */,
-				C6F9E879105335BC0059C3BA /* md5.h */,
-				C6F9E87A105335BC0059C3BA /* md5global.h */,
-				BD5495471BEAC5EB00E7974E /* md5namespace.h */,
-				C6F9E87B105335BC0059C3BA /* mmapstring.c */,
-				C6F9E87C105335BC0059C3BA /* mmapstring.h */,
-				C6F9E87D105335BC0059C3BA /* mmapstring_private.h */,
-				C6F9E87E105335BC0059C3BA /* timeutils.c */,
-				C6F9E87F105335BC0059C3BA /* timeutils.h */,
-			);
-			path = "data-types";
-			sourceTree = "<group>";
-		};
-		C6F9E880105335BC0059C3BA /* driver */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E882105335BC0059C3BA /* implementation */,
-				C6F9E958105335BC0059C3BA /* interface */,
-				C6F9E982105335BC0059C3BA /* tools */,
-			);
-			path = driver;
-			sourceTree = "<group>";
-		};
-		C6F9E882105335BC0059C3BA /* implementation */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E884105335BC0059C3BA /* data-message */,
-				C6F9E88D105335BC0059C3BA /* db */,
-				C6F9E89D105335BC0059C3BA /* feed */,
-				C6F9E8AC105335BC0059C3BA /* hotmail */,
-				C6F9E8B5105335BC0059C3BA /* imap */,
-				C6F9E8CF105335BC0059C3BA /* maildir */,
-				C6F9E8EB105335BC0059C3BA /* mbox */,
-				C6F9E904105335BC0059C3BA /* mh */,
-				C6F9E91D105335BC0059C3BA /* mime-message */,
-				C6F9E926105335BC0059C3BA /* nntp */,
-				C6F9E93F105335BC0059C3BA /* pop3 */,
-			);
-			path = implementation;
-			sourceTree = "<group>";
-		};
-		C6F9E884105335BC0059C3BA /* data-message */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E888105335BC0059C3BA /* data_message_driver.c */,
-				C6F9E889105335BC0059C3BA /* data_message_driver.h */,
-			);
-			path = "data-message";
-			sourceTree = "<group>";
-		};
-		C6F9E88D105335BC0059C3BA /* db */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E893105335BC0059C3BA /* dbdriver.c */,
-				C6F9E894105335BC0059C3BA /* dbdriver.h */,
-				C6F9E895105335BC0059C3BA /* dbdriver_message.c */,
-				C6F9E896105335BC0059C3BA /* dbdriver_message.h */,
-				C6F9E897105335BC0059C3BA /* dbdriver_types.h */,
-				C6F9E898105335BC0059C3BA /* dbstorage.c */,
-				C6F9E899105335BC0059C3BA /* dbstorage.h */,
-			);
-			path = db;
-			sourceTree = "<group>";
-		};
-		C6F9E89D105335BC0059C3BA /* feed */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E8A2105335BC0059C3BA /* feeddriver.c */,
-				C6F9E8A3105335BC0059C3BA /* feeddriver.h */,
-				C6F9E8A4105335BC0059C3BA /* feeddriver_message.c */,
-				C6F9E8A5105335BC0059C3BA /* feeddriver_message.h */,
-				C6F9E8A6105335BC0059C3BA /* feeddriver_types.h */,
-				C6F9E8A7105335BC0059C3BA /* feedstorage.c */,
-				C6F9E8A8105335BC0059C3BA /* feedstorage.h */,
-			);
-			path = feed;
-			sourceTree = "<group>";
-		};
-		C6F9E8AC105335BC0059C3BA /* hotmail */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E8B0105335BC0059C3BA /* hotmailstorage.c */,
-				C6F9E8B1105335BC0059C3BA /* hotmailstorage.h */,
-			);
-			path = hotmail;
-			sourceTree = "<group>";
-		};
-		C6F9E8B5105335BC0059C3BA /* imap */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E8BE105335BC0059C3BA /* imapdriver.c */,
-				C6F9E8BF105335BC0059C3BA /* imapdriver.h */,
-				C6F9E8C0105335BC0059C3BA /* imapdriver_cached.c */,
-				C6F9E8C1105335BC0059C3BA /* imapdriver_cached.h */,
-				C6F9E8C2105335BC0059C3BA /* imapdriver_cached_message.c */,
-				C6F9E8C3105335BC0059C3BA /* imapdriver_cached_message.h */,
-				C6F9E8C4105335BC0059C3BA /* imapdriver_message.c */,
-				C6F9E8C5105335BC0059C3BA /* imapdriver_message.h */,
-				C6F9E8C6105335BC0059C3BA /* imapdriver_tools.c */,
-				C6F9E8C7105335BC0059C3BA /* imapdriver_tools.h */,
-				C6F9E8C8105335BC0059C3BA /* imapdriver_tools_private.h */,
-				C6F9E8C9105335BC0059C3BA /* imapdriver_types.h */,
-				C6F9E8CA105335BC0059C3BA /* imapstorage.c */,
-				C6F9E8CB105335BC0059C3BA /* imapstorage.h */,
-			);
-			path = imap;
-			sourceTree = "<group>";
-		};
-		C6F9E8CF105335BC0059C3BA /* maildir */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E8D8105335BC0059C3BA /* maildirdriver.c */,
-				C6F9E8D9105335BC0059C3BA /* maildirdriver.h */,
-				C6F9E8DA105335BC0059C3BA /* maildirdriver_cached.c */,
-				C6F9E8DB105335BC0059C3BA /* maildirdriver_cached.h */,
-				C6F9E8DC105335BC0059C3BA /* maildirdriver_cached_message.c */,
-				C6F9E8DD105335BC0059C3BA /* maildirdriver_cached_message.h */,
-				C6F9E8DE105335BC0059C3BA /* maildirdriver_message.c */,
-				C6F9E8DF105335BC0059C3BA /* maildirdriver_message.h */,
-				C6F9E8E0105335BC0059C3BA /* maildirdriver_tools.c */,
-				C6F9E8E1105335BC0059C3BA /* maildirdriver_tools.h */,
-				C6F9E8E2105335BC0059C3BA /* maildirdriver_types.h */,
-				C6F9E8E3105335BC0059C3BA /* maildirstorage.c */,
-				C6F9E8E4105335BC0059C3BA /* maildirstorage.h */,
-			);
-			path = maildir;
-			sourceTree = "<group>";
-		};
-		C6F9E8EB105335BC0059C3BA /* mbox */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E8F7105335BC0059C3BA /* mboxdriver.c */,
-				C6F9E8F8105335BC0059C3BA /* mboxdriver.h */,
-				C6F9E8F9105335BC0059C3BA /* mboxdriver_cached.c */,
-				C6F9E8FA105335BC0059C3BA /* mboxdriver_cached.h */,
-				C6F9E8FB105335BC0059C3BA /* mboxdriver_cached_message.c */,
-				C6F9E8FC105335BC0059C3BA /* mboxdriver_cached_message.h */,
-				C6F9E8FD105335BC0059C3BA /* mboxdriver_message.c */,
-				C6F9E8FE105335BC0059C3BA /* mboxdriver_message.h */,
-				C6F9E8FF105335BC0059C3BA /* mboxdriver_tools.c */,
-				C6F9E900105335BC0059C3BA /* mboxdriver_tools.h */,
-				C6F9E901105335BC0059C3BA /* mboxdriver_types.h */,
-				C6F9E902105335BC0059C3BA /* mboxstorage.c */,
-				C6F9E903105335BC0059C3BA /* mboxstorage.h */,
-			);
-			path = mbox;
-			sourceTree = "<group>";
-		};
-		C6F9E904105335BC0059C3BA /* mh */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E910105335BC0059C3BA /* mhdriver.c */,
-				C6F9E911105335BC0059C3BA /* mhdriver.h */,
-				C6F9E912105335BC0059C3BA /* mhdriver_cached.c */,
-				C6F9E913105335BC0059C3BA /* mhdriver_cached.h */,
-				C6F9E914105335BC0059C3BA /* mhdriver_cached_message.c */,
-				C6F9E915105335BC0059C3BA /* mhdriver_cached_message.h */,
-				C6F9E916105335BC0059C3BA /* mhdriver_message.c */,
-				C6F9E917105335BC0059C3BA /* mhdriver_message.h */,
-				C6F9E918105335BC0059C3BA /* mhdriver_tools.c */,
-				C6F9E919105335BC0059C3BA /* mhdriver_tools.h */,
-				C6F9E91A105335BC0059C3BA /* mhdriver_types.h */,
-				C6F9E91B105335BC0059C3BA /* mhstorage.c */,
-				C6F9E91C105335BC0059C3BA /* mhstorage.h */,
-			);
-			path = mh;
-			sourceTree = "<group>";
-		};
-		C6F9E91D105335BC0059C3BA /* mime-message */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E924105335BC0059C3BA /* mime_message_driver.c */,
-				C6F9E925105335BC0059C3BA /* mime_message_driver.h */,
-			);
-			path = "mime-message";
-			sourceTree = "<group>";
-		};
-		C6F9E926105335BC0059C3BA /* nntp */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E932105335BC0059C3BA /* nntpdriver.c */,
-				C6F9E933105335BC0059C3BA /* nntpdriver.h */,
-				C6F9E934105335BC0059C3BA /* nntpdriver_cached.c */,
-				C6F9E935105335BC0059C3BA /* nntpdriver_cached.h */,
-				C6F9E936105335BC0059C3BA /* nntpdriver_cached_message.c */,
-				C6F9E937105335BC0059C3BA /* nntpdriver_cached_message.h */,
-				C6F9E938105335BC0059C3BA /* nntpdriver_message.c */,
-				C6F9E939105335BC0059C3BA /* nntpdriver_message.h */,
-				C6F9E93A105335BC0059C3BA /* nntpdriver_tools.c */,
-				C6F9E93B105335BC0059C3BA /* nntpdriver_tools.h */,
-				C6F9E93C105335BC0059C3BA /* nntpdriver_types.h */,
-				C6F9E93D105335BC0059C3BA /* nntpstorage.c */,
-				C6F9E93E105335BC0059C3BA /* nntpstorage.h */,
-			);
-			path = nntp;
-			sourceTree = "<group>";
-		};
-		C6F9E93F105335BC0059C3BA /* pop3 */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E94B105335BC0059C3BA /* pop3driver.c */,
-				C6F9E94C105335BC0059C3BA /* pop3driver.h */,
-				C6F9E94D105335BC0059C3BA /* pop3driver_cached.c */,
-				C6F9E94E105335BC0059C3BA /* pop3driver_cached.h */,
-				C6F9E94F105335BC0059C3BA /* pop3driver_cached_message.c */,
-				C6F9E950105335BC0059C3BA /* pop3driver_cached_message.h */,
-				C6F9E951105335BC0059C3BA /* pop3driver_message.c */,
-				C6F9E952105335BC0059C3BA /* pop3driver_message.h */,
-				C6F9E953105335BC0059C3BA /* pop3driver_tools.c */,
-				C6F9E954105335BC0059C3BA /* pop3driver_tools.h */,
-				C6F9E955105335BC0059C3BA /* pop3driver_types.h */,
-				C6F9E956105335BC0059C3BA /* pop3storage.c */,
-				C6F9E957105335BC0059C3BA /* pop3storage.h */,
-			);
-			path = pop3;
-			sourceTree = "<group>";
-		};
-		C6F9E958105335BC0059C3BA /* interface */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E965105335BC0059C3BA /* maildriver.c */,
-				C6F9E966105335BC0059C3BA /* maildriver.h */,
-				C6F9E967105335BC0059C3BA /* maildriver_errors.h */,
-				C6F9E968105335BC0059C3BA /* maildriver_tools.c */,
-				C6F9E969105335BC0059C3BA /* maildriver_tools.h */,
-				C6F9E96A105335BC0059C3BA /* maildriver_types.c */,
-				C6F9E96B105335BC0059C3BA /* maildriver_types.h */,
-				C6F9E96C105335BC0059C3BA /* maildriver_types_helper.c */,
-				C6F9E96D105335BC0059C3BA /* maildriver_types_helper.h */,
-				C6F9E96E105335BC0059C3BA /* mailfolder.c */,
-				C6F9E96F105335BC0059C3BA /* mailfolder.h */,
-				C6F9E970105335BC0059C3BA /* mailmessage.c */,
-				C6F9E971105335BC0059C3BA /* mailmessage.h */,
-				C6F9E972105335BC0059C3BA /* mailmessage_tools.c */,
-				C6F9E973105335BC0059C3BA /* mailmessage_tools.h */,
-				C6F9E974105335BC0059C3BA /* mailmessage_types.c */,
-				C6F9E975105335BC0059C3BA /* mailmessage_types.h */,
-				C6F9E976105335BC0059C3BA /* mailstorage.c */,
-				C6F9E977105335BC0059C3BA /* mailstorage.h */,
-				C6F9E978105335BC0059C3BA /* mailstorage_tools.c */,
-				C6F9E979105335BC0059C3BA /* mailstorage_tools.h */,
-				C6F9E97A105335BC0059C3BA /* mailstorage_types.h */,
-			);
-			path = interface;
-			sourceTree = "<group>";
-		};
-		C6F9E982105335BC0059C3BA /* tools */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E989105335BC0059C3BA /* generic_cache.c */,
-				C6F9E98A105335BC0059C3BA /* generic_cache.h */,
-				C6F9E98B105335BC0059C3BA /* generic_cache_types.h */,
-				C6F9E98C105335BC0059C3BA /* imfcache.c */,
-				C6F9E98D105335BC0059C3BA /* imfcache.h */,
-				C6F9E98E105335BC0059C3BA /* mailthread.c */,
-				C6F9E98F105335BC0059C3BA /* mailthread.h */,
-				C6F9E990105335BC0059C3BA /* mailthread_types.c */,
-				C6F9E991105335BC0059C3BA /* mailthread_types.h */,
-			);
-			path = tools;
-			sourceTree = "<group>";
-		};
-		C6F9E996105335BC0059C3BA /* engine */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E99E105335BC0059C3BA /* mailengine.c */,
-				C6F9E99F105335BC0059C3BA /* mailengine.h */,
-				C6F9E9A0105335BC0059C3BA /* mailprivacy.c */,
-				C6F9E9A1105335BC0059C3BA /* mailprivacy.h */,
-				C6F9E9A2105335BC0059C3BA /* mailprivacy_gnupg.c */,
-				C6F9E9A3105335BC0059C3BA /* mailprivacy_gnupg.h */,
-				C6F9E9A4105335BC0059C3BA /* mailprivacy_smime.c */,
-				C6F9E9A5105335BC0059C3BA /* mailprivacy_smime.h */,
-				C6F9E9A6105335BC0059C3BA /* mailprivacy_tools.c */,
-				C6F9E9A7105335BC0059C3BA /* mailprivacy_tools.h */,
-				C6F9E9A8105335BC0059C3BA /* mailprivacy_tools_private.h */,
-				C6F9E9A9105335BC0059C3BA /* mailprivacy_types.h */,
-			);
-			path = engine;
-			sourceTree = "<group>";
-		};
-		C6F9E9AD105335BC0059C3BA /* low-level */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E9AF105335BC0059C3BA /* feed */,
-				C6F9E9D3105335BC0059C3BA /* imap */,
-				C6F9EA23105335BC0059C3BA /* imf */,
-				C6F9EA3D105335BC0059C3BA /* maildir */,
-				C6F9EA4A105335BC0059C3BA /* mbox */,
-				C6F9EA5A105335BC0059C3BA /* mh */,
-				C6F9EA63105335BC0059C3BA /* mime */,
-				C6F9EA86105335BC0059C3BA /* nntp */,
-				C6F9EA96105335BC0059C3BA /* pop3 */,
-				C6F9EAA9105335BC0059C3BA /* smtp */,
-			);
-			path = "low-level";
-			sourceTree = "<group>";
-		};
-		C6F9E9AF105335BC0059C3BA /* feed */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E9BB105335BC0059C3BA /* date.c */,
-				C6F9E9BC105335BC0059C3BA /* date.h */,
-				C6F9E9C0105335BC0059C3BA /* newsfeed.c */,
-				C6F9E9C1105335BC0059C3BA /* newsfeed.h */,
-				C6F9E9C2105335BC0059C3BA /* newsfeed_item.c */,
-				C6F9E9C3105335BC0059C3BA /* newsfeed_item.h */,
-				C6F9E9C4105335BC0059C3BA /* newsfeed_item_enclosure.c */,
-				C6F9E9C5105335BC0059C3BA /* newsfeed_item_enclosure.h */,
-				C6F9E9C6105335BC0059C3BA /* newsfeed_private.c */,
-				C6F9E9C7105335BC0059C3BA /* newsfeed_private.h */,
-				C6F9E9C8105335BC0059C3BA /* newsfeed_types.h */,
-				C6F9E9C9105335BC0059C3BA /* parser.c */,
-				C6F9E9CA105335BC0059C3BA /* parser.h */,
-				C6F9E9CB105335BC0059C3BA /* parser_atom03.c */,
-				C6F9E9CC105335BC0059C3BA /* parser_atom03.h */,
-				C6F9E9CD105335BC0059C3BA /* parser_atom10.c */,
-				C6F9E9CE105335BC0059C3BA /* parser_atom10.h */,
-				C6F9E9CF105335BC0059C3BA /* parser_rdf.c */,
-				C6F9E9D0105335BC0059C3BA /* parser_rdf.h */,
-				C6F9E9D1105335BC0059C3BA /* parser_rss20.c */,
-				C6F9E9D2105335BC0059C3BA /* parser_rss20.h */,
-			);
-			path = feed;
-			sourceTree = "<group>";
-		};
-		C6F9E9D3105335BC0059C3BA /* imap */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9E9EE105335BC0059C3BA /* acl.c */,
-				C6F9E9EF105335BC0059C3BA /* acl.h */,
-				C6F9E9F0105335BC0059C3BA /* acl_parser.c */,
-				C6F9E9F1105335BC0059C3BA /* acl_parser.h */,
-				C6F9E9F2105335BC0059C3BA /* acl_sender.c */,
-				C6F9E9F3105335BC0059C3BA /* acl_sender.h */,
-				C6F9E9F4105335BC0059C3BA /* acl_types.c */,
-				C6F9E9F5105335BC0059C3BA /* acl_types.h */,
-				C6F9E9F6105335BC0059C3BA /* annotatemore.c */,
-				C6F9E9F7105335BC0059C3BA /* annotatemore.h */,
-				C6F9E9F8105335BC0059C3BA /* annotatemore_parser.c */,
-				C6F9E9F9105335BC0059C3BA /* annotatemore_parser.h */,
-				C6F9E9FA105335BC0059C3BA /* annotatemore_sender.c */,
-				C6F9E9FB105335BC0059C3BA /* annotatemore_sender.h */,
-				C6F9E9FC105335BC0059C3BA /* annotatemore_types.c */,
-				C6F9E9FD105335BC0059C3BA /* annotatemore_types.h */,
-				C6635C3816DFF10E0066276E /* condstore.c */,
-				C6635C3916DFF10E0066276E /* condstore.h */,
-				C6635C3516DFF10E0066276E /* condstore_private.h */,
-				C6635C3616DFF10E0066276E /* condstore_types.c */,
-				C6635C3716DFF10E0066276E /* condstore_types.h */,
-				C60E7B9816C3809400A25BF4 /* enable.c */,
-				C60E7B9916C3809400A25BF4 /* enable.h */,
-				C6F9E9FE105335BC0059C3BA /* idle.c */,
-				C6F9E9FF105335BC0059C3BA /* idle.h */,
-				C6F9EA00105335BC0059C3BA /* mailimap.c */,
-				C6F9EA01105335BC0059C3BA /* mailimap.h */,
-				C668E2D81736004400A2BB47 /* mailimap_compress.c */,
-				C668E2D91736004400A2BB47 /* mailimap_compress.h */,
-				C6F9EA02105335BC0059C3BA /* mailimap_extension.c */,
-				C6F9EA03105335BC0059C3BA /* mailimap_extension.h */,
-				C6F9EA04105335BC0059C3BA /* mailimap_extension_types.h */,
-				C6F9EA05105335BC0059C3BA /* mailimap_helper.c */,
-				C6F9EA06105335BC0059C3BA /* mailimap_helper.h */,
-				C64EA7BF16A00CC300778456 /* mailimap_id.c */,
-				C64EA7C016A00CC500778456 /* mailimap_id.h */,
-				C64EA7B916A00CC100778456 /* mailimap_id_parser.c */,
-				C64EA7BA16A00CC100778456 /* mailimap_id_parser.h */,
-				C64EA7BB16A00CC200778456 /* mailimap_id_sender.c */,
-				C64EA7BC16A00CC200778456 /* mailimap_id_sender.h */,
-				C64EA7BD16A00CC200778456 /* mailimap_id_types.c */,
-				C64EA7BE16A00CC300778456 /* mailimap_id_types.h */,
-				C6F9EA07105335BC0059C3BA /* mailimap_keywords.c */,
-				C6F9EA08105335BC0059C3BA /* mailimap_keywords.h */,
-				C60136961776D16A00A5AF45 /* mailimap_oauth2.c */,
-				C60136971776D16A00A5AF45 /* mailimap_oauth2.h */,
-				C6F9EA09105335BC0059C3BA /* mailimap_parser.c */,
-				C6F9EA0A105335BC0059C3BA /* mailimap_parser.h */,
-				C6F9EA0B105335BC0059C3BA /* mailimap_print.c */,
-				C6F9EA0C105335BC0059C3BA /* mailimap_print.h */,
-				C6F9EA0D105335BC0059C3BA /* mailimap_sender.c */,
-				C6F9EA0E105335BC0059C3BA /* mailimap_sender.h */,
-				C6F9EA0F105335BC0059C3BA /* mailimap_socket.c */,
-				C6F9EA10105335BC0059C3BA /* mailimap_socket.h */,
-				C6F9EA11105335BC0059C3BA /* mailimap_ssl.c */,
-				C6F9EA12105335BC0059C3BA /* mailimap_ssl.h */,
-				C6F9EA13105335BC0059C3BA /* mailimap_types.c */,
-				C6F9EA14105335BC0059C3BA /* mailimap_types.h */,
-				C6F9EA15105335BC0059C3BA /* mailimap_types_helper.c */,
-				C6F9EA16105335BC0059C3BA /* mailimap_types_helper.h */,
-				C65179E4130E84BD004ADD56 /* namespace.c */,
-				C6516B69130DD667004ADD56 /* namespace.h */,
-				C65179F1130E85CA004ADD56 /* namespace_parser.c */,
-				C65179F0130E85CA004ADD56 /* namespace_parser.h */,
-				C6517A0C130E86D3004ADD56 /* namespace_sender.c */,
-				C6517A0B130E86D3004ADD56 /* namespace_sender.h */,
-				C6517A06130E86C6004ADD56 /* namespace_types.c */,
-				C6517A05130E86C6004ADD56 /* namespace_types.h */,
-				C64BB21616E2FC2F000DB34C /* qresync.c */,
-				C64BB21716E2FC2F000DB34C /* qresync.h */,
-				C64BB21E16E32CDB000DB34C /* qresync_private.h */,
-				C64BB21416E2FC2F000DB34C /* qresync_types.c */,
-				C64BB21516E2FC2F000DB34C /* qresync_types.h */,
-				C6E57200110376F200897274 /* quota.c */,
-				C6E57201110376F200897274 /* quota.h */,
-				C6E571FA110376F200897274 /* quota_parser.c */,
-				C6E571FB110376F200897274 /* quota_parser.h */,
-				C6E571FC110376F200897274 /* quota_sender.c */,
-				C6E571FD110376F200897274 /* quota_sender.h */,
-				C6E571FE110376F200897274 /* quota_types.c */,
-				C6E571FF110376F200897274 /* quota_types.h */,
-				C6F9EA1B105335BC0059C3BA /* uidplus.c */,
-				C6F9EA1C105335BC0059C3BA /* uidplus.h */,
-				C6F9EA1D105335BC0059C3BA /* uidplus_parser.c */,
-				C6F9EA1E105335BC0059C3BA /* uidplus_parser.h */,
-				C6F9EA1F105335BC0059C3BA /* uidplus_sender.c */,
-				C6F9EA20105335BC0059C3BA /* uidplus_sender.h */,
-				C6F9EA21105335BC0059C3BA /* uidplus_types.c */,
-				C6F9EA22105335BC0059C3BA /* uidplus_types.h */,
-				C6CE9B1514AA9C8900D20BA6 /* xgmlabels.c */,
-				C6CE9B1814AA9C9C00D20BA6 /* xgmlabels.h */,
-				365DFFD115D1C93100F2DD85 /* xgmmsgid.c */,
-				365DFFD815D1CF1800F2DD85 /* xgmmsgid.h */,
-				C6F61F721701409B0073032E /* xgmthrid.c */,
-				C6F61F731701409B0073032E /* xgmthrid.h */,
-				C6667DED1342ACCD00969A8E /* xlist.c */,
-				C6667DEE1342ACCD00969A8E /* xlist.h */,
-				8A75ECD917040F91007F9972 /* mailimap_sort.c */,
-				8A75ECDD17040FBD007F9972 /* mailimap_sort.h */,
-				8A75ECE5170414B8007F9972 /* mailimap_sort_types.c */,
-				8A75ECEA170414E9007F9972 /* mailimap_sort_types.h */,
-			);
-			path = imap;
-			sourceTree = "<group>";
-		};
-		C6F9EA23105335BC0059C3BA /* imf */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA2C105335BC0059C3BA /* mailimf.c */,
-				C6F9EA2D105335BC0059C3BA /* mailimf.h */,
-				C6F9EA2E105335BC0059C3BA /* mailimf_types.c */,
-				C6F9EA2F105335BC0059C3BA /* mailimf_types.h */,
-				C6F9EA30105335BC0059C3BA /* mailimf_types_helper.c */,
-				C6F9EA31105335BC0059C3BA /* mailimf_types_helper.h */,
-				C6F9EA32105335BC0059C3BA /* mailimf_write.h */,
-				C6F9EA33105335BC0059C3BA /* mailimf_write_file.c */,
-				C6F9EA34105335BC0059C3BA /* mailimf_write_file.h */,
-				C6F9EA35105335BC0059C3BA /* mailimf_write_generic.c */,
-				C6F9EA36105335BC0059C3BA /* mailimf_write_generic.h */,
-				C6F9EA37105335BC0059C3BA /* mailimf_write_mem.c */,
-				C6F9EA38105335BC0059C3BA /* mailimf_write_mem.h */,
-			);
-			path = imf;
-			sourceTree = "<group>";
-		};
-		C6F9EA3D105335BC0059C3BA /* maildir */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA41105335BC0059C3BA /* maildir.c */,
-				C6F9EA42105335BC0059C3BA /* maildir.h */,
-				C6F9EA43105335BC0059C3BA /* maildir_types.h */,
-			);
-			path = maildir;
-			sourceTree = "<group>";
-		};
-		C6F9EA4A105335BC0059C3BA /* mbox */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA50105335BC0059C3BA /* mailmbox.c */,
-				C6F9EA51105335BC0059C3BA /* mailmbox.h */,
-				C6F9EA52105335BC0059C3BA /* mailmbox_parse.c */,
-				C6F9EA53105335BC0059C3BA /* mailmbox_parse.h */,
-				C6F9EA54105335BC0059C3BA /* mailmbox_types.c */,
-				C6F9EA55105335BC0059C3BA /* mailmbox_types.h */,
-			);
-			path = mbox;
-			sourceTree = "<group>";
-		};
-		C6F9EA5A105335BC0059C3BA /* mh */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA5E105335BC0059C3BA /* mailmh.c */,
-				C6F9EA5F105335BC0059C3BA /* mailmh.h */,
-			);
-			path = mh;
-			sourceTree = "<group>";
-		};
-		C6F9EA63105335BC0059C3BA /* mime */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA6F105335BC0059C3BA /* mailmime.c */,
-				C6F9EA70105335BC0059C3BA /* mailmime.h */,
-				C6F9EA71105335BC0059C3BA /* mailmime_content.c */,
-				C6F9EA72105335BC0059C3BA /* mailmime_content.h */,
-				C6F9EA73105335BC0059C3BA /* mailmime_decode.c */,
-				C6F9EA74105335BC0059C3BA /* mailmime_decode.h */,
-				C6F9EA75105335BC0059C3BA /* mailmime_disposition.c */,
-				C6F9EA76105335BC0059C3BA /* mailmime_disposition.h */,
-				C6F9EA77105335BC0059C3BA /* mailmime_types.c */,
-				C6F9EA78105335BC0059C3BA /* mailmime_types.h */,
-				C6F9EA79105335BC0059C3BA /* mailmime_types_helper.c */,
-				C6F9EA7A105335BC0059C3BA /* mailmime_types_helper.h */,
-				C6F9EA7B105335BC0059C3BA /* mailmime_write.h */,
-				C6F9EA7C105335BC0059C3BA /* mailmime_write_file.c */,
-				C6F9EA7D105335BC0059C3BA /* mailmime_write_file.h */,
-				C6F9EA7E105335BC0059C3BA /* mailmime_write_generic.c */,
-				C6F9EA7F105335BC0059C3BA /* mailmime_write_generic.h */,
-				C6F9EA80105335BC0059C3BA /* mailmime_write_mem.c */,
-				C6F9EA81105335BC0059C3BA /* mailmime_write_mem.h */,
-			);
-			path = mime;
-			sourceTree = "<group>";
-		};
-		C6F9EA86105335BC0059C3BA /* nntp */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA8F105335BC0059C3BA /* newsnntp.c */,
-				C6F9EA90105335BC0059C3BA /* newsnntp.h */,
-				C6F9EA91105335BC0059C3BA /* newsnntp_socket.c */,
-				C6F9EA92105335BC0059C3BA /* newsnntp_socket.h */,
-				C6F9EA93105335BC0059C3BA /* newsnntp_ssl.c */,
-				C6F9EA94105335BC0059C3BA /* newsnntp_ssl.h */,
-				C6F9EA95105335BC0059C3BA /* newsnntp_types.h */,
-			);
-			path = nntp;
-			sourceTree = "<group>";
-		};
-		C6F9EA96105335BC0059C3BA /* pop3 */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EA9D105335BC0059C3BA /* mailpop3.c */,
-				C6F9EA9E105335BC0059C3BA /* mailpop3.h */,
-				C6F9EA9F105335BC0059C3BA /* mailpop3_helper.c */,
-				C6F9EAA0105335BC0059C3BA /* mailpop3_helper.h */,
-				C6F9EAA1105335BC0059C3BA /* mailpop3_socket.c */,
-				C6F9EAA2105335BC0059C3BA /* mailpop3_socket.h */,
-				C6F9EAA3105335BC0059C3BA /* mailpop3_ssl.c */,
-				C6F9EAA4105335BC0059C3BA /* mailpop3_ssl.h */,
-				C6F9EAA5105335BC0059C3BA /* mailpop3_types.h */,
-			);
-			path = pop3;
-			sourceTree = "<group>";
-		};
-		C6F9EAA9105335BC0059C3BA /* smtp */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EAB0105335BC0059C3BA /* mailsmtp.c */,
-				C6F9EAB1105335BC0059C3BA /* mailsmtp.h */,
-				C6F9EAB2105335BC0059C3BA /* mailsmtp_helper.c */,
-				C6F9EAB3105335BC0059C3BA /* mailsmtp_helper.h */,
-				C64DC0151788AB3C0012CA0B /* mailsmtp_oauth2.c */,
-				C64DC0161788AB3C0012CA0B /* mailsmtp_oauth2.h */,
-				C64DC0171788AB3C0012CA0B /* mailsmtp_private.h */,
-				C6F9EAB4105335BC0059C3BA /* mailsmtp_socket.c */,
-				C6F9EAB5105335BC0059C3BA /* mailsmtp_socket.h */,
-				C6F9EAB6105335BC0059C3BA /* mailsmtp_ssl.c */,
-				C6F9EAB7105335BC0059C3BA /* mailsmtp_ssl.h */,
-				C6F9EAB8105335BC0059C3BA /* mailsmtp_types.h */,
-			);
-			path = smtp;
-			sourceTree = "<group>";
-		};
-		C6F9EABD105335BD0059C3BA /* main */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EAC1105335BD0059C3BA /* libetpan.h */,
-				C6F9EAC2105335BD0059C3BA /* libetpan_version.c */,
-			);
-			path = main;
-			sourceTree = "<group>";
-		};
-		C6F9ED9A105338F60059C3BA /* Libraries */ = {
-			isa = PBXGroup;
-			children = (
-				C6F9EDBD105339EA0059C3BA /* libcrypto.dylib */,
-				C6F9EDB1105339650059C3BA /* libcurl.dylib */,
-				C6F9EDAC1053395A0059C3BA /* libexpat.dylib */,
-				C6F9EDAA1053394C0059C3BA /* libiconv.dylib */,
-				C6F9EDA5105339380059C3BA /* libsasl2.dylib */,
-				C6F9ED9D105339200059C3BA /* libssl.dylib */,
-				C69BA85F17DF63C900D601B7 /* libz.dylib */,
-			);
-			name = Libraries;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXLegacyTarget section */
-		C6635C4316DFFE6E0066276E /* libetpan-prepare */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(SRCROOT)/update.sh";
-			buildConfigurationList = C6635C4416DFFE6E0066276E /* Build configuration list for PBXLegacyTarget "libetpan-prepare" */;
-			buildPhases = (
-			);
-			buildToolPath = /bin/sh;
-			buildWorkingDirectory = "$(SRCROOT)";
-			dependencies = (
-			);
-			name = "libetpan-prepare";
-			passBuildSettingsInEnvironment = 1;
-			productName = "libetpan-prepare";
-		};
-		C6635C4D16E002340066276E /* libetpan-prepare-ios */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(SRCROOT)/update.sh";
-			buildConfigurationList = C6635C4E16E002340066276E /* Build configuration list for PBXLegacyTarget "libetpan-prepare-ios" */;
-			buildPhases = (
-			);
-			buildToolPath = /bin/sh;
-			buildWorkingDirectory = "$(SRCROOT)";
-			dependencies = (
-			);
-			name = "libetpan-prepare-ios";
-			passBuildSettingsInEnvironment = 1;
-			productName = "libetpan-prepare";
-		};
-/* End PBXLegacyTarget section */
-
-/* Begin PBXNativeTarget section */
-		8DC2EF4F0486A6940098B216 /* libetpan */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "libetpan" */;
-			buildPhases = (
-				C6635C5316E002ED0066276E /* ShellScript */,
-				8DC2EF520486A6940098B216 /* Resources */,
-				8DC2EF540486A6940098B216 /* Sources */,
-				8DC2EF560486A6940098B216 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				C6635C4816E000310066276E /* PBXTargetDependency */,
-			);
-			name = libetpan;
-			productInstallPath = "$(HOME)/Library/Frameworks";
-			productName = libetpan;
-			productReference = 8DC2EF5B0486A6940098B216 /* libetpan.framework */;
-			productType = "com.apple.product-type.framework";
-		};
-		C682E21815B315EF00BE9DA7 /* libetpan ios */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = C682E2BD15B315EF00BE9DA7 /* Build configuration list for PBXNativeTarget "libetpan ios" */;
-			buildPhases = (
-				C6635C3416DFF0030066276E /* ShellScript */,
-				C682E21B15B315EF00BE9DA7 /* Sources */,
-				C682E2BC15B315EF00BE9DA7 /* Frameworks */,
-				C6740DB515B384FB00D4A16B /* ShellScript */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				C6635C5216E0027B0066276E /* PBXTargetDependency */,
-			);
-			name = "libetpan ios";
-			productName = "static libetpan";
-			productReference = C682E2C015B315EF00BE9DA7 /* libetpan-ios.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-		C69AB10910546FE500F32FBD /* static libetpan */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = C69AB10D1054700400F32FBD /* Build configuration list for PBXNativeTarget "static libetpan" */;
-			buildPhases = (
-				C6635C3316DFEFE00066276E /* ShellScript */,
-				C69AB10710546FE500F32FBD /* Sources */,
-				C69AB10810546FE500F32FBD /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				C6635C4A16E000340066276E /* PBXTargetDependency */,
-			);
-			name = "static libetpan";
-			productName = "static libetpan";
-			productReference = C69AB10A10546FE500F32FBD /* libetpan.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		0867D690FE84028FC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0930;
-			};
-			buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "libetpan" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-			);
-			mainGroup = 0867D691FE84028FC02AAC07 /* libetpan */;
-			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				8DC2EF4F0486A6940098B216 /* libetpan */,
-				C69AB10910546FE500F32FBD /* static libetpan */,
-				C682E21815B315EF00BE9DA7 /* libetpan ios */,
-				C6635C4316DFFE6E0066276E /* libetpan-prepare */,
-				C6635C4D16E002340066276E /* libetpan-prepare-ios */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		8DC2EF520486A6940098B216 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
-		C6635C3316DFEFE00066276E /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "mkdir -p \"$BUILT_PRODUCTS_DIR/include\"\nrsync -aL \"$SRCROOT/../include/libetpan/\" \"$BUILT_PRODUCTS_DIR/include/libetpan/\"\n";
-		};
-		C6635C3416DFF0030066276E /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "mkdir -p \"$BUILT_PRODUCTS_DIR/include\"\nrsync -aL \"$SRCROOT/../include/libetpan/\" \"$BUILT_PRODUCTS_DIR/include/libetpan/\"\n";
-		};
-		C6635C5316E002ED0066276E /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "mkdir -p \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nmkdir -p \"$BUILT_PRODUCTS_DIR/include/libetpan\"\nln -sf \"Versions/Current/Headers\" \"$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/Headers\"\nrsync -aL \"$SRCROOT/../include/libetpan/\" \"$BUILT_PRODUCTS_DIR/include/libetpan/\"\nrsync -aL \"$SRCROOT/../include/libetpan/\" \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH/\"\n";
-		};
-		C6740DB515B384FB00D4A16B /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "cp \"$SRCROOT/libsasl-ios/lib/libsasl2.a\" \"$BUILT_PRODUCTS_DIR\"\n";
-		};
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		8DC2EF540486A6940098B216 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				C6F9EAFB105335BD0059C3BA /* base64.c in Sources */,
-				C6F9EAFD105335BD0059C3BA /* carray.c in Sources */,
-				C6F9EAFF105335BD0059C3BA /* charconv.c in Sources */,
-				C6F9EB01105335BD0059C3BA /* chash.c in Sources */,
-				C6F9EB03105335BD0059C3BA /* clist.c in Sources */,
-				C6F9EB05105335BD0059C3BA /* connect.c in Sources */,
-				C6F9EB09105335BD0059C3BA /* mail_cache_db.c in Sources */,
-				C6F9EB0C105335BD0059C3BA /* maillock.c in Sources */,
-				C6F9EB0E105335BD0059C3BA /* mailsasl.c in Sources */,
-				C6F9EB10105335BD0059C3BA /* mailsem.c in Sources */,
-				C6F9EB12105335BD0059C3BA /* mailstream.c in Sources */,
-				C6F9EB14105335BD0059C3BA /* mailstream_cancel.c in Sources */,
-				C6F9EB17105335BD0059C3BA /* mailstream_helper.c in Sources */,
-				C6F9EB19105335BD0059C3BA /* mailstream_low.c in Sources */,
-				C6F9EB1B105335BD0059C3BA /* mailstream_socket.c in Sources */,
-				C6F9EB1D105335BD0059C3BA /* mailstream_ssl.c in Sources */,
-				C6F9EB24105335BD0059C3BA /* md5.c in Sources */,
-				C6F9EB27105335BD0059C3BA /* mmapstring.c in Sources */,
-				C6F9EB2A105335BD0059C3BA /* timeutils.c in Sources */,
-				C6F9EB30105335BD0059C3BA /* data_message_driver.c in Sources */,
-				C6F9EB39105335BD0059C3BA /* dbdriver.c in Sources */,
-				C6F9EB3B105335BD0059C3BA /* dbdriver_message.c in Sources */,
-				C6F9EB3E105335BD0059C3BA /* dbstorage.c in Sources */,
-				C6F9EB46105335BD0059C3BA /* feeddriver.c in Sources */,
-				C6F9EB48105335BD0059C3BA /* feeddriver_message.c in Sources */,
-				C6F9EB4B105335BD0059C3BA /* feedstorage.c in Sources */,
-				C6F9EB52105335BD0059C3BA /* hotmailstorage.c in Sources */,
-				C6F9EB5E105335BD0059C3BA /* imapdriver.c in Sources */,
-				C6F9EB60105335BD0059C3BA /* imapdriver_cached.c in Sources */,
-				C6F9EB62105335BD0059C3BA /* imapdriver_cached_message.c in Sources */,
-				C6F9EB64105335BD0059C3BA /* imapdriver_message.c in Sources */,
-				C6F9EB66105335BD0059C3BA /* imapdriver_tools.c in Sources */,
-				C6F9EB6A105335BD0059C3BA /* imapstorage.c in Sources */,
-				C6F9EB76105335BD0059C3BA /* maildirdriver.c in Sources */,
-				C6F9EB78105335BD0059C3BA /* maildirdriver_cached.c in Sources */,
-				C6F9EB7A105335BD0059C3BA /* maildirdriver_cached_message.c in Sources */,
-				C6F9EB7C105335BD0059C3BA /* maildirdriver_message.c in Sources */,
-				C6F9EB7E105335BD0059C3BA /* maildirdriver_tools.c in Sources */,
-				C6F9EB81105335BD0059C3BA /* maildirstorage.c in Sources */,
-				C6F9EB93105335BD0059C3BA /* mboxdriver.c in Sources */,
-				C6F9EB95105335BD0059C3BA /* mboxdriver_cached.c in Sources */,
-				C6F9EB97105335BD0059C3BA /* mboxdriver_cached_message.c in Sources */,
-				C6F9EB99105335BD0059C3BA /* mboxdriver_message.c in Sources */,
-				C6F9EB9B105335BD0059C3BA /* mboxdriver_tools.c in Sources */,
-				C6F9EB9E105335BD0059C3BA /* mboxstorage.c in Sources */,
-				C6F9EBAA105335BD0059C3BA /* mhdriver.c in Sources */,
-				C6F9EBAC105335BD0059C3BA /* mhdriver_cached.c in Sources */,
-				C6F9EBAE105335BD0059C3BA /* mhdriver_cached_message.c in Sources */,
-				C6F9EBB0105335BD0059C3BA /* mhdriver_message.c in Sources */,
-				C6F9EBB2105335BD0059C3BA /* mhdriver_tools.c in Sources */,
-				C6F9EBB5105335BD0059C3BA /* mhstorage.c in Sources */,
-				C6F9EBBC105335BD0059C3BA /* mime_message_driver.c in Sources */,
-				C6F9EBC8105335BD0059C3BA /* nntpdriver.c in Sources */,
-				C6F9EBCA105335BD0059C3BA /* nntpdriver_cached.c in Sources */,
-				C6F9EBCC105335BD0059C3BA /* nntpdriver_cached_message.c in Sources */,
-				C6F9EBCE105335BD0059C3BA /* nntpdriver_message.c in Sources */,
-				C6F9EBD0105335BD0059C3BA /* nntpdriver_tools.c in Sources */,
-				C6F9EBD3105335BD0059C3BA /* nntpstorage.c in Sources */,
-				C6F9EBDF105335BD0059C3BA /* pop3driver.c in Sources */,
-				C6F9EBE1105335BD0059C3BA /* pop3driver_cached.c in Sources */,
-				C6F9EBE3105335BD0059C3BA /* pop3driver_cached_message.c in Sources */,
-				C6F9EBE5105335BD0059C3BA /* pop3driver_message.c in Sources */,
-				C6F9EBE7105335BD0059C3BA /* pop3driver_tools.c in Sources */,
-				C6F9EBEA105335BD0059C3BA /* pop3storage.c in Sources */,
-				C6F9EBF7105335BD0059C3BA /* maildriver.c in Sources */,
-				C6F9EBFA105335BD0059C3BA /* maildriver_tools.c in Sources */,
-				C6F9EBFC105335BD0059C3BA /* maildriver_types.c in Sources */,
-				C6F9EBFE105335BD0059C3BA /* maildriver_types_helper.c in Sources */,
-				C6F9EC00105335BD0059C3BA /* mailfolder.c in Sources */,
-				C6F9EC02105335BD0059C3BA /* mailmessage.c in Sources */,
-				C6F9EC04105335BD0059C3BA /* mailmessage_tools.c in Sources */,
-				C6F9EC06105335BD0059C3BA /* mailmessage_types.c in Sources */,
-				C6F9EC08105335BD0059C3BA /* mailstorage.c in Sources */,
-				C6F9EC0A105335BD0059C3BA /* mailstorage_tools.c in Sources */,
-				C6F9EC19105335BD0059C3BA /* generic_cache.c in Sources */,
-				C6F9EC1C105335BD0059C3BA /* imfcache.c in Sources */,
-				C6F9EC1E105335BD0059C3BA /* mailthread.c in Sources */,
-				C6F9EC20105335BD0059C3BA /* mailthread_types.c in Sources */,
-				C6F9EC2C105335BD0059C3BA /* mailengine.c in Sources */,
-				C6F9EC2E105335BD0059C3BA /* mailprivacy.c in Sources */,
-				C6F9EC30105335BD0059C3BA /* mailprivacy_gnupg.c in Sources */,
-				C6F9EC32105335BD0059C3BA /* mailprivacy_smime.c in Sources */,
-				C6F9EC34105335BD0059C3BA /* mailprivacy_tools.c in Sources */,
-				C6F9EC46105335BD0059C3BA /* date.c in Sources */,
-				C6F9EC4B105335BD0059C3BA /* newsfeed.c in Sources */,
-				C6F9EC4D105335BD0059C3BA /* newsfeed_item.c in Sources */,
-				C6F9EC4F105335BD0059C3BA /* newsfeed_item_enclosure.c in Sources */,
-				C6F9EC51105335BD0059C3BA /* newsfeed_private.c in Sources */,
-				C6F9EC54105335BD0059C3BA /* parser.c in Sources */,
-				C6F9EC56105335BD0059C3BA /* parser_atom03.c in Sources */,
-				C6F9EC58105335BD0059C3BA /* parser_atom10.c in Sources */,
-				C6F9EC5A105335BD0059C3BA /* parser_rdf.c in Sources */,
-				C6F9EC5C105335BD0059C3BA /* parser_rss20.c in Sources */,
-				C6F9EC77105335BD0059C3BA /* acl.c in Sources */,
-				C6F9EC79105335BD0059C3BA /* acl_parser.c in Sources */,
-				C6F9EC7B105335BD0059C3BA /* acl_sender.c in Sources */,
-				C6F9EC7D105335BD0059C3BA /* acl_types.c in Sources */,
-				C6F9EC7F105335BD0059C3BA /* annotatemore.c in Sources */,
-				C6F9EC81105335BD0059C3BA /* annotatemore_parser.c in Sources */,
-				C6F9EC83105335BD0059C3BA /* annotatemore_sender.c in Sources */,
-				C6F9EC85105335BD0059C3BA /* annotatemore_types.c in Sources */,
-				C6F9EC87105335BD0059C3BA /* idle.c in Sources */,
-				C6F9EC89105335BD0059C3BA /* mailimap.c in Sources */,
-				C6F9EC8B105335BD0059C3BA /* mailimap_extension.c in Sources */,
-				C6F9EC8E105335BD0059C3BA /* mailimap_helper.c in Sources */,
-				C6F9EC90105335BD0059C3BA /* mailimap_keywords.c in Sources */,
-				C6F9EC92105335BD0059C3BA /* mailimap_parser.c in Sources */,
-				C6F9EC94105335BD0059C3BA /* mailimap_print.c in Sources */,
-				C6F9EC96105335BD0059C3BA /* mailimap_sender.c in Sources */,
-				C6F9EC98105335BD0059C3BA /* mailimap_socket.c in Sources */,
-				C6F9EC9A105335BD0059C3BA /* mailimap_ssl.c in Sources */,
-				C6F9EC9C105335BD0059C3BA /* mailimap_types.c in Sources */,
-				C6F9EC9E105335BD0059C3BA /* mailimap_types_helper.c in Sources */,
-				C6F9ECA4105335BD0059C3BA /* uidplus.c in Sources */,
-				C6F9ECA6105335BD0059C3BA /* uidplus_parser.c in Sources */,
-				C6F9ECA8105335BD0059C3BA /* uidplus_sender.c in Sources */,
-				C6F9ECAA105335BD0059C3BA /* uidplus_types.c in Sources */,
-				C6F9ECB3105335BD0059C3BA /* mailimf.c in Sources */,
-				C6F9ECB5105335BD0059C3BA /* mailimf_types.c in Sources */,
-				C6F9ECB7105335BD0059C3BA /* mailimf_types_helper.c in Sources */,
-				C6F9ECBA105335BD0059C3BA /* mailimf_write_file.c in Sources */,
-				C64DC0181788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */,
-				C6F9ECBC105335BD0059C3BA /* mailimf_write_generic.c in Sources */,
-				C6F9ECBE105335BD0059C3BA /* mailimf_write_mem.c in Sources */,
-				C6F9ECC6105335BD0059C3BA /* maildir.c in Sources */,
-				C6F9ECD3105335BD0059C3BA /* mailmbox.c in Sources */,
-				C6F9ECD5105335BD0059C3BA /* mailmbox_parse.c in Sources */,
-				C6F9ECD7105335BD0059C3BA /* mailmbox_types.c in Sources */,
-				C6F9ECDF105335BD0059C3BA /* mailmh.c in Sources */,
-				C6F9ECEE105335BD0059C3BA /* mailmime.c in Sources */,
-				C6F9ECF0105335BD0059C3BA /* mailmime_content.c in Sources */,
-				C6F9ECF2105335BD0059C3BA /* mailmime_decode.c in Sources */,
-				C6F9ECF4105335BD0059C3BA /* mailmime_disposition.c in Sources */,
-				C6F9ECF6105335BD0059C3BA /* mailmime_types.c in Sources */,
-				C6F9ECF8105335BD0059C3BA /* mailmime_types_helper.c in Sources */,
-				C6F9ECFB105335BD0059C3BA /* mailmime_write_file.c in Sources */,
-				C6F9ECFD105335BD0059C3BA /* mailmime_write_generic.c in Sources */,
-				C6F9ECFF105335BD0059C3BA /* mailmime_write_mem.c in Sources */,
-				C6F9ED0C105335BD0059C3BA /* newsnntp.c in Sources */,
-				C6F9ED0E105335BD0059C3BA /* newsnntp_socket.c in Sources */,
-				C6F9ED10105335BD0059C3BA /* newsnntp_ssl.c in Sources */,
-				C6F9ED18105335BD0059C3BA /* mailpop3.c in Sources */,
-				C6F9ED1A105335BD0059C3BA /* mailpop3_helper.c in Sources */,
-				C6F9ED1C105335BD0059C3BA /* mailpop3_socket.c in Sources */,
-				C6F9ED1E105335BD0059C3BA /* mailpop3_ssl.c in Sources */,
-				C6F9ED29105335BD0059C3BA /* mailsmtp.c in Sources */,
-				C6F9ED2B105335BD0059C3BA /* mailsmtp_helper.c in Sources */,
-				C6F9ED2D105335BD0059C3BA /* mailsmtp_socket.c in Sources */,
-				C6F9ED2F105335BD0059C3BA /* mailsmtp_ssl.c in Sources */,
-				C6F9ED39105335BD0059C3BA /* libetpan_version.c in Sources */,
-				C6E5720E1103770400897274 /* quota.c in Sources */,
-				C6E572101103770400897274 /* quota_parser.c in Sources */,
-				C6E572121103770400897274 /* quota_sender.c in Sources */,
-				C6E572141103770400897274 /* quota_types.c in Sources */,
-				C65179E7130E84BD004ADD56 /* namespace.c in Sources */,
-				C65179F5130E85CA004ADD56 /* namespace_parser.c in Sources */,
-				C6517A08130E86C6004ADD56 /* namespace_types.c in Sources */,
-				C6517A0E130E86D3004ADD56 /* namespace_sender.c in Sources */,
-				C6667DEF1342ACCD00969A8E /* xlist.c in Sources */,
-				C60136981776D16A00A5AF45 /* mailimap_oauth2.c in Sources */,
-				C6CE9B1614AA9C8B00D20BA6 /* xgmlabels.c in Sources */,
-				365DFFD215D1C93100F2DD85 /* xgmmsgid.c in Sources */,
-				C6EFB8781433F1F300F805C0 /* mailstream_cfstream.c in Sources */,
-				C64EA7C116A00CC500778456 /* mailimap_id_parser.c in Sources */,
-				C64EA7C516A00CC500778456 /* mailimap_id_sender.c in Sources */,
-				C64EA7C916A00CC500778456 /* mailimap_id_types.c in Sources */,
-				C64EA7CD16A00CC500778456 /* mailimap_id.c in Sources */,
-				C60E7B9A16C3809400A25BF4 /* enable.c in Sources */,
-				C6635C3A16DFF10E0066276E /* condstore_types.c in Sources */,
-				C6635C3B16DFF10E0066276E /* condstore.c in Sources */,
-				C64BB21816E2FC2F000DB34C /* qresync_types.c in Sources */,
-				C64BB21B16E2FC2F000DB34C /* qresync.c in Sources */,
-				C6F61F741701409B0073032E /* xgmthrid.c in Sources */,
-				8A75ECDA17040F92007F9972 /* mailimap_sort.c in Sources */,
-				8A75ECE6170414BA007F9972 /* mailimap_sort_types.c in Sources */,
-				2307A00C170AAA5500C43C59 /* mailstream_compress.c in Sources */,
-				C668E2DA1736004400A2BB47 /* mailimap_compress.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		C682E21B15B315EF00BE9DA7 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				C682E21C15B315EF00BE9DA7 /* acl.c in Sources */,
-				C682E21D15B315EF00BE9DA7 /* acl_parser.c in Sources */,
-				C682E21E15B315EF00BE9DA7 /* acl_sender.c in Sources */,
-				C682E21F15B315EF00BE9DA7 /* acl_types.c in Sources */,
-				C682E22015B315EF00BE9DA7 /* annotatemore.c in Sources */,
-				C682E22115B315EF00BE9DA7 /* annotatemore_parser.c in Sources */,
-				C682E22215B315EF00BE9DA7 /* annotatemore_sender.c in Sources */,
-				C682E22315B315EF00BE9DA7 /* annotatemore_types.c in Sources */,
-				C682E22415B315EF00BE9DA7 /* base64.c in Sources */,
-				C682E22515B315EF00BE9DA7 /* carray.c in Sources */,
-				C682E22615B315EF00BE9DA7 /* charconv.c in Sources */,
-				C682E22715B315EF00BE9DA7 /* chash.c in Sources */,
-				C682E22815B315EF00BE9DA7 /* clist.c in Sources */,
-				C682E22915B315EF00BE9DA7 /* connect.c in Sources */,
-				C682E22A15B315EF00BE9DA7 /* data_message_driver.c in Sources */,
-				C682E22B15B315EF00BE9DA7 /* date.c in Sources */,
-				C682E22C15B315EF00BE9DA7 /* dbdriver.c in Sources */,
-				C682E22D15B315EF00BE9DA7 /* dbdriver_message.c in Sources */,
-				C682E22E15B315EF00BE9DA7 /* dbstorage.c in Sources */,
-				C682E22F15B315EF00BE9DA7 /* feeddriver.c in Sources */,
-				C682E23015B315EF00BE9DA7 /* feeddriver_message.c in Sources */,
-				C682E23115B315EF00BE9DA7 /* feedstorage.c in Sources */,
-				C682E23215B315EF00BE9DA7 /* generic_cache.c in Sources */,
-				C682E23315B315EF00BE9DA7 /* hotmailstorage.c in Sources */,
-				C682E23415B315EF00BE9DA7 /* idle.c in Sources */,
-				C682E23515B315EF00BE9DA7 /* imapdriver.c in Sources */,
-				C682E23615B315EF00BE9DA7 /* imapdriver_cached.c in Sources */,
-				C682E23715B315EF00BE9DA7 /* imapdriver_cached_message.c in Sources */,
-				C682E23815B315EF00BE9DA7 /* imapdriver_message.c in Sources */,
-				C682E23915B315EF00BE9DA7 /* imapdriver_tools.c in Sources */,
-				C682E23A15B315EF00BE9DA7 /* imapstorage.c in Sources */,
-				C682E23B15B315EF00BE9DA7 /* imfcache.c in Sources */,
-				C682E23C15B315EF00BE9DA7 /* libetpan_version.c in Sources */,
-				C682E23D15B315EF00BE9DA7 /* mail_cache_db.c in Sources */,
-				C682E23E15B315EF00BE9DA7 /* maildir.c in Sources */,
-				C682E23F15B315EF00BE9DA7 /* maildirdriver.c in Sources */,
-				C682E24015B315EF00BE9DA7 /* maildirdriver_cached.c in Sources */,
-				C682E24115B315EF00BE9DA7 /* maildirdriver_cached_message.c in Sources */,
-				C682E24215B315EF00BE9DA7 /* maildirdriver_message.c in Sources */,
-				C682E24315B315EF00BE9DA7 /* maildirdriver_tools.c in Sources */,
-				C682E24415B315EF00BE9DA7 /* maildirstorage.c in Sources */,
-				C682E24515B315EF00BE9DA7 /* maildriver.c in Sources */,
-				C682E24615B315EF00BE9DA7 /* maildriver_tools.c in Sources */,
-				C682E24715B315EF00BE9DA7 /* maildriver_types.c in Sources */,
-				C682E24815B315EF00BE9DA7 /* maildriver_types_helper.c in Sources */,
-				C682E24915B315EF00BE9DA7 /* mailengine.c in Sources */,
-				C682E24A15B315EF00BE9DA7 /* mailfolder.c in Sources */,
-				C682E24B15B315EF00BE9DA7 /* mailimap.c in Sources */,
-				C682E24C15B315EF00BE9DA7 /* mailimap_extension.c in Sources */,
-				C682E24D15B315EF00BE9DA7 /* mailimap_helper.c in Sources */,
-				C682E24E15B315EF00BE9DA7 /* mailimap_keywords.c in Sources */,
-				C682E24F15B315EF00BE9DA7 /* mailimap_parser.c in Sources */,
-				C682E25015B315EF00BE9DA7 /* mailimap_print.c in Sources */,
-				C682E25115B315EF00BE9DA7 /* mailimap_sender.c in Sources */,
-				C682E25215B315EF00BE9DA7 /* mailimap_socket.c in Sources */,
-				C682E25315B315EF00BE9DA7 /* mailimap_ssl.c in Sources */,
-				C682E25415B315EF00BE9DA7 /* mailimap_types.c in Sources */,
-				C682E25515B315EF00BE9DA7 /* mailimap_types_helper.c in Sources */,
-				C682E25615B315EF00BE9DA7 /* mailimf.c in Sources */,
-				C682E25715B315EF00BE9DA7 /* mailimf_types.c in Sources */,
-				C682E25815B315EF00BE9DA7 /* mailimf_types_helper.c in Sources */,
-				C682E25915B315EF00BE9DA7 /* mailimf_write_file.c in Sources */,
-				C682E25A15B315EF00BE9DA7 /* mailimf_write_generic.c in Sources */,
-				C682E25B15B315EF00BE9DA7 /* mailimf_write_mem.c in Sources */,
-				C682E25C15B315EF00BE9DA7 /* maillock.c in Sources */,
-				C682E25D15B315EF00BE9DA7 /* mailmbox.c in Sources */,
-				C682E25E15B315EF00BE9DA7 /* mailmbox_parse.c in Sources */,
-				C682E25F15B315EF00BE9DA7 /* mailmbox_types.c in Sources */,
-				C682E26015B315EF00BE9DA7 /* mailmessage.c in Sources */,
-				C682E26115B315EF00BE9DA7 /* mailmessage_tools.c in Sources */,
-				C682E26215B315EF00BE9DA7 /* mailmessage_types.c in Sources */,
-				C682E26315B315EF00BE9DA7 /* mailmh.c in Sources */,
-				C682E26415B315EF00BE9DA7 /* mailmime.c in Sources */,
-				C682E26515B315EF00BE9DA7 /* mailmime_content.c in Sources */,
-				C682E26615B315EF00BE9DA7 /* mailmime_decode.c in Sources */,
-				C682E26715B315EF00BE9DA7 /* mailmime_disposition.c in Sources */,
-				C682E26815B315EF00BE9DA7 /* mailmime_types.c in Sources */,
-				C682E26915B315EF00BE9DA7 /* mailmime_types_helper.c in Sources */,
-				C682E26A15B315EF00BE9DA7 /* mailmime_write_file.c in Sources */,
-				C682E26B15B315EF00BE9DA7 /* mailmime_write_generic.c in Sources */,
-				C682E26C15B315EF00BE9DA7 /* mailmime_write_mem.c in Sources */,
-				C682E26D15B315EF00BE9DA7 /* mailpop3.c in Sources */,
-				C682E26E15B315EF00BE9DA7 /* mailpop3_helper.c in Sources */,
-				C682E26F15B315EF00BE9DA7 /* mailpop3_socket.c in Sources */,
-				C682E27015B315EF00BE9DA7 /* mailpop3_ssl.c in Sources */,
-				C682E27115B315EF00BE9DA7 /* mailprivacy.c in Sources */,
-				C682E27215B315EF00BE9DA7 /* mailprivacy_gnupg.c in Sources */,
-				C682E27315B315EF00BE9DA7 /* mailprivacy_smime.c in Sources */,
-				C682E27415B315EF00BE9DA7 /* mailprivacy_tools.c in Sources */,
-				C682E27515B315EF00BE9DA7 /* mailsasl.c in Sources */,
-				C682E27615B315EF00BE9DA7 /* mailsem.c in Sources */,
-				C682E27715B315EF00BE9DA7 /* mailsmtp.c in Sources */,
-				C682E27815B315EF00BE9DA7 /* mailsmtp_helper.c in Sources */,
-				C682E27915B315EF00BE9DA7 /* mailsmtp_socket.c in Sources */,
-				C682E27A15B315EF00BE9DA7 /* mailsmtp_ssl.c in Sources */,
-				C682E27B15B315EF00BE9DA7 /* mailstorage.c in Sources */,
-				C682E27C15B315EF00BE9DA7 /* mailstorage_tools.c in Sources */,
-				C682E27D15B315EF00BE9DA7 /* mailstream.c in Sources */,
-				C682E27E15B315EF00BE9DA7 /* mailstream_cancel.c in Sources */,
-				C682E27F15B315EF00BE9DA7 /* mailstream_helper.c in Sources */,
-				C682E28015B315EF00BE9DA7 /* mailstream_low.c in Sources */,
-				C682E28115B315EF00BE9DA7 /* mailstream_socket.c in Sources */,
-				C682E28215B315EF00BE9DA7 /* mailstream_ssl.c in Sources */,
-				C682E28315B315EF00BE9DA7 /* mailthread.c in Sources */,
-				C682E28415B315EF00BE9DA7 /* mailthread_types.c in Sources */,
-				C682E28515B315EF00BE9DA7 /* mboxdriver.c in Sources */,
-				C682E28615B315EF00BE9DA7 /* mboxdriver_cached.c in Sources */,
-				C682E28715B315EF00BE9DA7 /* mboxdriver_cached_message.c in Sources */,
-				C682E28815B315EF00BE9DA7 /* mboxdriver_message.c in Sources */,
-				C682E28915B315EF00BE9DA7 /* mboxdriver_tools.c in Sources */,
-				C682E28A15B315EF00BE9DA7 /* mboxstorage.c in Sources */,
-				C682E28B15B315EF00BE9DA7 /* md5.c in Sources */,
-				C682E28C15B315EF00BE9DA7 /* mhdriver.c in Sources */,
-				C682E28D15B315EF00BE9DA7 /* mhdriver_cached.c in Sources */,
-				C682E28E15B315EF00BE9DA7 /* mhdriver_cached_message.c in Sources */,
-				C682E28F15B315EF00BE9DA7 /* mhdriver_message.c in Sources */,
-				C682E29015B315EF00BE9DA7 /* mhdriver_tools.c in Sources */,
-				C682E29115B315EF00BE9DA7 /* mhstorage.c in Sources */,
-				C682E29215B315EF00BE9DA7 /* mime_message_driver.c in Sources */,
-				C682E29315B315EF00BE9DA7 /* mmapstring.c in Sources */,
-				C682E29415B315EF00BE9DA7 /* newsfeed.c in Sources */,
-				C64DC01A1788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */,
-				C682E29515B315EF00BE9DA7 /* newsfeed_item.c in Sources */,
-				C682E29615B315EF00BE9DA7 /* newsfeed_item_enclosure.c in Sources */,
-				C682E29715B315EF00BE9DA7 /* newsfeed_private.c in Sources */,
-				C682E29815B315EF00BE9DA7 /* newsnntp.c in Sources */,
-				C682E29915B315EF00BE9DA7 /* newsnntp_socket.c in Sources */,
-				C682E29A15B315EF00BE9DA7 /* newsnntp_ssl.c in Sources */,
-				C682E29B15B315EF00BE9DA7 /* nntpdriver.c in Sources */,
-				C682E29C15B315EF00BE9DA7 /* nntpdriver_cached.c in Sources */,
-				C682E29D15B315EF00BE9DA7 /* nntpdriver_cached_message.c in Sources */,
-				C682E29E15B315EF00BE9DA7 /* nntpdriver_message.c in Sources */,
-				C682E29F15B315EF00BE9DA7 /* nntpdriver_tools.c in Sources */,
-				C682E2A015B315EF00BE9DA7 /* nntpstorage.c in Sources */,
-				C682E2A115B315EF00BE9DA7 /* parser.c in Sources */,
-				C682E2A215B315EF00BE9DA7 /* parser_atom03.c in Sources */,
-				C682E2A315B315EF00BE9DA7 /* parser_atom10.c in Sources */,
-				C682E2A415B315EF00BE9DA7 /* parser_rdf.c in Sources */,
-				C682E2A515B315EF00BE9DA7 /* parser_rss20.c in Sources */,
-				C682E2A615B315EF00BE9DA7 /* pop3driver.c in Sources */,
-				C682E2A715B315EF00BE9DA7 /* pop3driver_cached.c in Sources */,
-				C682E2A815B315EF00BE9DA7 /* pop3driver_cached_message.c in Sources */,
-				C682E2A915B315EF00BE9DA7 /* pop3driver_message.c in Sources */,
-				C682E2AA15B315EF00BE9DA7 /* pop3driver_tools.c in Sources */,
-				C682E2AB15B315EF00BE9DA7 /* pop3storage.c in Sources */,
-				C682E2AC15B315EF00BE9DA7 /* timeutils.c in Sources */,
-				C682E2AD15B315EF00BE9DA7 /* uidplus.c in Sources */,
-				C682E2AE15B315EF00BE9DA7 /* uidplus_parser.c in Sources */,
-				C682E2AF15B315EF00BE9DA7 /* uidplus_sender.c in Sources */,
-				C682E2B015B315EF00BE9DA7 /* uidplus_types.c in Sources */,
-				C682E2B115B315EF00BE9DA7 /* quota_parser.c in Sources */,
-				C682E2B215B315EF00BE9DA7 /* quota_sender.c in Sources */,
-				C682E2B315B315EF00BE9DA7 /* quota_types.c in Sources */,
-				C682E2B415B315EF00BE9DA7 /* quota.c in Sources */,
-				C682E2B515B315EF00BE9DA7 /* namespace.c in Sources */,
-				C682E2B615B315EF00BE9DA7 /* namespace_parser.c in Sources */,
-				C682E2B715B315EF00BE9DA7 /* namespace_types.c in Sources */,
-				C682E2B815B315EF00BE9DA7 /* namespace_sender.c in Sources */,
-				C682E2B915B315EF00BE9DA7 /* xlist.c in Sources */,
-				C601369A1776D16A00A5AF45 /* mailimap_oauth2.c in Sources */,
-				C682E2BA15B315EF00BE9DA7 /* mailstream_cfstream.c in Sources */,
-				C682E2BB15B315EF00BE9DA7 /* xgmlabels.c in Sources */,
-				C64EA7B816A00CA700778456 /* xgmmsgid.c in Sources */,
-				C64EA7C316A00CC500778456 /* mailimap_id_parser.c in Sources */,
-				C64EA7C716A00CC500778456 /* mailimap_id_sender.c in Sources */,
-				C64EA7CB16A00CC500778456 /* mailimap_id_types.c in Sources */,
-				C64EA7CF16A00CC500778456 /* mailimap_id.c in Sources */,
-				C60E7B9E16C3809D00A25BF4 /* enable.c in Sources */,
-				C6CC501616E11074001E7392 /* condstore.c in Sources */,
-				C6CC501816E1107A001E7392 /* condstore_types.c in Sources */,
-				C64BB21A16E2FC2F000DB34C /* qresync_types.c in Sources */,
-				C64BB21D16E2FC2F000DB34C /* qresync.c in Sources */,
-				C6F61F761701409B0073032E /* xgmthrid.c in Sources */,
-				8A75ECDC17040F92007F9972 /* mailimap_sort.c in Sources */,
-				8A75ECE8170414BA007F9972 /* mailimap_sort_types.c in Sources */,
-				C668E2DC1736004400A2BB47 /* mailimap_compress.c in Sources */,
-				C668E2FA173E18BA00A2BB47 /* mailstream_compress.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		C69AB10710546FE500F32FBD /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				C69AB1981054704000F32FBD /* acl.c in Sources */,
-				C69AB19A1054704000F32FBD /* acl_parser.c in Sources */,
-				C69AB19C1054704000F32FBD /* acl_sender.c in Sources */,
-				C69AB19E1054704000F32FBD /* acl_types.c in Sources */,
-				C69AB1A01054704000F32FBD /* annotatemore.c in Sources */,
-				C69AB1A21054704000F32FBD /* annotatemore_parser.c in Sources */,
-				C69AB1A41054704000F32FBD /* annotatemore_sender.c in Sources */,
-				C69AB1A61054704000F32FBD /* annotatemore_types.c in Sources */,
-				C69AB1A81054704000F32FBD /* base64.c in Sources */,
-				C69AB1AA1054704000F32FBD /* carray.c in Sources */,
-				C69AB1AC1054704000F32FBD /* charconv.c in Sources */,
-				C69AB1AE1054704000F32FBD /* chash.c in Sources */,
-				C69AB1B01054704000F32FBD /* clist.c in Sources */,
-				C69AB1B21054704000F32FBD /* connect.c in Sources */,
-				C69AB1B41054704000F32FBD /* data_message_driver.c in Sources */,
-				C69AB1B61054704000F32FBD /* date.c in Sources */,
-				C69AB1B81054704000F32FBD /* dbdriver.c in Sources */,
-				C69AB1BA1054704000F32FBD /* dbdriver_message.c in Sources */,
-				C69AB1BD1054704000F32FBD /* dbstorage.c in Sources */,
-				C69AB1BF1054704000F32FBD /* feeddriver.c in Sources */,
-				C69AB1C11054704000F32FBD /* feeddriver_message.c in Sources */,
-				C69AB1C41054704000F32FBD /* feedstorage.c in Sources */,
-				C69AB1C61054704000F32FBD /* generic_cache.c in Sources */,
-				C69AB1CA1054704000F32FBD /* hotmailstorage.c in Sources */,
-				C69AB1CC1054704000F32FBD /* idle.c in Sources */,
-				C69AB1CE1054704000F32FBD /* imapdriver.c in Sources */,
-				C69AB1D01054704000F32FBD /* imapdriver_cached.c in Sources */,
-				C69AB1D21054704000F32FBD /* imapdriver_cached_message.c in Sources */,
-				C69AB1D41054704000F32FBD /* imapdriver_message.c in Sources */,
-				C69AB1D61054704000F32FBD /* imapdriver_tools.c in Sources */,
-				C69AB1DA1054704000F32FBD /* imapstorage.c in Sources */,
-				C69AB1DC1054704000F32FBD /* imfcache.c in Sources */,
-				C69AB1DF1054704000F32FBD /* libetpan_version.c in Sources */,
-				C69AB1E11054704000F32FBD /* mail_cache_db.c in Sources */,
-				C69AB1E41054704000F32FBD /* maildir.c in Sources */,
-				C69AB1E71054704000F32FBD /* maildirdriver.c in Sources */,
-				C69AB1E91054704000F32FBD /* maildirdriver_cached.c in Sources */,
-				C69AB1EB1054704000F32FBD /* maildirdriver_cached_message.c in Sources */,
-				C69AB1ED1054704000F32FBD /* maildirdriver_message.c in Sources */,
-				C69AB1EF1054704000F32FBD /* maildirdriver_tools.c in Sources */,
-				C69AB1F21054704000F32FBD /* maildirstorage.c in Sources */,
-				C69AB1F41054704000F32FBD /* maildriver.c in Sources */,
-				C69AB1F71054704000F32FBD /* maildriver_tools.c in Sources */,
-				C69AB1F91054704000F32FBD /* maildriver_types.c in Sources */,
-				C69AB1FB1054704000F32FBD /* maildriver_types_helper.c in Sources */,
-				C69AB1FD1054704000F32FBD /* mailengine.c in Sources */,
-				C69AB1FF1054704000F32FBD /* mailfolder.c in Sources */,
-				C69AB2011054704000F32FBD /* mailimap.c in Sources */,
-				C69AB2031054704000F32FBD /* mailimap_extension.c in Sources */,
-				C69AB2061054704000F32FBD /* mailimap_helper.c in Sources */,
-				C69AB2081054704000F32FBD /* mailimap_keywords.c in Sources */,
-				C69AB20A1054704000F32FBD /* mailimap_parser.c in Sources */,
-				C69AB20C1054704000F32FBD /* mailimap_print.c in Sources */,
-				C69AB20E1054704000F32FBD /* mailimap_sender.c in Sources */,
-				C69AB2101054704000F32FBD /* mailimap_socket.c in Sources */,
-				C69AB2121054704000F32FBD /* mailimap_ssl.c in Sources */,
-				C69AB2141054704000F32FBD /* mailimap_types.c in Sources */,
-				C69AB2161054704000F32FBD /* mailimap_types_helper.c in Sources */,
-				C69AB2181054704000F32FBD /* mailimf.c in Sources */,
-				C69AB21A1054704000F32FBD /* mailimf_types.c in Sources */,
-				C69AB21C1054704000F32FBD /* mailimf_types_helper.c in Sources */,
-				C69AB21F1054704000F32FBD /* mailimf_write_file.c in Sources */,
-				C69AB2211054704000F32FBD /* mailimf_write_generic.c in Sources */,
-				C69AB2231054704000F32FBD /* mailimf_write_mem.c in Sources */,
-				C69AB2251054704000F32FBD /* maillock.c in Sources */,
-				C69AB2271054704000F32FBD /* mailmbox.c in Sources */,
-				C69AB2291054704000F32FBD /* mailmbox_parse.c in Sources */,
-				C69AB22B1054704000F32FBD /* mailmbox_types.c in Sources */,
-				C69AB22D1054704000F32FBD /* mailmessage.c in Sources */,
-				C69AB22F1054704000F32FBD /* mailmessage_tools.c in Sources */,
-				C69AB2311054704000F32FBD /* mailmessage_types.c in Sources */,
-				C69AB2331054704000F32FBD /* mailmh.c in Sources */,
-				C69AB2351054704000F32FBD /* mailmime.c in Sources */,
-				C69AB2371054704000F32FBD /* mailmime_content.c in Sources */,
-				C69AB2391054704000F32FBD /* mailmime_decode.c in Sources */,
-				C69AB23B1054704000F32FBD /* mailmime_disposition.c in Sources */,
-				C69AB23D1054704000F32FBD /* mailmime_types.c in Sources */,
-				C69AB23F1054704000F32FBD /* mailmime_types_helper.c in Sources */,
-				C69AB2421054704000F32FBD /* mailmime_write_file.c in Sources */,
-				C69AB2441054704000F32FBD /* mailmime_write_generic.c in Sources */,
-				C69AB2461054704000F32FBD /* mailmime_write_mem.c in Sources */,
-				C69AB2481054704000F32FBD /* mailpop3.c in Sources */,
-				C69AB24A1054704000F32FBD /* mailpop3_helper.c in Sources */,
-				C69AB24C1054704000F32FBD /* mailpop3_socket.c in Sources */,
-				C69AB24E1054704000F32FBD /* mailpop3_ssl.c in Sources */,
-				C69AB2511054704000F32FBD /* mailprivacy.c in Sources */,
-				C69AB2531054704000F32FBD /* mailprivacy_gnupg.c in Sources */,
-				C69AB2551054704000F32FBD /* mailprivacy_smime.c in Sources */,
-				C69AB2571054704000F32FBD /* mailprivacy_tools.c in Sources */,
-				C69AB25B1054704000F32FBD /* mailsasl.c in Sources */,
-				C69AB25D1054704000F32FBD /* mailsem.c in Sources */,
-				C69AB25F1054704000F32FBD /* mailsmtp.c in Sources */,
-				C69AB2611054704000F32FBD /* mailsmtp_helper.c in Sources */,
-				C69AB2631054704000F32FBD /* mailsmtp_socket.c in Sources */,
-				C69AB2651054704000F32FBD /* mailsmtp_ssl.c in Sources */,
-				C69AB2681054704000F32FBD /* mailstorage.c in Sources */,
-				C69AB26A1054704000F32FBD /* mailstorage_tools.c in Sources */,
-				C69AB26D1054704000F32FBD /* mailstream.c in Sources */,
-				C69AB26F1054704000F32FBD /* mailstream_cancel.c in Sources */,
-				C69AB2721054704000F32FBD /* mailstream_helper.c in Sources */,
-				C69AB2741054704000F32FBD /* mailstream_low.c in Sources */,
-				C69AB2761054704000F32FBD /* mailstream_socket.c in Sources */,
-				C69AB2781054704000F32FBD /* mailstream_ssl.c in Sources */,
-				C69AB27C1054704000F32FBD /* mailthread.c in Sources */,
-				C69AB27E1054704000F32FBD /* mailthread_types.c in Sources */,
-				C69AB2801054704000F32FBD /* mboxdriver.c in Sources */,
-				C69AB2821054704000F32FBD /* mboxdriver_cached.c in Sources */,
-				C69AB2841054704000F32FBD /* mboxdriver_cached_message.c in Sources */,
-				C69AB2861054704000F32FBD /* mboxdriver_message.c in Sources */,
-				C69AB2881054704000F32FBD /* mboxdriver_tools.c in Sources */,
-				C69AB28B1054704000F32FBD /* mboxstorage.c in Sources */,
-				C69AB28D1054704000F32FBD /* md5.c in Sources */,
-				C69AB2901054704000F32FBD /* mhdriver.c in Sources */,
-				C69AB2921054704000F32FBD /* mhdriver_cached.c in Sources */,
-				C69AB2941054704000F32FBD /* mhdriver_cached_message.c in Sources */,
-				C69AB2961054704000F32FBD /* mhdriver_message.c in Sources */,
-				C69AB2981054704000F32FBD /* mhdriver_tools.c in Sources */,
-				C69AB29B1054704000F32FBD /* mhstorage.c in Sources */,
-				C69AB29D1054704000F32FBD /* mime_message_driver.c in Sources */,
-				C69AB29F1054704000F32FBD /* mmapstring.c in Sources */,
-				C69AB2A21054704000F32FBD /* newsfeed.c in Sources */,
-				C64DC0191788AB3C0012CA0B /* mailsmtp_oauth2.c in Sources */,
-				C69AB2A41054704000F32FBD /* newsfeed_item.c in Sources */,
-				C69AB2A61054704000F32FBD /* newsfeed_item_enclosure.c in Sources */,
-				C69AB2A81054704000F32FBD /* newsfeed_private.c in Sources */,
-				C69AB2AB1054704000F32FBD /* newsnntp.c in Sources */,
-				C69AB2AD1054704000F32FBD /* newsnntp_socket.c in Sources */,
-				C69AB2AF1054704000F32FBD /* newsnntp_ssl.c in Sources */,
-				C69AB2B21054704000F32FBD /* nntpdriver.c in Sources */,
-				C69AB2B41054704000F32FBD /* nntpdriver_cached.c in Sources */,
-				C69AB2B61054704000F32FBD /* nntpdriver_cached_message.c in Sources */,
-				C69AB2B81054704000F32FBD /* nntpdriver_message.c in Sources */,
-				C69AB2BA1054704000F32FBD /* nntpdriver_tools.c in Sources */,
-				C69AB2BD1054704000F32FBD /* nntpstorage.c in Sources */,
-				C69AB2BF1054704000F32FBD /* parser.c in Sources */,
-				C69AB2C11054704000F32FBD /* parser_atom03.c in Sources */,
-				C69AB2C31054704000F32FBD /* parser_atom10.c in Sources */,
-				C69AB2C51054704000F32FBD /* parser_rdf.c in Sources */,
-				C69AB2C71054704000F32FBD /* parser_rss20.c in Sources */,
-				C69AB2C91054704000F32FBD /* pop3driver.c in Sources */,
-				C69AB2CB1054704000F32FBD /* pop3driver_cached.c in Sources */,
-				C69AB2CD1054704000F32FBD /* pop3driver_cached_message.c in Sources */,
-				C69AB2CF1054704000F32FBD /* pop3driver_message.c in Sources */,
-				C69AB2D11054704000F32FBD /* pop3driver_tools.c in Sources */,
-				C69AB2D41054704000F32FBD /* pop3storage.c in Sources */,
-				C69AB2D61054704000F32FBD /* timeutils.c in Sources */,
-				C69AB2D81054704000F32FBD /* uidplus.c in Sources */,
-				C69AB2DA1054704000F32FBD /* uidplus_parser.c in Sources */,
-				C69AB2DC1054704000F32FBD /* uidplus_sender.c in Sources */,
-				C69AB2DE1054704000F32FBD /* uidplus_types.c in Sources */,
-				C6E57202110376F200897274 /* quota_parser.c in Sources */,
-				C6E57203110376F200897274 /* quota_sender.c in Sources */,
-				C6E57204110376F200897274 /* quota_types.c in Sources */,
-				C6E57205110376F200897274 /* quota.c in Sources */,
-				C65179E5130E84BD004ADD56 /* namespace.c in Sources */,
-				C65179F2130E85CA004ADD56 /* namespace_parser.c in Sources */,
-				C6517A0A130E86C6004ADD56 /* namespace_types.c in Sources */,
-				C6517A10130E86D3004ADD56 /* namespace_sender.c in Sources */,
-				C6667DF11342ACCD00969A8E /* xlist.c in Sources */,
-				C60136991776D16A00A5AF45 /* mailimap_oauth2.c in Sources */,
-				C6EFB87A1433F1F300F805C0 /* mailstream_cfstream.c in Sources */,
-				C69AD25F14AB2062003D04D5 /* xgmlabels.c in Sources */,
-				C64EA7B716A00CA700778456 /* xgmmsgid.c in Sources */,
-				C64EA7C216A00CC500778456 /* mailimap_id_parser.c in Sources */,
-				C64EA7C616A00CC500778456 /* mailimap_id_sender.c in Sources */,
-				C64EA7CA16A00CC500778456 /* mailimap_id_types.c in Sources */,
-				C64EA7CE16A00CC500778456 /* mailimap_id.c in Sources */,
-				C60E7B9D16C3809C00A25BF4 /* enable.c in Sources */,
-				C6CC501516E11074001E7392 /* condstore.c in Sources */,
-				C6CC501716E11079001E7392 /* condstore_types.c in Sources */,
-				C64BB21916E2FC2F000DB34C /* qresync_types.c in Sources */,
-				C64BB21C16E2FC2F000DB34C /* qresync.c in Sources */,
-				C6F61F751701409B0073032E /* xgmthrid.c in Sources */,
-				8A75ECDB17040F92007F9972 /* mailimap_sort.c in Sources */,
-				8A75ECE7170414BA007F9972 /* mailimap_sort_types.c in Sources */,
-				C668E2DB1736004400A2BB47 /* mailimap_compress.c in Sources */,
-				C668E2F9173E18B900A2BB47 /* mailstream_compress.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		C6635C4816E000310066276E /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = C6635C4316DFFE6E0066276E /* libetpan-prepare */;
-			targetProxy = C6635C4716E000310066276E /* PBXContainerItemProxy */;
-		};
-		C6635C4A16E000340066276E /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = C6635C4316DFFE6E0066276E /* libetpan-prepare */;
-			targetProxy = C6635C4916E000340066276E /* PBXContainerItemProxy */;
-		};
-		C6635C5216E0027B0066276E /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = C6635C4D16E002340066276E /* libetpan-prepare-ios */;
-			targetProxy = C6635C5116E0027B0066276E /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB91AE08733DA50010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COMBINE_HIDPI_IMAGES = YES;
-				COPY_PHASE_STRIP = NO;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				FRAMEWORK_VERSION = A;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INFOPLIST_FILE = Info.plist;
-				INSTALL_PATH = "@loader_path/../Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.etpan.${PRODUCT_NAME:identifier}";
-				PRODUCT_NAME = libetpan;
-				SDKROOT = macosx;
-				WRAPPER_EXTENSION = framework;
-			};
-			name = Debug;
-		};
-		1DEB91AF08733DA50010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COMBINE_HIDPI_IMAGES = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				FRAMEWORK_VERSION = A;
-				GCC_MODEL_TUNING = G5;
-				INFOPLIST_FILE = Info.plist;
-				INSTALL_PATH = "@loader_path/../Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.etpan.${PRODUCT_NAME:identifier}";
-				PRODUCT_NAME = libetpan;
-				SDKROOT = macosx;
-				STRIP_INSTALLED_PRODUCT = YES;
-				WRAPPER_EXTENSION = framework;
-			};
-			name = Release;
-		};
-		1DEB91B208733DA50010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(SRCROOT)/..",
-					"$(SRCROOT)/include",
-				);
-				ONLY_ACTIVE_ARCH = YES;
-				OTHER_CFLAGS = (
-					"-DHAVE_CFNETWORK=1",
-					"-DHAVE_CONFIG_H=1",
-					"-DLIBETPAN_IOS_DISABLE_SSL=1",
-				);
-			};
-			name = Debug;
-		};
-		1DEB91B308733DA50010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(SRCROOT)/..",
-					"$(SRCROOT)/include",
-				);
-				OTHER_CFLAGS = (
-					"-DHAVE_CFNETWORK=1",
-					"-DHAVE_CONFIG_H=1",
-					"-DLIBETPAN_IOS_DISABLE_SSL=1",
-				);
-			};
-			name = Release;
-		};
-		C6635C4516DFFE6E0066276E /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				SDKROOT = macosx;
-			};
-			name = Debug;
-		};
-		C6635C4616DFFE6E0066276E /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				SDKROOT = macosx;
-			};
-			name = Release;
-		};
-		C6635C4F16E002340066276E /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				PLATFORM_NAME = iphoneos;
-				SDKROOT = iphoneos;
-			};
-			name = Debug;
-		};
-		C6635C5016E002340066276E /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				PLATFORM_NAME = iphoneos;
-				SDKROOT = iphoneos;
-			};
-			name = Release;
-		};
-		C682E2BE15B315EF00BE9DA7 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COPY_PHASE_STRIP = NO;
-				ENABLE_BITCODE = YES;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(SRCROOT)/libsasl-ios/include",
-				);
-				INSTALL_PATH = /usr/local/lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/libsasl-ios/lib";
-				PRODUCT_NAME = "etpan-ios";
-				SDKROOT = iphoneos;
-				SKIP_INSTALL = YES;
-			};
-			name = Debug;
-		};
-		C682E2BF15B315EF00BE9DA7 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_BITCODE = YES;
-				GCC_MODEL_TUNING = G5;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(SRCROOT)/libsasl-ios/include",
-				);
-				INSTALL_PATH = /usr/local/lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/libsasl-ios/lib";
-				PRODUCT_NAME = "etpan-ios";
-				SDKROOT = iphoneos;
-				SKIP_INSTALL = YES;
-				ZERO_LINK = NO;
-			};
-			name = Release;
-		};
-		C69AB10B10546FE600F32FBD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COMBINE_HIDPI_IMAGES = YES;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INSTALL_PATH = /usr/local/lib;
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				PRODUCT_NAME = etpan;
-				SDKROOT = macosx;
-				SKIP_INSTALL = YES;
-			};
-			name = Debug;
-		};
-		C69AB10C10546FE600F32FBD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				COMBINE_HIDPI_IMAGES = YES;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = /usr/local/lib;
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
-				PRODUCT_NAME = etpan;
-				SDKROOT = macosx;
-				SKIP_INSTALL = YES;
-				ZERO_LINK = NO;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "libetpan" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB91AE08733DA50010E9CD /* Debug */,
-				1DEB91AF08733DA50010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "libetpan" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB91B208733DA50010E9CD /* Debug */,
-				1DEB91B308733DA50010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		C6635C4416DFFE6E0066276E /* Build configuration list for PBXLegacyTarget "libetpan-prepare" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C6635C4516DFFE6E0066276E /* Debug */,
-				C6635C4616DFFE6E0066276E /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		C6635C4E16E002340066276E /* Build configuration list for PBXLegacyTarget "libetpan-prepare-ios" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C6635C4F16E002340066276E /* Debug */,
-				C6635C5016E002340066276E /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		C682E2BD15B315EF00BE9DA7 /* Build configuration list for PBXNativeTarget "libetpan ios" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C682E2BE15B315EF00BE9DA7 /* Debug */,
-				C682E2BF15B315EF00BE9DA7 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		C69AB10D1054700400F32FBD /* Build configuration list for PBXNativeTarget "static libetpan" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C69AB10B10546FE600F32FBD /* Debug */,
-				C69AB10C10546FE600F32FBD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}

+ 0 - 71
deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/libetpan ios.xcscheme

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "1010"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "C682E21815B315EF00BE9DA7"
-               BuildableName = "libetpan-ios.a"
-               BlueprintName = "libetpan ios"
-               ReferencedContainer = "container:libetpan.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-      </Testables>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "C682E21815B315EF00BE9DA7"
-            BuildableName = "libetpan-ios.a"
-            BlueprintName = "libetpan ios"
-            ReferencedContainer = "container:libetpan.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 71
deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/libetpan.xcscheme

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "1010"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "8DC2EF4F0486A6940098B216"
-               BuildableName = "libetpan.framework"
-               BlueprintName = "libetpan"
-               ReferencedContainer = "container:libetpan.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-      </Testables>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "8DC2EF4F0486A6940098B216"
-            BuildableName = "libetpan.framework"
-            BlueprintName = "libetpan"
-            ReferencedContainer = "container:libetpan.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 71
deltachat-ios/libraries/libetpan/build-mac/libetpan.xcodeproj/xcshareddata/xcschemes/static libetpan.xcscheme

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "1010"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "C69AB10910546FE500F32FBD"
-               BuildableName = "libetpan.a"
-               BlueprintName = "static libetpan"
-               ReferencedContainer = "container:libetpan.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-      </Testables>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "C69AB10910546FE500F32FBD"
-            BuildableName = "libetpan.a"
-            BlueprintName = "static libetpan"
-            ReferencedContainer = "container:libetpan.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 10
deltachat-ios/libraries/libetpan/build-mac/libetpan.xcworkspace/contents.xcworkspacedata

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "container:libetpan.xcodeproj">
-   </FileRef>
-   <FileRef
-      location = "group:libetpan Tests.xcodeproj">
-   </FileRef>
-</Workspace>

+ 0 - 6
deltachat-ios/libraries/libetpan/build-mac/prepare-ios.sh

@@ -1,6 +0,0 @@
-#!/bin/sh
-cd dependencies
-for script in prepare-*.sh ; do
-	echo running $script
-	sh "$script"
-done

+ 0 - 73
deltachat-ios/libraries/libetpan/build-mac/update.sh

@@ -1,73 +0,0 @@
-#!/bin/sh
-if test ! -d libetpan.xcodeproj ; then
-	exit 1;
-fi
-
-logfile="`pwd`/update.log"
-
-cd ..
-
-if test "x$1" = xprepare ; then
-  echo preparing
-  ./autogen.sh > "$logfile" 2>&1
-  tar czf build-mac/autogen-result.tar.gz `find . -name '*.in'` configure install-sh config.sub missing config.guess
-  exit 0
-elif test "x$1" = xprepare-clean ; then
-  if test -f Makefile ; then
-    make maintainer-clean >/dev/null
-    cd build-mac
-    rm -rf libsasl-ios
-    rm -rf dependencies/build
-  fi
-  exit 0
-fi
-
-if test "x$SRCROOT" = x ; then
-  echo Should be run from Xcode
-  exit 1
-fi
-
-if test "x$ACTION" = x ; then
-  ACTION=build
-fi
-
-if test "x$ACTION" = xbuild -o "x$ACTION" = xinstall ; then
-  
-  md5 build-mac/autogen-result.tar.gz > build-mac/autogen-result.md5.new
-  if ! cmp -s build-mac/autogen-result.md5 build-mac/autogen-result.md5.new ; then
-    rm -f Makefile
-  fi
-  rm -f build-mac/autogen-result.md5.new
-  if test ! -f Makefile ; then
-    echo configuring
-    tar xzf build-mac/autogen-result.tar.gz
-    export SDKROOT=
-    export IPHONEOS_DEPLOYMENT_TARGET=
-    ./configure --with-expat=no --with-curl=no --enable-debug > "$logfile" 2>&1
-    if [[ "$?" != "0" ]]; then
-      cat "$logfile"
-      echo "configure failed"
-      exit 1
-    fi
-
-    make stamp-prepare-target >> "$logfile" 2>&1
-    make libetpan-config.h >> "$logfile" 2>&1
-    md5 build-mac/autogen-result.tar.gz > build-mac/autogen-result.md5
-  fi
-  if test "x$PLATFORM_NAME" = xiphoneos -o "x$PLATFORM_NAME" = xiphonesimulator ; then
-    if test ! -d build-mac/libsasl-ios ; then
-      # build dependencies for iOS
-      cd build-mac
-      sh ./prepare-ios.sh
-    fi
-  fi
-elif test "x$ACTION" = xclean ; then
-  if test -f Makefile ; then
-    make distclean >/dev/null
-    cd build-mac
-    rm -f autogen-result.md5
-    rm -rf libsasl-ios
-    rm -rf dependencies/build
-  fi
-fi
-

+ 0 - 35
deltachat-ios/libraries/libetpan/build-windows/Makefile.am

@@ -1,35 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-EXTRA_DIST = libetpan/libetpan.vcxproj \
-	build_headers.bat build_headers.list libetpan-config.h	\
-	libetpan.sln libetpan_version.h readmsg/readmsg.vcxproj	\
-	smtpsend/smtpsend.vcxproj

+ 0 - 39
deltachat-ios/libraries/libetpan/build-windows/README.md

@@ -1,39 +0,0 @@
-## libEtPan on Windows ##
-
-All the provided binaries are compiled in release mode.
-For the debug mode, you need to download the repositories and compile them.
-
-### Binary ###
-
-In case you just need a binary build of libEtPan:
-- [libEtPan](http://d.etpan.org/mailcore2-deps/libetpan-win32/)
-
-Also, you'll need all the dependencies, download the most recent binary builds in:
-
-- [Cyrus SASL](http://d.etpan.org/mailcore2-deps/cyrus-sasl-win32/)
-- [zlib](http://d.etpan.org/mailcore2-deps/zlib-win32/)
-- [OpenSSL](http://d.etpan.org/mailcore2-deps/misc-win32/)
-- [SASL](http://d.etpan.org/mailcore2-deps/cyrus-sasl-win32/)
-
-### Build using Visual Studio 2013 ###
-
-You'll need all the dependencies, download the most recent binary builds in:
-
-- [zlib](http://d.etpan.org/mailcore2-deps/zlib-win32/)
-- [OpenSSL](http://d.etpan.org/mailcore2-deps/misc-win32/)
-- [SASL](http://d.etpan.org/mailcore2-deps/cyrus-sasl-win32/)
-
-#### Instructions for zlib ####
-
-- copy `include`, `lib` and `lib64` folders to `libetpan/third-party`.
-
-#### openssl ####
-
-- copy `bin`, `bin64`, `include`, `lib` and `lib64` to `mailcore2/Externals`.
-
-As a result, in `Externals` folder, you should have the following folders: `include`, `lib`, `lib64`, `bin` and `bin64`.
-
-In `libetpan/build-windows`, using Visual Studio 2013, open `libetpan.sln`.
-Then, build.
-
-Public headers will be located in `libetpan/build-windows/include`.

+ 0 - 4
deltachat-ios/libraries/libetpan/build-windows/StdAfx.h

@@ -1,4 +0,0 @@
-#include "libetpan-config.h"
-
-
-

+ 0 - 4
deltachat-ios/libraries/libetpan/build-windows/build_headers.bat

@@ -1,4 +0,0 @@
-@mkdir include
-@mkdir include\libetpan
-@for /F "delims=" %%a in (build_headers.list) do @copy "..\%%a" include\libetpan
-@echo "done" >_headers_depends

+ 0 - 156
deltachat-ios/libraries/libetpan/build-windows/build_headers.list

@@ -1,156 +0,0 @@
-src\data-types\carray.h
-src\data-types\charconv.h
-src\data-types\chash.h
-src\data-types\clist.h
-src\data-types\maillock.h
-src\data-types\mailsem.h
-src\data-types\mailstream.h
-src\data-types\mailstream_cfstream.h
-src\data-types\mailstream_helper.h
-src\data-types\mailstream_low.h
-src\data-types\mailstream_socket.h
-src\data-types\mailstream_ssl.h
-src\data-types\mailstream_types.h
-src\data-types\mmapstring.h
-src\driver\implementation\data-message\data_message_driver.h
-src\driver\implementation\db\dbdriver.h
-src\driver\implementation\db\dbdriver_message.h
-src\driver\implementation\db\dbdriver_types.h
-src\driver\implementation\db\dbstorage.h
-src\driver\implementation\feed\feeddriver.h
-src\driver\implementation\feed\feeddriver_message.h
-src\driver\implementation\feed\feeddriver_types.h
-src\driver\implementation\feed\feedstorage.h
-src\driver\implementation\hotmail\hotmailstorage.h
-src\driver\implementation\imap\imapdriver.h
-src\driver\implementation\imap\imapdriver_cached.h
-src\driver\implementation\imap\imapdriver_cached_message.h
-src\driver\implementation\imap\imapdriver_message.h
-src\driver\implementation\imap\imapdriver_types.h
-src\driver\implementation\imap\imapstorage.h
-src\driver\implementation\maildir\maildirdriver.h
-src\driver\implementation\maildir\maildirdriver_cached.h
-src\driver\implementation\maildir\maildirdriver_cached_message.h
-src\driver\implementation\maildir\maildirdriver_message.h
-src\driver\implementation\maildir\maildirdriver_types.h
-src\driver\implementation\maildir\maildirstorage.h
-src\driver\implementation\mbox\mboxdriver.h
-src\driver\implementation\mbox\mboxdriver_cached.h
-src\driver\implementation\mbox\mboxdriver_cached_message.h
-src\driver\implementation\mbox\mboxdriver_message.h
-src\driver\implementation\mbox\mboxdriver_types.h
-src\driver\implementation\mbox\mboxstorage.h
-src\driver\implementation\mh\mhdriver.h
-src\driver\implementation\mh\mhdriver_cached.h
-src\driver\implementation\mh\mhdriver_cached_message.h
-src\driver\implementation\mh\mhdriver_message.h
-src\driver\implementation\mh\mhdriver_types.h
-src\driver\implementation\mh\mhstorage.h
-src\driver\implementation\mime-message\mime_message_driver.h
-src\driver\implementation\nntp\nntpdriver.h
-src\driver\implementation\nntp\nntpdriver_cached.h
-src\driver\implementation\nntp\nntpdriver_cached_message.h
-src\driver\implementation\nntp\nntpdriver_message.h
-src\driver\implementation\nntp\nntpdriver_types.h
-src\driver\implementation\nntp\nntpstorage.h
-src\driver\implementation\pop3\pop3driver.h
-src\driver\implementation\pop3\pop3driver_cached.h
-src\driver\implementation\pop3\pop3driver_cached_message.h
-src\driver\implementation\pop3\pop3driver_message.h
-src\driver\implementation\pop3\pop3driver_types.h
-src\driver\implementation\pop3\pop3storage.h
-src\driver\interface\maildriver.h
-src\driver\interface\maildriver_errors.h
-src\driver\interface\maildriver_types.h
-src\driver\interface\maildriver_types_helper.h
-src\driver\interface\mailfolder.h
-src\driver\interface\mailmessage.h
-src\driver\interface\mailmessage_types.h
-src\driver\interface\mailstorage.h
-src\driver\interface\mailstorage_types.h
-src\driver\tools\generic_cache_types.h
-src\driver\tools\mailthread.h
-src\driver\tools\mailthread_types.h
-src\engine\mailengine.h
-src\engine\mailprivacy.h
-src\engine\mailprivacy_gnupg.h
-src\engine\mailprivacy_smime.h
-src\engine\mailprivacy_tools.h
-src\engine\mailprivacy_types.h
-src\low-level\feed\newsfeed.h
-src\low-level\feed\newsfeed_item.h
-src\low-level\feed\newsfeed_item_enclosure.h
-src\low-level\feed\newsfeed_types.h
-src\low-level\imap\acl.h
-src\low-level\imap\acl_types.h
-src\low-level\imap\annotatemore.h
-src\low-level\imap\annotatemore_types.h
-src\low-level\imap\condstore.h
-src\low-level\imap\condstore_types.h
-src\low-level\imap\enable.h
-src\low-level\imap\idle.h
-src\low-level\imap\mailimap.h
-src\low-level\imap\mailimap_compress.h
-src\low-level\imap\mailimap_extension.h
-src\low-level\imap\mailimap_extension_types.h
-src\low-level\imap\mailimap_helper.h
-src\low-level\imap\mailimap_id.h
-src\low-level\imap\mailimap_id_types.h
-src\low-level\imap\mailimap_oauth2.h
-src\low-level\imap\mailimap_socket.h
-src\low-level\imap\mailimap_sort.h
-src\low-level\imap\mailimap_sort_types.h
-src\low-level\imap\mailimap_ssl.h
-src\low-level\imap\mailimap_types.h
-src\low-level\imap\mailimap_types_helper.h
-src\low-level\imap\namespace.h
-src\low-level\imap\namespace_types.h
-src\low-level\imap\qresync.h
-src\low-level\imap\qresync_types.h
-src\low-level\imap\quota.h
-src\low-level\imap\quota_types.h
-src\low-level\imap\uidplus.h
-src\low-level\imap\uidplus_types.h
-src\low-level\imap\xgmlabels.h
-src\low-level\imap\xgmmsgid.h
-src\low-level\imap\xgmthrid.h
-src\low-level\imap\xlist.h
-src\low-level\imf\mailimf.h
-src\low-level\imf\mailimf_types.h
-src\low-level\imf\mailimf_types_helper.h
-src\low-level\imf\mailimf_write_file.h
-src\low-level\imf\mailimf_write_generic.h
-src\low-level\imf\mailimf_write_mem.h
-src\low-level\maildir\maildir.h
-src\low-level\maildir\maildir_types.h
-src\low-level\mbox\mailmbox.h
-src\low-level\mbox\mailmbox_types.h
-src\low-level\mh\mailmh.h
-src\low-level\mime\mailmime.h
-src\low-level\mime\mailmime_content.h
-src\low-level\mime\mailmime_decode.h
-src\low-level\mime\mailmime_disposition.h
-src\low-level\mime\mailmime_types.h
-src\low-level\mime\mailmime_types_helper.h
-src\low-level\mime\mailmime_write_file.h
-src\low-level\mime\mailmime_write_generic.h
-src\low-level\mime\mailmime_write_mem.h
-src\low-level\nntp\newsnntp.h
-src\low-level\nntp\newsnntp_socket.h
-src\low-level\nntp\newsnntp_ssl.h
-src\low-level\nntp\newsnntp_types.h
-src\low-level\pop3\mailpop3.h
-src\low-level\pop3\mailpop3_helper.h
-src\low-level\pop3\mailpop3_socket.h
-src\low-level\pop3\mailpop3_ssl.h
-src\low-level\pop3\mailpop3_types.h
-src\low-level\smtp\mailsmtp.h
-src\low-level\smtp\mailsmtp_helper.h
-src\low-level\smtp\mailsmtp_oauth2.h
-src\low-level\smtp\mailsmtp_socket.h
-src\low-level\smtp\mailsmtp_ssl.h
-src\low-level\smtp\mailsmtp_types.h
-src\main\libetpan.h
-src\windows\win_etpan.h
-build-windows\libetpan-config.h
-build-windows\libetpan_version.h

+ 0 - 29
deltachat-ios/libraries/libetpan/build-windows/gen-public-headers.sh

@@ -1,29 +0,0 @@
-#!/bin/sh
-
-files=""
-
-list_headers()
-{
-  local filename="$1"
-  
-  if echo $files | grep "\[$filename\]" >/dev/null ; then
-    return
-  fi
-  
-  local path="`find . -name $filename`"
-  if test "x$path" = x ; then
-    return
-  fi
-  echo $path | sed 's/^.\//src\//' | sed 's/\//\\/g'
-  files="$files[$filename]"
-  subfilenames="`grep '#include <libetpan/' "$path" | sed 's/^#include <libetpan\/\(.*\)>$/\1/'`"
-  for include_dir in $subfilenames ; do
-    list_headers $include_dir
-  done
-}
-
-cd ../src
-list_headers libetpan.h | grep -v libetpan_version.h | sort
-echo src\\windows\\win_etpan.h
-echo build-windows\\libetpan-config.h
-echo build-windows\\libetpan_version.h

+ 0 - 106
deltachat-ios/libraries/libetpan/build-windows/libetpan-config.h

@@ -1,106 +0,0 @@
-#ifndef LIBETPAN_CONFIG_H
-#define LIBETPAN_CONFIG_H
-
-#ifdef _MSC_VER
-#ifndef WIN32
-#define WIN32 1
-#endif
-#endif
-
-#ifdef WIN32
-#	define PATH_MAX 512
-
-// Windows API security level
-#	define SECURITY_WIN32
-
-#	ifdef __cplusplus
-#		define PropVariantInit __inline PropVariantInit
-#		pragma warning( push )
-#		pragma warning( disable :  4005 4141 )
-#	endif
-
-#	include <tchar.h>
-#	include <stdio.h>
-#	include <string.h>
-#	include <io.h>
-#	include <Winsock2.h>
-
-#	ifdef __cplusplus
-#		pragma warning( pop )
-#		undef  PropVariantInit
-#	endif
-
-#	if !defined(snprintf)
-#		define snprintf _snprintf
-#	endif
-#	if !defined(strncasecmp)
-#		define strncasecmp _strnicmp
-#	endif
-#	if !defined(strcasecmp)
-#		define strcasecmp _stricmp
-#	endif
-
-	/* use Windows Types */
-#   if !defined(uint8_t)
-		typedef UINT8 uint8_t;
-#   endif
-#	if !defined(ssize_t)
-		typedef SSIZE_T ssize_t;
-#	endif
-#	if !defined(uint16_t)
-		typedef UINT16 uint16_t;
-#	endif
-#	if !defined(int16_t)
-		typedef INT16 int16_t;
-#	endif
-#	if !defined(uint32_t)
-		typedef UINT32 uint32_t;
-#	endif
-#	if !defined(int32_t)
-		typedef INT32 int32_t;
-#	endif
-#	if !defined(uint64_t)
-		typedef UINT64 uint64_t;
-#	endif
-#	if !defined(int64_t)
-		typedef INT64 int64_t;
-#	endif
-#	if !defined(pid_t)
-		typedef int pid_t;
-#	endif
-
-#	if !defined(caddr_t)
-		typedef void * caddr_t;
-#	endif
-
-	/* avoid config.h*/
-#	define CONFIG_H
-#endif // WIN32
-
-#include <limits.h>
-#ifdef _MSC_VER
-#	define MMAP_UNAVAILABLE
-# ifndef __cplusplus
-#	define inline __inline
-# endif
-#else
-#	include <sys/param.h>
-#endif
-#define MAIL_DIR_SEPARATOR '/'
-#define MAIL_DIR_SEPARATOR_S "/"
-#ifdef _MSC_VER
-#	ifdef LIBETPAN_DLL
-#		define LIBETPAN_EXPORT __declspec(dllexport)
-#	else
-#		define LIBETPAN_EXPORT __declspec(dllimport)
-#   endif
-#else
-#	define LIBETPAN_EXPORT
-#endif
-
-	/* REENTRANT under WINDOWS */
-#ifndef LIBETPAN_REENTRANT
-#	define LIBETPAN_REENTRANT 1
-#endif
-
-#endif

+ 0 - 52
deltachat-ios/libraries/libetpan/build-windows/libetpan.sln

@@ -1,52 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B2C11050-3E46-4E10-B734-F9203A75AA46}"
-	ProjectSection(SolutionItems) = preProject
-		README.md = README.md
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libetpan", "libetpan\libetpan.vcxproj", "{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readmsg", "readmsg\readmsg.vcxproj", "{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smtpsend", "smtpsend\smtpsend.vcxproj", "{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|Win32.Build.0 = Debug|Win32
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|x64.ActiveCfg = Debug|x64
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|x64.Build.0 = Debug|x64
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|Win32.ActiveCfg = Release|Win32
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|Win32.Build.0 = Release|Win32
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|x64.ActiveCfg = Release|x64
-		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|x64.Build.0 = Release|x64
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Debug|Win32.Build.0 = Debug|Win32
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Debug|x64.ActiveCfg = Debug|x64
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Debug|x64.Build.0 = Debug|x64
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Release|Win32.ActiveCfg = Release|Win32
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Release|Win32.Build.0 = Release|Win32
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Release|x64.ActiveCfg = Release|x64
-		{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}.Release|x64.Build.0 = Release|x64
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Debug|Win32.Build.0 = Debug|Win32
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Debug|x64.ActiveCfg = Debug|x64
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Debug|x64.Build.0 = Debug|x64
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Release|Win32.ActiveCfg = Release|Win32
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Release|Win32.Build.0 = Release|Win32
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Release|x64.ActiveCfg = Release|x64
-		{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}.Release|x64.Build.0 = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

+ 0 - 614
deltachat-ios/libraries/libetpan/build-windows/libetpan/libetpan.vcxproj

@@ -1,614 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}</ProjectGuid>
-    <RootNamespace>libetpan</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>../../src/data-types;../../src/driver;../../src/driver/interface;../../src/driver/tools;../../src/low-level/feed;../../src/low-level/imap;../../src/low-level/imf;../../src/low-level/maildir;../../src/low-level/mbox;../../src/low-level/mh;../../src/low-level/mime;../../src/low-level/nntp;../../src/low-level/pop3;../../src/low-level/smtp;../../src/windows;../../src/main;..;../include;../../src/driver/implementation/pop3;../../third-party/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ZLIB;USE_SASL;USE_SSL;WIN32;_WINDOWS;_USRDLL;LIBETPAN_DLL;USE_SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <PrecompiledHeaderFile />
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/DLL %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>libsasl2.lib;zlib.lib;Ws2_32.lib;ssleay32MDd.lib;libeay32MDd.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <AdditionalLibraryDirectories>../../third-party/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile />
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)libetpan.pdb</ProgramDatabaseFile>
-      <MapExports>true</MapExports>
-      <SubSystem>NotSet</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>../../src/data-types;../../src/driver;../../src/driver/interface;../../src/driver/tools;../../src/low-level/feed;../../src/low-level/imap;../../src/low-level/imf;../../src/low-level/maildir;../../src/low-level/mbox;../../src/low-level/mh;../../src/low-level/mime;../../src/low-level/nntp;../../src/low-level/pop3;../../src/low-level/smtp;../../src/windows;../../src/main;..;../include;../../src/driver/implementation/pop3;../../third-party/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ZLIB;USE_SASL;USE_SSL;WIN32;_WINDOWS;_USRDLL;LIBETPAN_DLL;USE_SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <PrecompiledHeaderFile />
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/DLL %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>libsasl2.lib;zlib.lib;Ws2_32.lib;ssleay32MDd.lib;libeay32MDd.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <SuppressStartupBanner>true</SuppressStartupBanner>
-      <AdditionalLibraryDirectories>../../third-party/lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>
-      </ModuleDefinitionFile>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)libetpan.pdb</ProgramDatabaseFile>
-      <MapExports>true</MapExports>
-      <SubSystem>NotSet</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../../src/data-types;../../src/driver;../../src/driver/interface;../../src/driver/tools;../../src/low-level/feed;../../src/low-level/imap;../../src/low-level/imf;../../src/low-level/maildir;../../src/low-level/mbox;../../src/low-level/mh;../../src/low-level/mime;../../src/low-level/nntp;../../src/low-level/pop3;../../src/low-level/smtp;../../src/windows;../../src/main;..;../include;../../src/driver/implementation/pop3;../../third-party/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ZLIB;USE_SASL;USE_SSL;WIN32;_WINDOWS;_USRDLL;LIBETPAN_DLL;USE_SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat />
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <PrecompiledHeaderFile />
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/DLL %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>libsasl2.lib;zlib.lib;Ws2_32.lib;ssleay32MD.lib;libeay32MD.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../third-party/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)libetpan.pdb</ProgramDatabaseFile>
-      <SubSystem>NotSet</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../../src/data-types;../../src/driver;../../src/driver/interface;../../src/driver/tools;../../src/low-level/feed;../../src/low-level/imap;../../src/low-level/imf;../../src/low-level/maildir;../../src/low-level/mbox;../../src/low-level/mh;../../src/low-level/mime;../../src/low-level/nntp;../../src/low-level/pop3;../../src/low-level/smtp;../../src/windows;../../src/main;..;../include;../../src/driver/implementation/pop3;../../third-party/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ZLIB;USE_SASL;USE_SSL;WIN32;_WINDOWS;_USRDLL;LIBETPAN_DLL;USE_SSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-      <PrecompiledHeaderFile />
-    </ClCompile>
-    <Link>
-      <AdditionalOptions>/DLL %(AdditionalOptions)</AdditionalOptions>
-      <AdditionalDependencies>libsasl2.lib;zlib.lib;Ws2_32.lib;ssleay32MD.lib;libeay32MD.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../third-party/lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)libetpan.pdb</ProgramDatabaseFile>
-      <SubSystem>NotSet</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\build_headers.list">
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd ..
-build_headers.bat
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd ..
-build_headers.bat
-</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RootDir)%(Directory)\_headers_depends;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(RootDir)%(Directory)\_headers_depends;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cd ..
-build_headers.bat
-</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cd ..
-build_headers.bat
-</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RootDir)%(Directory)\_headers_depends;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(RootDir)%(Directory)\_headers_depends;%(Outputs)</Outputs>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\data-types\base64.c" />
-    <ClCompile Include="..\..\src\data-types\carray.c" />
-    <ClCompile Include="..\..\src\data-types\charconv.c" />
-    <ClCompile Include="..\..\src\data-types\chash.c" />
-    <ClCompile Include="..\..\src\data-types\clist.c" />
-    <ClCompile Include="..\..\src\data-types\connect.c" />
-    <ClCompile Include="..\..\src\data-types\maillock.c" />
-    <ClCompile Include="..\..\src\data-types\mailsasl.c" />
-    <ClCompile Include="..\..\src\data-types\mailsem.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_cancel.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_cfstream.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_compress.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_helper.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_low.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_socket.c" />
-    <ClCompile Include="..\..\src\data-types\mailstream_ssl.c" />
-    <ClCompile Include="..\..\src\data-types\mail_cache_db.c" />
-    <ClCompile Include="..\..\src\data-types\md5.c" />
-    <ClCompile Include="..\..\src\data-types\mmapstring.c" />
-    <ClCompile Include="..\..\src\data-types\timeutils.c" />
-    <ClCompile Include="..\..\src\driver\implementation\data-message\data_message_driver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\feed\feeddriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\feed\feeddriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\feed\feedstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\hotmail\hotmailstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\mime-message\mime_message_driver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpstorage.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_cached.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_cached_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_message.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_tools.c" />
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3storage.c" />
-    <ClCompile Include="..\..\src\driver\interface\maildriver.c" />
-    <ClCompile Include="..\..\src\driver\interface\maildriver_tools.c" />
-    <ClCompile Include="..\..\src\driver\interface\maildriver_types.c" />
-    <ClCompile Include="..\..\src\driver\interface\maildriver_types_helper.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailfolder.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailmessage.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailmessage_tools.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailmessage_types.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailstorage.c" />
-    <ClCompile Include="..\..\src\driver\interface\mailstorage_tools.c" />
-    <ClCompile Include="..\..\src\driver\tools\generic_cache.c" />
-    <ClCompile Include="..\..\src\driver\tools\imfcache.c" />
-    <ClCompile Include="..\..\src\driver\tools\mailthread.c" />
-    <ClCompile Include="..\..\src\driver\tools\mailthread_types.c" />
-    <ClCompile Include="..\..\src\low-level\feed\date.c" />
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed.c" />
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_item.c" />
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_item_enclosure.c" />
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_private.c" />
-    <ClCompile Include="..\..\src\low-level\feed\parser.c" />
-    <ClCompile Include="..\..\src\low-level\feed\parser_atom03.c" />
-    <ClCompile Include="..\..\src\low-level\feed\parser_atom10.c" />
-    <ClCompile Include="..\..\src\low-level\feed\parser_rdf.c" />
-    <ClCompile Include="..\..\src\low-level\feed\parser_rss20.c" />
-    <ClCompile Include="..\..\src\low-level\imap\acl.c" />
-    <ClCompile Include="..\..\src\low-level\imap\acl_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\acl_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\acl_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore.c" />
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\condstore.c" />
-    <ClCompile Include="..\..\src\low-level\imap\condstore_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\enable.c" />
-    <ClCompile Include="..\..\src\low-level\imap\idle.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_compress.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_extension.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_helper.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_keywords.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_oauth2.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_print.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_socket.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sort.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sort_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_ssl.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_types_helper.c" />
-    <ClCompile Include="..\..\src\low-level\imap\namespace.c" />
-    <ClCompile Include="..\..\src\low-level\imap\namespace_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\namespace_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\namespace_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\qresync.c" />
-    <ClCompile Include="..\..\src\low-level\imap\qresync_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\quota.c" />
-    <ClCompile Include="..\..\src\low-level\imap\quota_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\quota_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\quota_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\uidplus.c" />
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_parser.c" />
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_sender.c" />
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_types.c" />
-    <ClCompile Include="..\..\src\low-level\imap\xgmlabels.c" />
-    <ClCompile Include="..\..\src\low-level\imap\xgmmsgid.c" />
-    <ClCompile Include="..\..\src\low-level\imap\xgmthrid.c" />
-    <ClCompile Include="..\..\src\low-level\imap\xlist.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_types.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_types_helper.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_file.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_generic.c" />
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_mem.c" />
-    <ClCompile Include="..\..\src\low-level\maildir\maildir.c" />
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox.c" />
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox_parse.c" />
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox_types.c" />
-    <ClCompile Include="..\..\src\low-level\mh\mailmh.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_content.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_decode.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_disposition.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_types.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_types_helper.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_file.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_generic.c" />
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_mem.c" />
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp.c" />
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp_socket.c" />
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp_ssl.c" />
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3.c" />
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_helper.c" />
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_socket.c" />
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_ssl.c" />
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp.c" />
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_helper.c" />
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_oauth2.c" />
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_socket.c" />
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_ssl.c" />
-    <ClCompile Include="..\..\src\windows\dirent.c" />
-    <ClCompile Include="..\..\src\windows\inet_aton.c" />
-    <ClCompile Include="..\..\src\windows\misc.c" />
-    <ClCompile Include="..\..\src\windows\mmap.c" />
-    <ClCompile Include="..\..\src\windows\time_r.c" />
-    <ClCompile Include="..\..\src\windows\win_init.cpp">
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
-      <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\src\data-types\base64.h" />
-    <ClInclude Include="..\..\src\data-types\carray.h" />
-    <ClInclude Include="..\..\src\data-types\charconv.h" />
-    <ClInclude Include="..\..\src\data-types\chash.h" />
-    <ClInclude Include="..\..\src\data-types\clist.h" />
-    <ClInclude Include="..\..\src\data-types\connect.h" />
-    <ClInclude Include="..\..\src\data-types\hmac-md5.h" />
-    <ClInclude Include="..\..\src\data-types\mail.h" />
-    <ClInclude Include="..\..\src\data-types\maillock.h" />
-    <ClInclude Include="..\..\src\data-types\mailsasl.h" />
-    <ClInclude Include="..\..\src\data-types\mailsasl_private.h" />
-    <ClInclude Include="..\..\src\data-types\mailsem.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_cancel.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_cancel_types.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_cfstream.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_compress.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_helper.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_low.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_socket.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_ssl.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_ssl_private.h" />
-    <ClInclude Include="..\..\src\data-types\mailstream_types.h" />
-    <ClInclude Include="..\..\src\data-types\mail_cache_db.h" />
-    <ClInclude Include="..\..\src\data-types\mail_cache_db_types.h" />
-    <ClInclude Include="..\..\src\data-types\md5.h" />
-    <ClInclude Include="..\..\src\data-types\md5global.h" />
-    <ClInclude Include="..\..\src\data-types\mmapstring.h" />
-    <ClInclude Include="..\..\src\data-types\mmapstring_private.h" />
-    <ClInclude Include="..\..\src\data-types\timeutils.h" />
-    <ClInclude Include="..\..\src\driver\implementation\data-message\data_message_driver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\feed\feedstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\hotmail\hotmailstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_tools_private.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\mime-message\mime_message_driver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpstorage.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_cached.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_cached_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_message.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_tools.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_types.h" />
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3storage.h" />
-    <ClInclude Include="..\..\src\driver\interface\maildriver.h" />
-    <ClInclude Include="..\..\src\driver\interface\maildriver_errors.h" />
-    <ClInclude Include="..\..\src\driver\interface\maildriver_tools.h" />
-    <ClInclude Include="..\..\src\driver\interface\maildriver_types.h" />
-    <ClInclude Include="..\..\src\driver\interface\maildriver_types_helper.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailfolder.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailmessage.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailmessage_tools.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailmessage_types.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailstorage.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailstorage_tools.h" />
-    <ClInclude Include="..\..\src\driver\interface\mailstorage_types.h" />
-    <ClInclude Include="..\..\src\driver\tools\generic_cache.h" />
-    <ClInclude Include="..\..\src\driver\tools\generic_cache_types.h" />
-    <ClInclude Include="..\..\src\driver\tools\imfcache.h" />
-    <ClInclude Include="..\..\src\driver\tools\mailthread.h" />
-    <ClInclude Include="..\..\src\driver\tools\mailthread_types.h" />
-    <ClInclude Include="..\..\src\low-level\feed\date.h" />
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed.h" />
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_item.h" />
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_item_enclosure.h" />
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_private.h" />
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_types.h" />
-    <ClInclude Include="..\..\src\low-level\feed\parser.h" />
-    <ClInclude Include="..\..\src\low-level\feed\parser_atom03.h" />
-    <ClInclude Include="..\..\src\low-level\feed\parser_atom10.h" />
-    <ClInclude Include="..\..\src\low-level\feed\parser_rdf.h" />
-    <ClInclude Include="..\..\src\low-level\feed\parser_rss20.h" />
-    <ClInclude Include="..\..\src\low-level\imap\acl.h" />
-    <ClInclude Include="..\..\src\low-level\imap\acl_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\acl_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\acl_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore.h" />
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\condstore.h" />
-    <ClInclude Include="..\..\src\low-level\imap\condstore_private.h" />
-    <ClInclude Include="..\..\src\low-level\imap\condstore_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\enable.h" />
-    <ClInclude Include="..\..\src\low-level\imap\idle.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_compress.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_extension.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_extension_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_helper.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_keywords.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_oauth2.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_print.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_socket.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sort.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sort_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_ssl.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_types_helper.h" />
-    <ClInclude Include="..\..\src\low-level\imap\namespace.h" />
-    <ClInclude Include="..\..\src\low-level\imap\namespace_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\namespace_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\namespace_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\qresync.h" />
-    <ClInclude Include="..\..\src\low-level\imap\qresync_private.h" />
-    <ClInclude Include="..\..\src\low-level\imap\qresync_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\quota.h" />
-    <ClInclude Include="..\..\src\low-level\imap\quota_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\quota_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\quota_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\uidplus.h" />
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_parser.h" />
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_sender.h" />
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_types.h" />
-    <ClInclude Include="..\..\src\low-level\imap\xgmlabels.h" />
-    <ClInclude Include="..\..\src\low-level\imap\xgmmsgid.h" />
-    <ClInclude Include="..\..\src\low-level\imap\xgmthrid.h" />
-    <ClInclude Include="..\..\src\low-level\imap\xlist.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_types.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_types_helper.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_file.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_generic.h" />
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_mem.h" />
-    <ClInclude Include="..\..\src\low-level\maildir\maildir.h" />
-    <ClInclude Include="..\..\src\low-level\maildir\maildir_types.h" />
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox.h" />
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox_parse.h" />
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox_types.h" />
-    <ClInclude Include="..\..\src\low-level\mh\mailmh.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_content.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_decode.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_disposition.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_types.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_types_helper.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_file.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_generic.h" />
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_mem.h" />
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp.h" />
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_socket.h" />
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_ssl.h" />
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_types.h" />
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3.h" />
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_helper.h" />
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_socket.h" />
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_ssl.h" />
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_types.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_helper.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_oauth2.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_private.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_socket.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_ssl.h" />
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_types.h" />
-    <ClInclude Include="..\..\src\windows\win_etpan.h" />
-    <ClInclude Include="..\libetpan-config.h" />
-    <ClInclude Include="..\libetpan_version.h" />
-    <ClInclude Include="..\StdAfx.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 1238
deltachat-ios/libraries/libetpan/build-windows/libetpan/libetpan.vcxproj.filters

@@ -1,1238 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Source Files\datatypes">
-      <UniqueIdentifier>{7f4c342c-506d-48aa-8b07-573d178732df}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level">
-      <UniqueIdentifier>{0583f155-a9e6-4d0b-8422-83e1d16555dc}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\imap">
-      <UniqueIdentifier>{9dcfa9b9-7d6a-4bb7-8c24-8ac225516b1f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\pop3">
-      <UniqueIdentifier>{ac60718b-0773-4250-b820-e830b99a6e24}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\mime">
-      <UniqueIdentifier>{6b535361-3f15-4e4c-ac28-da7757e4a559}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\imf">
-      <UniqueIdentifier>{b0d0cd77-2bd7-4fa3-be96-2b612a36af32}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\maildir">
-      <UniqueIdentifier>{ddcd3a4e-b461-48c4-b95e-8f2c886602c7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\mbox">
-      <UniqueIdentifier>{76a80f6a-02cc-4794-af62-e8c6d4f66e13}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\mh">
-      <UniqueIdentifier>{0ada99fe-d136-43f3-b604-1bc6e3221229}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\nntp">
-      <UniqueIdentifier>{3f937bf3-f60b-4930-aaf0-0aee4656e7dc}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\smtp">
-      <UniqueIdentifier>{cacf283a-765b-4fe6-8372-a92103f10b1c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\low-level\feed">
-      <UniqueIdentifier>{f0007dc2-7c5e-4eaa-8bb2-e6b3f53c4fda}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver">
-      <UniqueIdentifier>{91a7d348-d5c7-4e81-a366-06eaeaa0a318}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\interface">
-      <UniqueIdentifier>{adeaa9ed-eb91-4ed6-843e-2c6f07744820}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation">
-      <UniqueIdentifier>{24667763-59b2-4870-9e8e-d799daadadf4}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\data-message">
-      <UniqueIdentifier>{c57ea273-426a-4710-8632-5890c9f07c17}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\hotmail">
-      <UniqueIdentifier>{c73edb38-6d70-4c61-ad93-6788baf78018}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\imap">
-      <UniqueIdentifier>{1b931276-a5bf-42c8-a81c-b71eaaa3a83e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\maildir">
-      <UniqueIdentifier>{fcc2cfe6-2bff-4052-afc5-8f4194eebd4d}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\mbox">
-      <UniqueIdentifier>{83f05fde-699b-4c51-aa78-9611b712b930}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\mh">
-      <UniqueIdentifier>{4ed7e036-1b1a-48fe-b136-e74829a1544b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\mime-message">
-      <UniqueIdentifier>{041f6571-afd9-4dea-9fd7-9f81bbedef23}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\nntp">
-      <UniqueIdentifier>{2ad74c6d-4882-42c9-81f7-84f99292f495}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\pop3">
-      <UniqueIdentifier>{fdb209c2-83c6-4def-93b1-8ff66cc7a0c0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\implementation\feed">
-      <UniqueIdentifier>{2ee15454-2b89-4bea-a5fb-6838f6e33d28}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\driver\tools">
-      <UniqueIdentifier>{2082da22-9e0f-4849-9fe7-8ab0e78e18ea}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Windows">
-      <UniqueIdentifier>{26ce92c8-04eb-49ba-ba97-dbaca0baef30}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\data-types\base64.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\carray.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\charconv.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\chash.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\clist.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\connect.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mail_cache_db.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\maillock.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailsasl.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_cancel.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_cfstream.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_compress.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_helper.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_low.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_socket.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailstream_ssl.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\md5.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mmapstring.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\timeutils.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\acl.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\acl_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\acl_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\acl_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\annotatemore_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\condstore.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\condstore_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\enable.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\idle.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_compress.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_extension.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_helper.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_id_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_keywords.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_print.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_socket.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sort.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_sort_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_ssl.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_types_helper.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\namespace.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\namespace_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\namespace_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\namespace_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\qresync.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\qresync_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\quota.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\quota_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\quota_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\quota_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\uidplus.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_parser.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_sender.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\uidplus_types.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\xgmlabels.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\xgmmsgid.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\xgmthrid.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\xlist.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3.c">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_helper.c">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_socket.c">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\pop3\mailpop3_ssl.c">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_content.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_decode.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_disposition.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_types.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_types_helper.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_file.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_generic.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mime\mailmime_write_mem.c">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_types.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_types_helper.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_file.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_generic.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imf\mailimf_write_mem.c">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\maildir\maildir.c">
-      <Filter>Source Files\low-level\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox.c">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox_parse.c">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mbox\mailmbox_types.c">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\mh\mailmh.c">
-      <Filter>Source Files\low-level\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp.c">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp_socket.c">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\nntp\newsnntp_ssl.c">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp.c">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_helper.c">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_socket.c">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_ssl.c">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\date.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_item.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_item_enclosure.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\newsfeed_private.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\parser.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\parser_atom03.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\parser_atom10.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\parser_rdf.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\feed\parser_rss20.c">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\maildriver.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\maildriver_tools.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\maildriver_types.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\maildriver_types_helper.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailfolder.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailmessage.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailmessage_tools.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailmessage_types.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailstorage.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\interface\mailstorage_tools.c">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\data-message\data_message_driver.c">
-      <Filter>Source Files\driver\implementation\data-message</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\hotmail\hotmailstorage.c">
-      <Filter>Source Files\driver\implementation\hotmail</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_cached.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_cached_message.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_message.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapdriver_tools.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\imap\imapstorage.c">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_cached.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_cached_message.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_message.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirdriver_tools.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\maildir\maildirstorage.c">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_cached.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_cached_message.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_message.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxdriver_tools.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mbox\mboxstorage.c">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_cached.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_cached_message.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_message.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhdriver_tools.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mh\mhstorage.c">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\mime-message\mime_message_driver.c">
-      <Filter>Source Files\driver\implementation\mime-message</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_cached.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_cached_message.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_message.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpdriver_tools.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\nntp\nntpstorage.c">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_cached.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_cached_message.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_message.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3driver_tools.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\pop3\pop3storage.c">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\feed\feeddriver.c">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\feed\feeddriver_message.c">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\implementation\feed\feedstorage.c">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\tools\generic_cache.c">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\tools\imfcache.c">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\tools\mailthread.c">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\driver\tools\mailthread_types.c">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\dirent.c">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\inet_aton.c">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\misc.c">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\mmap.c">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\time_r.c">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\windows\win_init.cpp">
-      <Filter>Source Files\Windows</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\imap\mailimap_oauth2.c">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\data-types\mailsem.c">
-      <Filter>Source Files\datatypes</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\low-level\smtp\mailsmtp_oauth2.c">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\src\windows\win_etpan.h">
-      <Filter>Source Files\Windows</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libetpan-config.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\libetpan_version.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\StdAfx.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailsem.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_oauth2.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\base64.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\carray.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\charconv.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\chash.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\clist.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\connect.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\hmac-md5.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mail.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mail_cache_db.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mail_cache_db_types.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\maillock.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailsasl.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailsasl_private.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_cancel.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_cancel_types.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_cfstream.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_compress.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_helper.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_low.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_socket.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_ssl.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_ssl_private.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mailstream_types.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\md5.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\md5global.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mmapstring.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\mmapstring_private.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\data-types\timeutils.h">
-      <Filter>Source Files\datatypes</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\data-message\data_message_driver.h">
-      <Filter>Source Files\driver\implementation\data-message</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver.h">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver_message.h">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\feed\feeddriver_types.h">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\feed\feedstorage.h">
-      <Filter>Source Files\driver\implementation\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\hotmail\hotmailstorage.h">
-      <Filter>Source Files\driver\implementation\hotmail</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_cached.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_cached_message.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_message.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_tools.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_tools_private.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapdriver_types.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\imap\imapstorage.h">
-      <Filter>Source Files\driver\implementation\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_cached.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_cached_message.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_message.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_tools.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirdriver_types.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\maildir\maildirstorage.h">
-      <Filter>Source Files\driver\implementation\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_cached.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_cached_message.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_message.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_tools.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxdriver_types.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mbox\mboxstorage.h">
-      <Filter>Source Files\driver\implementation\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_cached.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_cached_message.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_message.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_tools.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhdriver_types.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mh\mhstorage.h">
-      <Filter>Source Files\driver\implementation\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\mime-message\mime_message_driver.h">
-      <Filter>Source Files\driver\implementation\mime-message</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_cached.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_cached_message.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_message.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_tools.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpdriver_types.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\nntp\nntpstorage.h">
-      <Filter>Source Files\driver\implementation\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_cached.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_cached_message.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_message.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_tools.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3driver_types.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\implementation\pop3\pop3storage.h">
-      <Filter>Source Files\driver\implementation\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\maildriver.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\maildriver_errors.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\maildriver_tools.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\maildriver_types.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\maildriver_types_helper.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailfolder.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailmessage.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailmessage_tools.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailmessage_types.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailstorage.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailstorage_tools.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\interface\mailstorage_types.h">
-      <Filter>Source Files\driver\interface</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\tools\generic_cache.h">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\tools\generic_cache_types.h">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\tools\imfcache.h">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\tools\mailthread.h">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\driver\tools\mailthread_types.h">
-      <Filter>Source Files\driver\tools</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\date.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_item.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_item_enclosure.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_private.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\newsfeed_types.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\parser.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\parser_atom03.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\parser_atom10.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\parser_rdf.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\feed\parser_rss20.h">
-      <Filter>Source Files\low-level\feed</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\acl.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\acl_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\acl_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\acl_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\annotatemore_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\condstore.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\condstore_private.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\condstore_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\enable.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\idle.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_compress.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_extension.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_extension_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_helper.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_id_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_keywords.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_oauth2.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_print.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_socket.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sort.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_sort_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_ssl.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\mailimap_types_helper.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\namespace.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\namespace_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\namespace_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\namespace_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\qresync.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\qresync_private.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\qresync_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\quota.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\quota_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\quota_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\quota_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\uidplus.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_parser.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_sender.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\uidplus_types.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\xgmlabels.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\xgmmsgid.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\xgmthrid.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imap\xlist.h">
-      <Filter>Source Files\low-level\imap</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_types.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_types_helper.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_file.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_generic.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\imf\mailimf_write_mem.h">
-      <Filter>Source Files\low-level\imf</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\maildir\maildir.h">
-      <Filter>Source Files\low-level\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\maildir\maildir_types.h">
-      <Filter>Source Files\low-level\maildir</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox.h">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox_parse.h">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mbox\mailmbox_types.h">
-      <Filter>Source Files\low-level\mbox</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mh\mailmh.h">
-      <Filter>Source Files\low-level\mh</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_content.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_decode.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_disposition.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_types.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_types_helper.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_file.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_generic.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\mime\mailmime_write_mem.h">
-      <Filter>Source Files\low-level\mime</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp.h">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_socket.h">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_ssl.h">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\nntp\newsnntp_types.h">
-      <Filter>Source Files\low-level\nntp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3.h">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_helper.h">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_socket.h">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_ssl.h">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\pop3\mailpop3_types.h">
-      <Filter>Source Files\low-level\pop3</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_helper.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_private.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_socket.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_ssl.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\src\low-level\smtp\mailsmtp_types.h">
-      <Filter>Source Files\low-level\smtp</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <CustomBuild Include="..\build_headers.list">
-      <Filter>Source Files</Filter>
-    </CustomBuild>
-  </ItemGroup>
-</Project>

+ 0 - 53
deltachat-ios/libraries/libetpan/build-windows/libetpan_version.h

@@ -1,53 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001 - 2003 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef LIBETPAN_VERSION_H
-
-#define LIBETPAN_VERSION_H
-
-#ifndef LIBETPAN_VERSION_MAJOR
-#define LIBETPAN_VERSION_MAJOR 1
-#endif
-
-#ifndef LIBETPAN_VERSION_MINOR
-#define LIBETPAN_VERSION_MINOR 6
-#endif
-
-#ifndef LIBETPAN_REENTRANT
-#if 1
-#define LIBETPAN_REENTRANT 1
-#endif
-#endif
-
-int libetpan_get_version_major(void);
-int libetpan_get_version_minor(void);
-
-#endif

+ 0 - 202
deltachat-ios/libraries/libetpan/build-windows/readmsg/readmsg.vcxproj

@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{5FEA913A-5CE4-4DEB-B6BE-B8EA1BF6F653}</ProjectGuid>
-    <RootNamespace>readmsg</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)readmsg.pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)readmsg.pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat />
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\bsd\getopt.c" />
-    <ClCompile Include="..\..\src\bsd\getopt_long.c" />
-    <ClCompile Include="..\..\tests\option-parser.c" />
-    <ClCompile Include="..\..\tests\readmsg-common.c" />
-    <ClCompile Include="..\..\tests\readmsg.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libetpan\libetpan.vcxproj">
-      <Project>{ba4ded3c-e56f-4484-bfc3-9c13e461a1be}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 34
deltachat-ios/libraries/libetpan/build-windows/readmsg/readmsg.vcxproj.filters

@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\bsd\getopt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\bsd\getopt_long.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\tests\option-parser.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\tests\readmsg-common.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\tests\readmsg.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 200
deltachat-ios/libraries/libetpan/build-windows/smtpsend/smtpsend.vcxproj

@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{FF9F45C9-74A0-4B4E-99E9-6ADE0EB6D8AC}</ProjectGuid>
-    <RootNamespace>smtpsend</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <PlatformToolset>v120</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)smtpsend.pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ProgramDatabaseFile>$(OutDir)smtpsend.pdb</ProgramDatabaseFile>
-      <SubSystem>Console</SubSystem>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader />
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat />
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention />
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <AdditionalIncludeDirectories>../include/libetpan/;../include;../../src/gnu;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>
-      </DebugInformationFormat>
-      <DisableSpecificWarnings>4996; 4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <ForcedIncludeFiles>../StdAfx.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libetpan.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>C;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>
-      <DataExecutionPrevention>
-      </DataExecutionPrevention>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\bsd\getopt.c" />
-    <ClCompile Include="..\..\src\bsd\getopt_long.c" />
-    <ClCompile Include="..\..\tests\smtpsend.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libetpan\libetpan.vcxproj">
-      <Project>{ba4ded3c-e56f-4484-bfc3-9c13e461a1be}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 28
deltachat-ios/libraries/libetpan/build-windows/smtpsend/smtpsend.vcxproj.filters

@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\src\bsd\getopt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\src\bsd\getopt_long.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\tests\smtpsend.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 1
deltachat-ios/libraries/libetpan/build-windows/stdbool.h

@@ -1 +0,0 @@
-#define false 0

+ 0 - 801
deltachat-ios/libraries/libetpan/configure.ac

@@ -1,801 +0,0 @@
-#                                               -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-m4_define([maj_version], [1])
-m4_define([min_version], [8])
-m4_define([mic_version], [0])
-m4_define([api_current], [21])
-m4_define([api_revision], [0])
-m4_define([api_compatibility], [20])
-dnl API version
-dnl 1. If you have changed any of the sources for this library, the revision
-dnl    number must be incremented. This is a new revision of the current
-dnl    interface.
-dnl 2. If the interface has changed, then current must be incremented, and
-dnl    revision reset to `0'. This is the first revision of a new interface.
-dnl 3. If the new interface is a superset of the previous interface (that is,
-dnl    if the previous interface has not been broken by the changes in this new
-dnl    release), then age must be incremented. This release is backwards
-dnl    compatible with the previous release.
-dnl 4. If the new interface has removed elements with respect to the previous
-dnl    interface, then you have broken backward compatibility and age must be
-dnl    reset to `0'. This release has a new, but backwards incompatible
-dnl    interface.
-dnl age = api_current - api_compatiblity
-
-AC_PREREQ(2.61)
-AC_INIT([libetpan],[maj_version.min_version.mic_version],[libetpan-devel@lists.sourceforge.net])
-AC_CONFIG_SRCDIR([src/main/libetpan_version.h.in])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_HEADER([config.h])
-AM_INIT_AUTOMAKE
-AM_MAINTAINER_MODE
-AC_CANONICAL_HOST
-
-dnl Version major, minor and micro
-VERSION_MAJOR=maj_version
-VERSION_MINOR=min_version
-VERSION_MICRO=mic_version
-
-dnl required version of libcurl
-libcurl_major_required=0
-libcurl_minor_required=0
-
-dnl API version
-dnl 1. If you have changed any of the sources for this library, the revision
-dnl    number must be incremented. This is a new revision of the current
-dnl    interface.
-dnl 2. If the interface has changed, then current must be incremented, and
-dnl    revision reset to `0'. This is the first revision of a new interface.
-dnl 3. If the new interface is a superset of the previous interface (that is,
-dnl    if the previous interface has not been broken by the changes in this new
-dnl    release), then age must be incremented. This release is backwards
-dnl    compatible with the previous release.
-dnl 4. If the new interface has removed elements with respect to the previous
-dnl    interface, then you have broken backward compatibility and age must be
-dnl    reset to `0'. This release has a new, but backwards incompatible
-dnl    interface.
-API_CURRENT=api_current
-API_REVISION=api_revision
-API_COMPATIBILITY=api_compatibility
-AC_SUBST(API_CURRENT)
-AC_SUBST(API_COMPATIBILITY)
-AC_SUBST(API_REVISION)
-
-API_AGE=`expr $API_CURRENT - $API_COMPATIBILITY`
-API_VERSION="$API_CURRENT:$API_REVISION:$API_AGE"
-AC_SUBST(API_VERSION)
-
-dnl FIXME: This should be the git revision.
-BUILD_REVISION=0
-AC_SUBST(BUILD_REVISION)
-BUILD_TIMESTAMP=`date +'%Y-%m-%dT%H:%M%z'`
-AC_SUBST(BUILD_TIMESTAMP)
-changequote(,)dnl 
-BUILD_FILEVERSION=`echo "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
-changequote([,])dnl
-BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_REVISION}"
-AC_SUBST(BUILD_FILEVERSION)
-
-
-# Architecture specific.
-have_w32_system=no
-case "${host}" in
-    *-mingw32*)
-        have_w32_system=yes
-	CFLAGS="$CFLAGS -mms-bitfields -I\${top_srcdir}/src/windows"
-	## Currently we export all symbols indiscriminately.
-	## Eventually, this can be limited to those which should be
-	## exported (which helps to hide our internal mmap stubs, for
-	## example), but before this can happen, the missing export
-	## declarations have to be added to all header files.  Also, it
-	## should first be verified that exporting data members from a
-	## DLL is safe.  To reenable discriminate exports, uncomment
-	## the following line and replace the "@ifdef _MSC_VER" around the
-	## export/import declaration stuff in libetpan.h.in by
-	## "@if WIN32".
-	# CFLAGS="$CFLAGS -DLIBETPAN_DLL"
-        # We use winsock2.
-    	LIBS="$LIBS -lws2_32"
-        ;;
-    *)
-	;;
-esac
-if test "$have_w32_system" = yes; then
-   AC_DEFINE(HAVE_MINGW32_SYSTEM, 1, [Defined if we run on a W32 API based system])
-fi
-AM_CONDITIONAL(HAVE_MINGW32_SYSTEM, test "$have_w32_system" = yes)
-
-# Check the C compiler.
-AC_PROG_CC
-AC_PROG_CXX
-
-# Compiler flags.
-AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug], [setup flags (gcc) for debugging (default=no)])],
-if test "x$enable_debug" = xyes; then
-  CFLAGS="$CFLAGS -O2 -g"
-fi
-CPPFLAGS="$CPPFLAGS -DDEBUG"
-LDFLAGS="$LDFLAGS",)
-AC_ARG_ENABLE(optim, [AC_HELP_STRING([--enable-optim], [setup flags (gcc) for optimizations (default=no)])],
-if test "x$enable_debug" != "xyes" ; then
-  if test "x$GCC" = xyes; then
-    CFLAGS="$CFLAGS -O2 -ffast-math -funroll-loops -g0"
-  fi
-  CPPFLAGS="$CPPFLAGS"
-  LDFLAGS="$LDFLAGS -s"
-else
-  AC_MSG_WARN([enable-optim and enable-debug are incompatible -- disabling optimizations])
-fi,)
-if test "x$GCC" = xyes; then
-  CFLAGS="$CFLAGS -W -Wall"
-fi
-AC_ARG_ENABLE(syntax, [AC_HELP_STRING([--enable-unstrict-syntax], [be lazy on syntax checking for protocols (default=no)])], , [AC_DEFINE(UNSTRICT_SYNTAX, 1, [Define to be lazy on protocol syntax])])
-
-AH_VERBATIM([CONFIG_H_FIRST], [/* Check for Linux's /usr/include/features.h
- */
-#ifdef _FEATURES_H
-#  error  config.h must be first file included
-#endif])
-
-AC_C_INLINE
-
-# Checks for programs.
-AC_LIBTOOL_WIN32_DLL
-LT_AC_PROG_RC
-AC_LIBTOOL_RC
-AC_PROG_LIBTOOL
-AC_PROG_MKDIR_P
-
-dnl Can't use AC_PROG_INSTALL
-INSTALL='$(SHELL) $(top_srcdir)/install-sh -c'
-AC_SUBST(INSTALL)
-
-# Checks for header files.
-AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h unistd.h ctype.h sys/types.h sys/stat.h sys/mman.h limits.h)
-AC_CHECK_HEADERS(netdb.h netinet/in.h sys/socket.h)
-AC_CHECK_HEADERS(sys/param.h sys/select.h inttypes.h)
-AC_CHECK_HEADERS(arpa/inet.h winsock2.h)
-
-
-AC_ARG_WITH([poll], use poll intead of select, use_poll=yes, use_poll=no)
-
-if test "x$use_poll" = "xyes"; then
-  AC_CHECK_HEADERS(sys/poll.h, [AC_DEFINE([USE_POLL], 1, [use poll instead of select])])
-else
-  echo "poll using is off"
-fi
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-
-# Checks for library functions.
-AC_FUNC_MMAP
-
-dnl Network libs
-AC_CHECK_FUNC(connect, checksocket=no, checksocket=yes)
-if test "x$checksocket" = "xyes"; then 
-case "x$LIBS" in
- *-lsocket*);;
- *) AC_CHECK_LIB(socket, connect) ;;
-esac
-fi
-AC_CHECK_FUNC(inet_ntoa, checknsl=no, checknsl=yes)
-if test "x$checknsl" = "xyes"; then 
-case "x$LIBS" in
- *-lnsl*);;
- *) AC_CHECK_LIB(nsl, inet_ntoa) ;;
-esac
-fi
-
-AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV, 1, [Define to use setenv]),)
-
-# Check for getopt_long; if not found, use included source.
-AC_CHECK_FUNCS([getopt_long], has_getopt_long=no, has_getopt_long=yes)
-if test "x$has_getoptlong" = "xyes"; then
-  AC_DEFINE([HAVE_GETOPT_LONG], 1, [Define to use getopt_long])
-fi
-
-dnl OpenSSL -- very primitive right now
-AC_ARG_WITH(openssl, [AC_HELP_STRING([--with-openssl[=DIR]], [include OpenSSL support (default=auto)])],
-            [], [with_openssl=yes])
-if test "x$with_openssl" != "xno"; then
-  OCPPFLAGS="$CPPFLAGS"
-  OLDFLAGS="$LDFLAGS"
-  if test "x$with_openssl" != "xyes" ; then
-    CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
-    LDFLAGS="$LDFLAGS -L$with_openssl/lib"
-  fi
-  with_openssl=no
-  SSLLIBS=""
-  AC_CHECK_HEADER(openssl/ssl.h, [
-   AC_CHECK_LIB(rsaref, main, [SSLLIBS="-lrsaref"])
-   AC_CHECK_LIB(crypto, main, [SSLLIBS="-lcrypto $SSLLIBS"], [], [$SSLLIBS])
-   AC_CHECK_LIB(ssl, SSL_library_init, with_openssl=yes, [], [$SSLLIBS])])
-  if test "x$with_openssl" != "xyes"; then
-    CPPFLAGS="$OCPPFLAGS"
-    LDFLAGS="$OLDFLAGS"
-  else
-   with_gnutls="no"
-  fi
-fi
-if test "x$with_openssl" = "xyes"; then
-  AC_DEFINE([USE_SSL], 1, [Define to use OpenSSL])
-  SSLLIBS="-lssl $SSLLIBS"
-else
-  SSLLIBS=""
-fi
-AC_SUBST(SSLLIBS)
-
-dnl GNUTLS
-AC_ARG_WITH(gnutls, [AC_HELP_STRING([--with-gnutls[=DIR]], [include GnuTLS support (default=auto)])],
-            [], [with_gnutls=no])
-if test "x$with_gnutls" != "xno"; then
-  OCPPFLAGS="$CPPFLAGS"
-  OLDFLAGS="$LDFLAGS"
-  if test "x$with_gnutls" != "xyes" ; then
-    CPPFLAGS="CPPFLAGS -I$with_gnutls/include"
-    LDFLAGS="$LDFLAGS -L$with_gnutls/lib"
-  fi
-  GNUTLSLIB=""
-  AC_CHECK_HEADER(gnutls/gnutls.h, [
-   AC_CHECK_LIB(gnutls, gnutls_global_deinit, with_gnutls=yes, [GNUTLSLIB="-lgnutls"])
-  ])
-  if test "x$with_gnutls" != "xyes"; then
-   CPPFLAGS="$OCPPFLAGS"
-   LDFLAGS="$OLDFLAGS"
-  else
-   with_openssl="no"
-  fi
-fi
-if test "x$with_gnutls" = "xyes"; then
-  AC_DEFINE([USE_GNUTLS],1, [Define to use GnuTLS])
-  AC_DEFINE([USE_SSL], 1, [Define to use OpenSSL])
-  GNUTLSLIB="-lgnutls -lgcrypt -lgpg-error -lz"
-else
-  GNUTLSLIB=""
-fi
-AC_SUBST(GNUTLSLIB)
-
-if test "x$with_openssl" = "xno"; then
-   if test "x$with_gnutls" = "xno"; then
-      AC_MSG_WARN([OpenSSL support disabled.])
-   fi
-fi
-
-dnl iconv
-LIBICONV=""
-
-AC_ARG_ENABLE(iconv, [AC_HELP_STRING([--disable-iconv], [make a version not using iconv])],
-		enable_iconv=no, enable_iconv=yes)
-if test x$enable_iconv = xyes; then
-   dnl get prototype
-   AC_CHECK_HEADER(iconv.h, [ICONV_HEADER=1], [ICONV_HEADER=0])
-   
-   ICONV_PROTO=no
-   AC_MSG_CHECKING([checking iconv() prototype])
-   if test "x$ICONV_HEADER" = x1 ; then
-     SAVED_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="-std=c99 $CPPFLAGS"
-     AC_TRY_COMPILE([#include <iconv.h>
-       size_t iconv (iconv_t cd, char ** restrict inbuf,
-                     size_t * restrict inbytesleft,
-                     char ** restrict outbuf,
-                     size_t * restrict outbytesleft);],
-       [],
-       [ICONV_PROTO=noconst]
-       [])
-     AC_TRY_COMPILE([#include <iconv.h>
-       size_t iconv (iconv_t cd, const char ** restrict inbuf,
-                     size_t * restrict inbytesleft,
-                     char ** restrict outbuf,
-                     size_t * restrict outbytesleft);],
-       [],
-       [ICONV_PROTO=const]
-       [])
-     CPPFLAGS="$SAVED_CPPFLAGS"
-   fi
-
-   dnl try to link
-   ICONV_LINKED=NO
-   if test "$ICONV_PROTO" != "xno" ; then
-     AC_MSG_RESULT([ok])
-     
-     AC_MSG_CHECKING([for iconv])
-     
-     ICONV_LINKED=0
-     AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-       [iconv_t cd = iconv_open("","");
-        iconv(cd,NULL,NULL,NULL,NULL);
-        iconv_close(cd);],
-       [ICONV_LINKED=1],
-       [])
-     saved_LIBS="$LIBS"
-     for lib in iconv ; do
-       if test "x$ICONV_LINKED" = "x0" ; then
-	 LIBS=-l$lib
-         AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-         [iconv_t cd = iconv_open("","");
-          iconv(cd,NULL,NULL,NULL,NULL);
-          iconv_close(cd);],
-         [LIBICONV="$LIBS" ; ICONV_LINKED=1],
-         [])
-       fi
-     done
-     LIBS="$saved_LIBS"
-     
-     if test "x$ICONV_LINKED" = "x1" ; then
-       AC_MSG_RESULT([found])
-     else
-       AC_MSG_RESULT([not found])
-     fi
-   else
-     AC_MSG_RESULT([failed])
-   fi
-
-   if test "x$ICONV_LINKED" = "x1" ; then
-     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-   fi
-   
-   ICONV_PROTO_CONST=0
-   if test "x$ICONV_PROTO" = "xconst" ; then
-     AC_DEFINE_UNQUOTED(HAVE_ICONV_PROTO_CONST, 1,
-       [prototype of iconv() has const parameters])
-   fi
-fi
-AC_SUBST(LIBICONV)
-
-dnl Berkeley DB
-
-DBVERS=0
-DBLINKED=0
-DBLIB=""
-
-AC_ARG_ENABLE(db, [AC_HELP_STRING([--disable-db], [disable Berkeley DB (default=try to detect DB)])],[enable_db=$enableval],[enable_db=yes])
-
-dnl Check for a presence of Berkeley DB header
-if test "x$enable_db" != "xyes"; then
-   AC_MSG_WARN(cache support disabled)
-else
-   AC_CHECK_HEADER(db.h, [DB_HEADER=1], [DB_HEADER=0])
-fi
-
-if test "x$DB_HEADER" = "x1"; then
-dnl Check for version of Berkeley DB
-  AC_MSG_CHECKING([version of Berkeley DB])
-
-dnl check for version 3 and above
-  AC_TRY_COMPILE(
-    [#include <db.h>],
-    [#if DB_VERSION_MAJOR < 3
-    #error DB version 3 or above needed
-    #endif],
-    [DBVERS=3]
-    [])
-
-dnl check for version 2
-  if test "x$DBVERS" = "x0"; then
-     AC_TRY_COMPILE([#include <db.h>],
-       [#if DB_VERSION_MAJOR != 2
-       #error DB version 2 needed
-       #endif],
-       [DBVERS=2]
-       [])
-  fi
-
-  if test "x$DBVERS" = "x0"; then
-dnl assume version 1
-    DBVERS=1
-  fi
-
-dnl test linkage with Berkeley DB
-
-dnl Look for db3 or superior with db_create call
-  case "$DBVERS" in
-    3)
-    AC_MSG_RESULT([version 3.x or above])
-    for lib in db-6.0 db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db-3.2 db-3 db3 db; do
-      if test "x$DBLINKED" = "x0"; then
-dnl        AC_CHECK_LIB($lib, db_create, [DBLIB="-l$lib"; DBLINKED=1], [])
-dnl installations of libdb4 function names are defined in db.h
-dnl to other symbols
-        AC_MSG_CHECKING([for db_create() in -l$lib])
-	LIBS=-l$lib
-	AC_TRY_LINK(
-	   [#include <db.h>],
-	   [db_create(0,0,0)],
-	   [DBLIB="-l$lib"; DBLINKED=1; AC_MSG_RESULT([found])],
-	   [AC_MSG_RESULT([not found])])
-      fi
-    done
-    LIBS=""
-    ;;
-
-dnl Look for db2 with db_open call
-    2)
-    AC_MSG_RESULT([version 2.x])
-    for lib in db2 db; do
-      if test "x$DBLINKED" = "x0"; then 
-        AC_CHECK_LIB($lib, db_open, [DBLIB="-l$lib"; DBLINKED=1], [])
-      fi
-    done
-    ;;
-
-    *)
-dnl Look for db1 with dbopen call in -ldb or in libc (bsds)
-    AC_MSG_RESULT([version 1.x])
-    AC_CHECK_FUNC(dbopen, [DBLINKED=1], [])
-    for lib in db-1 db1 db; do
-      if test "x$DBLINKED" = "x0"; then
-        AC_CHECK_LIB($lib, dbopen, [DBLIB="-l$lib"; DBLINKED=1], [])
-      fi
-    done
-    ;;
-dnl fi
-  esac
-fi
-
-if test "x$DBLINKED" = "x0"; then
-  DBVERS=0
-  if test "x$enable_db" = "xyes"; then
-    AC_MSG_WARN(cache support disabled (Berkeley DB is missing).)
-  fi
-fi
-
-AC_DEFINE_UNQUOTED(DBVERS, $DBVERS,
-  [Define to detected Berkeley DB major version number])
-AC_SUBST(DBLIB)
-
-dnl Threading support, if enabled
-AC_ARG_ENABLE(threads, [AC_HELP_STRING([--disable-threads], [do not include multithreading support using pthread])],,[enable_threads=yes])
-AC_ARG_ENABLE(windows-threads, [AC_HELP_STRING([--enable-windows-threads], [include multithreading support using windows threads])],[enable_windows_threads=yes],)
-
-if test "x$enable_windows_threads" = "xyes"; then
-  AC_CHECK_HEADERS(pthread.h, [], [])
-  AC_DEFINE([LIBETPAN_REENTRANT], 1, [Define to include multithreading support])
-  LIBSUFFIX=
-  REENTRANT=1
-elif test "x$enable_threads" = "xyes"; then
-  dnl Try to find a good CFLAGS/LDFLAGS for pthreads
-  AC_CHECK_HEADERS(pthread.h, [], [AC_MSG_ERROR([pthread support required])])
-  CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-  checkpthread=yes
-
-  AC_MSG_CHECKING([for pthread_create with libc])
-  AC_TRY_LINK([], [pthread_create();], 
-                  [pthflag=yes; checkpthread=no], 
-                  [pthflag=no])
-  AC_MSG_RESULT($pthflag)
-
-  for flag in "pthreads" "pthread"; do
-    if test "x$checkpthread" = "xyes"; then
-      AC_MSG_CHECKING([for pthread_create with -$flag])
-      OLDLIBS="$LIBS"
-      LIBS="$LIBS -$flag"
-      AC_TRY_LINK([], [pthread_create();], 
-                      [pthflag=yes; checkpthread=no], 
-                      [pthflag=no; LIBS="$OLDLIBS"])
-      AC_MSG_RESULT($pthflag)
-    fi
-  done
-
-  # pthreadGC2 is provided by pthreads-w32 on mingw32 platforms.
-  for lib in "c_r" "pthread" "pthreadGC2" ; do
-    if test "x$checkpthread" = "xyes"; then
-       case "x$LIBS" in
-          *-l$lib*);;
-          *) AC_CHECK_LIB($lib, pthread_create, [LIBS="$LIBS -l$lib"; checkpthread=no]) ;;
-       esac
-    fi
-  done
-
-  if test "x$checkpthread" = "xyes"; then
-    AC_CHECK_FUNC(pthread_create, checkpthread=no)
-    text "x$checkpthread" = "xyes" && AC_MSG_ERROR([pthread library required])
-  fi
-  AC_DEFINE([LIBETPAN_REENTRANT], 1, [Define to include multithreading support])
-  LIBSUFFIX=
-  REENTRANT=1
-else
-  REENTRANT=0
-  LIBSUFFIX=-no-mt
-fi
-AC_SUBST(LIBSUFFIX)
-AC_SUBST(REENTRANT)
-
-dnl liblockfile on debian systems
-AC_ARG_ENABLE(lockfile, [AC_HELP_STRING([--disable-lockfile], [do not use liblockfile for locking mailboxes])])
-if test "x$enable_lockfile" != "xno"; then
-  AC_CHECK_LIB(lockfile, lockfile_create,, [
-    if test "x$enable_lockfile" = "xyes"; then
-      AC_MSG_ERROR([liblockfile not found])
-    fi ])
-fi
-
-AC_DEFINE_UNQUOTED(LIBETPAN_VERSION_MAJOR, $VERSION_MAJOR,
-  [Define this to the major version of libEtPan])
-AC_DEFINE_UNQUOTED(LIBETPAN_VERSION_MINOR, $VERSION_MINOR,
-  [Define this to the minor version of libEtPan])
-AC_DEFINE_UNQUOTED(LIBETPAN_VERSION_MICRO, $VERSION_MICRO,
-  [Define this to the micro version of libEtPan])
-AC_SUBST(VERSION_MAJOR)
-AC_SUBST(VERSION_MINOR)
-AC_SUBST(VERSION_MICRO)
-
-dnl Cyrus SASL
-AC_ARG_WITH(sasl, [AC_HELP_STRING([--with-sasl[=DIR]], [include SASL support (default=auto)])],
-            [], [with_sasl=yes])
-if test "x$with_sasl" != "xno"; then
-  OCPPFLAGS="$CPPFLAGS"
-  OLDFLAGS="$LDFLAGS"
-  if test "x$with_sasl" != "xyes" ; then
-    CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
-    LDFLAGS="$LDFLAGS -L$with_sasl/lib"
-  fi
-  with_sasl=no
-  SASLLIBS="$SSLLIBS"
-  AC_CHECK_HEADER(sasl/sasl.h, [
-   AC_CHECK_LIB(sasl2, sasl_client_init, with_sasl=yes, [], [$SASLLIBS])])
-  if test "x$with_sasl" != "xyes"; then
-    CPPFLAGS="$OCPPFLAGS"
-    LDFLAGS="$OLDFLAGS"
-  fi
-fi
-if test "x$with_sasl" = "xyes"; then
-  AC_DEFINE([USE_SASL], 1, [Define to use SASL])
-  SASLLIBS="-lsasl2 $SASLLIBS"
-else
-  AC_MSG_WARN([SASL support disabled.])
-  SASLLIBS=""
-fi
-AC_SUBST(SASLLIBS)
-
-dnl IPv6 support
-enable_ipv6=maybe
-AC_ARG_ENABLE(ipv6, AC_HELP_STRING([--enable-ipv6], [enable IPv6 support]), enable_ipv6=$enableval)
-AC_MSG_CHECKING([whether to use IPv6])
-AC_MSG_RESULT($enable_ipv6)
-if test "x$enable_ipv6" != "xno"; then
-  dnl check for IPv6 support
-  AC_MSG_CHECKING([for IPv6 support])
-  AC_TRY_COMPILE([#define INET6
-            #include <sys/types.h>
-            #include <netinet/in.h>],
-         [int x = IPPROTO_IPV6; struct in6_addr a;],
-         ipv6_support=yes, ipv6_support=no)
-  AC_MSG_RESULT($ipv6_support)
-
-  if test "x$ipv6_support" = "xno"; then
-    if test "x$enable_ipv6" = "xyes"; then
-      AC_MSG_ERROR([cannot enable IPv6 support]) 
-    fi
-  else
-    AC_DEFINE(HAVE_IPV6, 1, [Define to enable IPv6 support.])
-
-    dnl check for getaddrinfo and freeaddrinfo function presence
-    for func in "getaddrinfo" "freeaddrinfo"; do
-      AC_MSG_CHECKING([for $func])
-      AC_TRY_LINK([#include <sys/socket.h>
-                   #include <netdb.h>],
-                      [(void)$func;],
-                      [func_present=yes],
-                      [func_present=no])
-      AC_MSG_RESULT($func_present)
-
-      if test "x$func_present" = "xno"; then
-        AC_MSG_ERROR([$func function required for IPv6 support])
-      fi
-    done
-  fi
-fi
-
-dnl libcurl
-
-libcurl=no
-AC_ARG_WITH(curl, [AC_HELP_STRING([--with-curl[=DIR]], [curl install directory (default=auto)])],
-            [], [with_curl=auto])
-if test "x$with_curl" = "xno"; then
-  :
-elif test "x$with_curl" != "xauto"; then
-  OCPPFLAGS="$CPPFLAGS"
-  OLDFLAGS="$LDFLAGS"
-  if test "x$with_curl" != "xyes" ; then
-    CPPFLAGS="$CPPFLAGS -I$with_curl/include"
-    LDFLAGS="$LDFLAGS -L$with_curl/lib -lcurl -lz"
-  fi
-  AC_CHECK_HEADER(curl/curl.h, [libcurl=yes])
-  if test "x$libcurl" = "xyes"; then
-      AC_MSG_CHECKING([whether with-curl compiles and links fine])
-      AC_TRY_LINK([], [curl_easy_init();], [libcurl=yes], [libcurl=no])
-      AC_MSG_RESULT([$libcurl])
-  fi
-   if test "x$libcurl" = "xno"; then
-      CPPFLAGS="$OCPPFLAGS"
-      LDFLAGS="$OLDFLAGS"
-   fi
-else
-  AC_PATH_PROG(libcurlconfig, [curl-config])
-  if test "x$libcurlconfig" != "x"; then
-      CPPFLAGS="$CPPFLAGS `$libcurlconfig --cflags 2>/dev/null`"
-      AC_CHECK_HEADER(curl/curl.h, [libcurl=yes])
-      if test "x$libcurl" = "xyes"; then
-          AC_MSG_CHECKING([whether curl-config hints compiles and links fine])
-          OLDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS `$libcurlconfig --libs 2>/dev/null`"
-          AC_TRY_LINK([], [curl_easy_init();], [libcurl=yes], [libcurl=no])
-          AC_MSG_RESULT([$libcurl])
-          if test "x$libcurl" = "xno"; then
-              LDFLAGS="$OLDFLAGS"
-          fi
-      fi
-      
-      libcurl_major_version=`$libcurlconfig --version | \
-          sed 's/^.* \([[0-9]]*\)\.\([[0-9]]*\).*$/\1/'`
-      libcurl_minor_version=`$libcurlconfig --version | \
-          sed 's/^.* \([[0-9]]*\)\.\([[0-9]]*\).*$/\2/'`
-      if test "$libcurl_major_version" -lt "$libcurl_major_required" ; then
-          libcurl=no
-      fi
-      if test "$libcurl_major_version" -eq "$libcurl_major_required" ; then
-          if test "$libcurl_minor_version" -lt "$libcurl_minor_required" ; then
-              libcurl=no
-          fi
-      fi
-  fi
-fi
-
-if test "x$libcurl" = "xyes" ; then
-  AC_DEFINE([HAVE_CURL], 1, [Define to use curl])
-fi
-
-dnl expat
-libexpat=no
-AC_ARG_WITH(expat, [AC_HELP_STRING([--with-expat[=DIR]], [expat install directory (default=auto)])],
-            [], [with_expat=auto])
-if test "x$with_expat" = "xno"; then
-	:
-elif test "x$with_expat" != "xauto"; then
-  OCPPFLAGS="$CPPFLAGS"
-  OLDFLAGS="$LDFLAGS"
-  if test "x$with_expat" != "xyes" ; then
-    CPPFLAGS="$CPPFLAGS -I$with_expat/include"
-    LDFLAGS="$LDFLAGS -L$with_expat/lib -lexpat"
-  fi
-  AC_CHECK_HEADER(expat.h, [libexpat=yes])
-  if test "x$libexpat" = "xyes"; then
-      AC_MSG_CHECKING([whether with-expat compiles and links fine])
-      AC_TRY_LINK([], [XML_SetElementHandler();], [libexpat=yes], [libexpat=no])
-      AC_MSG_RESULT([$libexpat])
-  fi
-   if test "x$libexpat" = "xno"; then
-      CPPFLAGS="$OCPPFLAGS"
-      LDFLAGS="$OLDFLAGS"
-   fi
-else
-  AC_CHECK_HEADER(expat.h, [libexpat=yes])
-  if test "x$libexpat" = "xyes"; then
-    AC_MSG_CHECKING([whether libexpat compiles and links fine])
-    OLDFLAGS="$LDFLAGS"
-    LDFLAGS="$LDFLAGS -lexpat"
-    AC_TRY_LINK([], [XML_SetElementHandler();], [libexpat=yes], [libexpat=no])
-    AC_MSG_RESULT([$libexpat])
-    if test "x$libexpat" = "xno"; then
-      LDFLAGS="$OLDFLAGS"
-    fi
-  fi
-fi
-
-if test "x$libexpat" = "xyes" ; then
-  AC_DEFINE([HAVE_EXPAT], 1, [Define to use expat])
-fi
-
-AC_ARG_WITH([zlib],
-  [AS_HELP_STRING([--with-zlib],
-    [include classes for streaming compressed data in and out @<:@default=check@:>@])],
-  [],[with_zlib=check])
-
-# Check for zlib.
-HAVE_ZLIB=0
-AS_IF([test "$with_zlib" != no], [
-  AC_MSG_CHECKING([zlib version])
-
-  # First check the zlib header version.
-  AC_COMPILE_IFELSE(
-    [AC_LANG_PROGRAM([[
-        #include <zlib.h>
-        #if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1204)
-        # error zlib version too old
-        #endif
-        ]], [])], [
-    AC_MSG_RESULT([ok (1.2.0.4 or later)])
-
-    # Also need to add -lz to the linker flags and make sure this succeeds.
-    AC_SEARCH_LIBS([zlibVersion], [z], [
-      AC_DEFINE([HAVE_ZLIB], [1], [Enable classes using zlib compression.])
-      HAVE_ZLIB=1
-      LDFLAGS="$LDFLAGS -lz"
-    ], [
-      AS_IF([test "$with_zlib" != check], [
-        AC_MSG_FAILURE([--with-zlib was given, but no working zlib library was found])
-      ])
-    ])
-  ], [
-    AS_IF([test "$with_zlib" = check], [
-      AC_MSG_RESULT([headers missing or too old (requires 1.2.0.4)])
-    ], [
-      AC_MSG_FAILURE([--with-zlib was given, but zlib headers were not present or were too old (requires 1.2.0.4)])
-    ])
-  ])
-])
-AM_CONDITIONAL([HAVE_ZLIB], [test $HAVE_ZLIB = 1])
-
-dnl Version
-VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_MICRO"
-test -d .git && VERSION="$VERSION-dev-"`date +'%Y%m%d'`
-AC_DEFINE_UNQUOTED(LIBETPAN_VERSION, "$VERSION",
-  [Define this to the version of libEtPan])
-AC_SUBST(VERSION)
-
-# Further checks.
-
-AC_CONFIG_FILES(libetpan-config
-		Makefile
-		build-windows/Makefile
-                include/Makefile
-                src/Makefile
-		src/bsd/Makefile
-		src/windows/Makefile
-		src/data-types/Makefile
-		src/low-level/Makefile
-		src/low-level/feed/Makefile
-		src/low-level/imap/Makefile
-		src/low-level/imf/Makefile
-		src/low-level/maildir/Makefile
-		src/low-level/mbox/Makefile
-		src/low-level/mh/Makefile
-		src/low-level/mime/Makefile
-		src/low-level/nntp/Makefile
-		src/low-level/pop3/Makefile
-		src/low-level/smtp/Makefile
-		src/driver/Makefile
-		src/driver/implementation/Makefile
-		src/driver/implementation/data-message/Makefile
-		src/driver/implementation/db/Makefile
-		src/driver/implementation/feed/Makefile
-		src/driver/implementation/hotmail/Makefile
-		src/driver/implementation/imap/Makefile
-		src/driver/implementation/maildir/Makefile
-		src/driver/implementation/mbox/Makefile
-		src/driver/implementation/mh/Makefile
-		src/driver/implementation/mime-message/Makefile
-		src/driver/implementation/nntp/Makefile
-		src/driver/implementation/pop3/Makefile
-		src/driver/interface/Makefile
-		src/driver/tools/Makefile
-		src/main/Makefile
-		src/main/libetpan_version.h
-		src/engine/Makefile
-		src/versioninfo.rc
-		doc/Makefile
-		tests/Makefile)
-
-# We collect all files which could potentially install public header
-# files via HEADERS.  Updating any of these files will trigger
-# rebuilding the header link farm.  See rules.mk for what we do with
-# this information.  Because pmake does not support $(addprefix
-# $(top_builddir), $(cfg_files), we need to calculate absolute path
-# names here for automatic dependency tracking to work properly.
-cfg_files=
-crd="`pwd`"
-for cfg_file in ${ac_config_files}; do
-  cfg_files="${cfg_files} ${crd}/${cfg_file}"
-done
-AC_SUBST(cfg_files)
-
-AC_OUTPUT
-
-cp -f ${crd}/src/main/libetpan_version.h ${crd}/build-windows
-cd build-windows ; ./gen-public-headers.sh > build_headers.list ; cd ..

+ 0 - 15097
deltachat-ios/libraries/libetpan/doc/API.sgml

@@ -1,15097 +0,0 @@
-<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
-
-<book id="libetpan-api">
-  <bookinfo>
-    <date>2003-12-03</date>
-    <title>libEtPan! API</title>
-    <authorgroup>
-      <author>
-        <firstname>Viet Hoa</firstname>
-        <surname>DINH</surname>
-      </author>
-    </authorgroup>
-    <copyright>
-      <year>2003</year>
-      <holder>DINH Viet Hoa</holder>
-    </copyright>
-  </bookinfo>
-  <toc></toc>
-
-  <!-- Introduction -->
-  <chapter>
-    <title>Introduction</title>
-    <para>
-      This document will describe the API of libEtPan!
-    </para>
-  </chapter>
-  
-  <!-- Tools -->
-  <chapter>
-    <title>Tools and datatypes</title>
-    
-    <para>
-      libEtPan! include a collection of datatypes such as lists,
-      arrays, hash tables and tools such as buffered I/O.
-    </para>
-    
-    <!-- Array -->
-    <sect1>
-      <title>Array</title>
-      
-      <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct carray_s carray;
-      </programlisting>
-
-      <para>
-        <command>carray</command> is an array of pointers that will
-        resize automatically in case a new element is added.
-      </para>
-
-      <para>      
-        The <command>carray</command> is implemented with an array
-        <command>(void **)</command> that can be resized. An array has a
-        size: this is the number of elements that can be added before
-        the table is resized. It also has a count of elements: this is
-        the elements that exist in the array.
-      </para>
-      
-      <sect2 id="carray-new">
-        <title>carray_new and carray_free</title>
-        
-        <programlisting role="C">
-carray * carray_new(unsigned int initsize);
-
-void carray_free(carray * array);
-        </programlisting>
-
-        <para>
-          <command>carray_new()</command> creates a new array with an
-          initial size. The array is not resized until the number of
-          element reach the initial size. It returns
-          <command>NULL</command> in case of failure.
-        </para>
-        
-        <para>
-          <command>carray_free()</command> releases memory used by the
-          given array.
-        </para>
-        
-        <example>
-          <title>carray creation</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdlib.h&gt;
-
-#define SIZE 50
-
-int main(void)
-{
-  carray * a;
-
-  a = carray_new(SIZE);
-  if (a == NULL)
-    exit(EXIT_FAILURE);
-  
-  /* do things here */
-  
-  carray_free(a);
-  
-  exit(EXIT_SUCESS);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="carray-set-size">
-        <title>carray_set_size</title>
-        
-        <programlisting role="C">
-int carray_set_size(carray * array, uint32_t new_size);
-        </programlisting>
-
-        <para>
-          <command>carray_set_size()</command> sets the size of the
-          array. It returns <command>0</command> in case of success,
-          <command>-1</command> in case of failure.
-        </para>
-
-        <example>
-          <title>preallocating carray</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdlib.h&gt;
-
-#define SIZE 50
-#define NEWSIZE 200
-
-int main(void)
-{
-  carray * a;
-  unsigned int i;
-  char p[500];
-  
-  a = carray_new(SIZE);
-  if (a == NULL)
-    goto err;
-  
-  r = carray_set_size(NEWSIZE);
-  if (r &lt; 0)
-    goto free;
-  
-  for(i = 0 ; i &lt; NEWSIZE ; i ++)
-    carray_set(a, i, &amp;p[i]);
-  
-  /* do things here */
-  
-  carray_free(a);
-  
-  exit(EXIT_SUCESS);
-  
- free:
-  carray_free(a);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- carray_count, carray_add, carray_get and carray_set -->
-      <sect2 id="carray-count">
-        <title>carray_count, carray_add, carray_get and carray_set</title>
-        
-        <programlisting role="C">
-int carray_count(carray);
-
-int carray_add(carray * array, void * data, unsigned int * index);
-
-void * carray_get(carray * array, unsigned int indx);
-
-void carray_set(carray * array, unsigned int indx, void * value);
-        </programlisting>
-
-        <para>
-          <command>carray_count()</command> returns the number of
-          elements in the <command>carray</command>.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>carray_add()</command>adds an element at the end of
-          the array. The <command>index</command> of the element is
-          returns in <command>(* index)</command> if
-          <command>index</command> is not <command>NULL</command>. It
-          returns <command>0</command> in case of success,
-          <command>-1</command> in case of failure.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>carray_get()</command> returns the elements contained
-          at the given cell of the table.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>carray_set()</command> replace the element at the
-          given index of table table with the given value.
-          Complexity is O(1).
-        </para>
-
-        <example>
-          <title>carray access</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;string.h&gt;
-
-#define SIZE 50
-
-int main(void)
-{
-  carray * a;
-  int r;
-  
-  a = carray_new(SIZE);
-  if (a == NULL)
-    goto err;
-    
-  r = carray_add(a, "foo-bar-1", NULL);
-  if (r &lt; 0)
-    goto free;
-    
-  carray_add(a, "foo-bar-2", NULL);
-  if (r &lt; 0)
-    goto free;
-
-  carray_add(a, "foo-bar-3", NULL);
-  if (r &lt; 0)
-    goto free;
-  
-  for(i = 0 ; i &lt; carray_count(a) ; i ++) {
-    char * str;
-    
-    str = carray_get(a, i);
-    if (strcmp("foo-bar-2", str) == 0)
-      carray_set(a, i, "foo-bar-2-replacement");
-    
-    printf("%s\n", str);
-  }
-  
-  carray_free(a);
-  
-  exit(EXIT_SUCESS);
-
- free:
-  carray_free(a);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-      
-      <!-- carray_delete -->
-      <sect2 id="carray-delete">
-        <title>carray_delete</title>
-        
-        <programlisting role="C">
-int carray_delete(carray * array, uint32_t indx);
-
-int carray_delete_slow(carray * array, uint32_t indx);
-
-int carray_delete_fast(carray * array, uint32_t indx);
-        </programlisting>
-
-        <para>
-          <command>carray_delete()</command> removes an element of the
-          table. Order will not be garanteed. The returned result can
-          be ignored.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>carray_delete_slow()</command> removes an element of
-          the table. Order will be garanteed. The returned result can
-          be ignored.
-          Complexity is O(n).
-        </para>
-
-        <para>
-          <command>carray_delete_fast()</command> the element will just
-          be replaced with <command>NULL</command>. Order will be kept
-          but the number of elements will remains the same. The
-          returned result can be ignored.
-          Complexity is O(1).
-        </para>
-
-        <example>
-          <title>deletion in carray</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define SIZE 50
-
-carray * build_array(void)
-{
-  carray * a;
-
-  a = carray_new(SIZE);
-  if (a == NULL)
-    goto err;
-  
-  r = carray_add(a, "foo-bar-1", NULL);
-  if (r &lt; 0)
-    goto free;
-    
-  carray_add(a, "foo-bar-2", NULL);
-  if (r &lt; 0)
-    goto free;
-
-  carray_add(a, "foo-bar-3", NULL);
-  if (r &lt; 0)
-    goto free;
-  
-  return a;
-
- free:
-  carray_free(a);
- err:
-  exit(EXIT_FAILURE);
-}
-
-void delete(carray * a)
-{
-  /* deleting foo-bar-1 */
-  carray_delete(a, 0);
-  /* resulting size is 2, order of elements is undefined */
-}
-
-void delete_slow(carray * a)
-{
-  /* deleting foo-bar-1 */
-  carray_delete_slow(a, 0);
-  /* resulting size is 2, order of elements is the same */
-}
-
-void delete_fast(carray * a)
-{
-  /* deleting foo-bar-1 */
-  carray_delete_slow(a, 0);
-  /* 
-     resulting size is 3,
-     order of elements is { NULL, foo-bar-2, foo-bar-3 }
-  */
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- carray_data -->
-      <sect2 id="carray-data">
-        <title>carray_data</title>
-        
-        <programlisting role="C">
-void ** carray_data(carray);
-        </programlisting>
-        
-        <para>
-          <command>carray_data</command>returns the table used for
-          implementation :
-          <command>(void **)</command>.
-        </para>
-
-      </sect2>
-
-      
-    </sect1>
-
-    <!-- List -->
-    <sect1 id="clist">
-      <title>List</title>
-      
-      <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct clist_s clist;
-
-typedef clistcell clistiter;
-      </programlisting>
-      
-      <para>
-        <command>clist()</command> is a list of cells.
-        Each cell of the list contains one element. This element is a
-        pointer. An iterator (<command>clistiter</command>) is a
-        pointer to an element of the list. With an iterator, we can
-        get the previous element of the list, the next element of the
-        list and the content of the element.
-      </para>
-
-      <sect2 id="clist-new">
-        <title>clist_new and clist_free</title>
-      
-        <programlisting role="C">
-clist * clist_new(void);
-
-void clist_free(clist *);
-        </programlisting>
-
-        <para>
-          <command>clist_new()</command> allocates a new empty list and
-          returns it.
-        </para>
-
-        <para>
-          <command>clist_free()</command> frees the entire list with
-          its cells.
-        </para>
-
-        <example>
-          <title>clist creation</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  clist * list;
-
-  list = clist_new();
-  if (list == NULL)
-    goto err;
-
-  r = clist_append(list, "foo-bar");
-  if (r &lt; 0)
-
-  clist_free(list);
-
-  exit(EXIT_SUCCESS);
-
- free:
-  clist_free(list);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="clist-count">
-        <title>clist_isempty and clist_count</title>
-      
-        <programlisting role="C">
-int clist_isempty(clist *);
-
-int clist_count(clist *);
-        </programlisting>
-        
-        <para>
-          <command>clist_isempty()</command> returns 1 if the list is
-          empty, else it is 0.
-          Complexity is O(1).
-        </para>
-        
-        <para>
-          <command>clist_count()</command> returns the number of
-          elements in the list.
-          Complexity is O(1).
-        </para>
-      </sect2>
-        
-      <sect2 id="clist-begin">
-        <title>running through clist</title>
-      
-        <programlisting role="C">
-clistiter * clist_begin(clist *);
-
-clistiter * clist_end(clist *);
-
-clistiter * clist_next(clistiter *);
-
-clistiter * clist_previous(clistiter *);
-
-void * clist_content(clistiter *);
-
-void * clist_nth_data(clist * lst, int index);
-
-clistiter * clist_nth(clist * lst, int index);
-        </programlisting>
-
-        <para>
-          <command>clist_begin()</command> returns an iterator to the
-          first element of the list.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_end()</command> returns an iterator to the last
-          element of the list.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_next()</command> returns an iterator to the
-          next element of the list.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_previous()</command> returns an iterator to the
-          previous element of the list.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_content()</command> returns the element
-          contained in the cell pointed by the iterator in the list.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_nth()</command> returns an iterator on the
-          <command>index</command>-th element of the list.
-          Complexity is O(n).
-        </para>
-
-        <para>
-          <command>clist_nth_data()</command> returns the index-th
-          element of the list.
-          Complexity is O(n).
-        </para>
-
-        <example>
-          <title>displaying content of clist</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  clist * list;
-  clistiter * iter;
-
-  list = build_string_list();
-  if (list == NULL)
-    goto err;
-
-  for(iter = clist_begin(list) ; iter != NULL ; iter =
-     clist_next(iter)) {
-    char * str;
-
-    str = clist_content(iter);
-    printf("%s\n", str);
-  }
-
-  clist_free(list);
-
-  exit(EXIT_SUCCESS);
-
- free:
-  clist_free(list);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-        
-      <sect2 id="clist-append">
-        <title>clist modification</title>
-
-        <programlisting role="C">
-int clist_prepend(clist *, void *);
-
-int clist_append(clist *, void *);
-
-int clist_insert_before(clist *, clistiter *, void *);
-
-int clist_insert_after(clist *, clistiter *, void *);
-
-clistiter * clist_delete(clist *, clistiter *);
-        </programlisting>
-
-        <para>
-          <command>clist_prepend()</command> adds an element at the
-          beginning of the list. Returns 0 on sucess, -1 on error.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_append()</command> adds an element at the end
-          of the list. Returns 0 on sucess, -1 on error.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_insert_before()</command> adds an element
-          before the element pointed by the given iterator in the
-          list. Returns 0 on sucess, -1 on error.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_insert_after()</command> adds an element after
-          the element pointed by the given iterator in the list.
-          Returns 0 on sucess, -1 on error.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>clist_delete()</command> the elements pointed by
-          the given iterator in the list and returns an iterator to
-          the next element of the list.
-          Complexity is O(1).
-        </para>
-
-        <example>
-          <title>deleting elements in a clist</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-voir print_content(void * content, void * user_data)
-{
-  char * str;
-
-  str = content;
-
-  printf("%s\n", str);
-}
-
-int main(void)
-{
-  clist * list;
-  clistiter * iter;
-
-  list = build_string_list();
-  if (list == NULL)
-    goto err;
-
-  iter = = clist_begin(list);
-  while (iter != NULL)
-    char * str;
-
-    str = clist_content(iter);
-    if (strcmp(str, "foo-bar") == 0)
-      iter = clist_delete(list, cur);
-    else
-      iter = clist_next(iter);
-  }
-
-  clist_foreach(list, print_content, NULL);
-  printf("\n");
-
-  clist_free(list);
-
-  exit(EXIT_SUCCESS);
-
- free:
-  clist_free(list);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="clist-foreach">
-        <title>clist_foreach</title>
-
-        <programlisting role="C">
-typedef void (* clist_func)(void *, void *);
-
-void clist_foreach(clist * lst, clist_func func, void * data);
-        </programlisting>
-
-        <para>
-          <command>clist_foreach()</command> apply a fonction to each
-          element of the list.
-          Complexity is O(n).
-        </para>
-      </sect2>
-      
-      <sect2 id="clist-concat">
-        <title>clist_concat</title>
-        
-        <programlisting role="C">
-void clist_concat(clist * dest, clist * src);
-        </programlisting>
-
-        <para>
-          <command>clist_concat()</command> adds all the elements of src
-          at the end of dest. Elements are added in the same
-          order. src is an empty list when the operation is finished.
-          Complexity is O(1).
-        </para>
-
-        <example>
-          <title>merging two clists</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  clist * list;
-  clist * list_2;
-  clistiter * iter;
-
-  list = build_string_list();
-  if (list == NULL)
-    goto err;
-
-  list_2 = build_string_list_2();
-  if (list == NULL)
-    goto free_list;
-
-  clist_concat(list, list_2);
-  clist_free(list_2);
-
-  for(iter = clist_begin(list) ; iter != NULL ; iter =
-     clist_next(iter)) {
-    char * str;
-
-    str = clist_content(iter);
-    printf("%s\n", str);
-  }
-
-  clist_free(list);
-
-  exit(EXIT_SUCCESS);
-
- free_list:
-  clist_free(list);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-    </sect1>
-    
-    <!-- Hash -->
-    <sect1>
-      <title>Hash table</title>
-      
-      <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct chash chash;
-
-typedef struct chashcell chashiter;
-
-typedef struct {
-  char * data;
-  int len;
-} chashdatum;
-      </programlisting>
-
-      <para>      
-        <command>chash</command> is a hash table.
-        <command>chashiter</command> is a pointer to an element of the
-        hash table.
-        <command>chashdatum</command> is an element to be placed in
-        the hash table as a key or a value. It consists in 
-        data and a corresponding length.
-      </para>
-
-      <sect2 id="chash-new">
-        <title>chash_new and chash_free</title>
-        <programlisting role="C">
-#define CHASH_COPYNONE    0
-#define CHASH_COPYKEY     1
-#define CHASH_COPYVALUE   2
-#define CHASH_COPYALL     (CHASH_COPYKEY | CHASH_COPYVALUE)
-
-chash * chash_new(int size, int flags);
-
-void chash_free(chash * hash);
-        </programlisting>
-
-        <para>
-          <command>chash_new()</command> returns a new empty hash table
-          or <command>NULL</command> if this
-          failed. <command>size</command> is the initial size of the
-          table used for implementation. <command>flags</command> can
-          be a combinaison of <command>CHASH_COPYKEY</command> and
-          <command>CHASH_COPYVALUE</command>.
-          <command>CHASH_COPYKEY</command> enables copy of key, so
-          that the initial value used for <command>chash_set()</command>
-        </para>
-
-        <para>
-          <command>chash_free()</command> releases memory used by the
-          hash table.
-        </para>
-      </sect2>
-
-      <sect2 id="chash-get">
-        <title>chash_set and chash_get</title>
-        <programlisting role="C">
-int chash_set(chash * hash,
-    chashdatum * key, chashdatum * value, chashdatum * oldvalue);
-
-int chash_get(chash * hash,
-    chashdatum * key, chashdatum * result);
-        </programlisting>
-
-        <para>
-          <command>chash_set()</command> adds a new element into the
-          hash table. If a previous element had the same key, it is
-          returns into oldvalue if <command>oldvalue</command> is
-          different of NULL.
-          Medium complexity is O(1).
-        </para>
-        
-        <para>
-          returns -1 if it fails, 0 on success.
-        </para>
-
-        <para>
-          <command>chash_get()</command>returns the corresponding value
-          of the given key. If there is no corresponding value, -1 is
-          returned. 0 on success.
-          Medium complexity is O(1).
-        </para>
-
-        <example>
-          <title>chash insert and lookup</title>
-          <programlisting role="C">
-int main(void)
-{
-  chash * hash;
-  int r;
-  chashdatum key;
-  chashdatum value;
-  char * str1 = "my-data";
-  char * str2 = "my-data";
-
-  hash = chash_new(CHASH_DEFAULTSIZE, CHASH_COPYNONE);
-
-  key.data = "foo";
-  key.len = strlen("foo");  
-  value.data = str1;
-  value.data = strlen(str1) + 1;
-  /* + 1 is needed to get the terminal zero in the returned string */
-  r = chash_set(hash, &amp;key, &amp;value, NULL);
-  if (r &lt; 0)
-    goto free_hash;
-
-  key.data = "bar";
-  key.len = strlen("bar");  
-  value.data = str2;
-  value.data = strlen(str2) + 1;
-  if (r &lt; 0)
-    goto free_hash;
-  
-  key.data = "foo";
-  key.len = strlen("foo");  
-  r = chash_get(hash, &amp;key, &amp;value);
-  if (r &lt; 0) {
-    printf("element not found\n");
-  }
-  else {
-    char * str;
-
-    str = value.data;
-    printf("found : %s", str);
-  }
-  
-  chash_free(hash);
-
-  exit(EXIT_SUCCESS);
-
- free_hash:
-  chash_free(hash);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="chash-delete">
-        <title>chash_delete</title>
-        <programlisting role="C">
-int chash_delete(chash * hash,
-    chashdatum * key, chashdatum * oldvalue);
-        </programlisting>
-
-        <para>
-          deletes the key/value pair given the corresponding key.
-          The value is returned in old_value.
-          If there is no corresponding value, -1 is returned. 0 on success.
-          Medium complexity is O(1).
-        </para>
-
-        <example>
-          <title>key deletion in a chash</title>
-          <programlisting role="C">
-int main(void)
-{
-  chash * hash;
-  int r;
-  chashdatum key;
-  chashdatum value;
-  char * str1 = "my-data";
-  char * str2 = "my-data";
-
-  hash = build_hash();
-  
-  key.data = "foo";
-  key.len = strlen("foo");  
-  chash_delete(hash, &amp;key, &amp;value);
-
-  /* it will never be possible to lookup "foo" */
-  key.data = "foo";
-  key.len = strlen("foo");
-  r = chash_get(hash, &amp;key, &amp;value);
-  if (r &lt; 0) {
-    printf("element not found\n");
-  }
-  else {
-    char * str;
-
-    str = value.data;
-    printf("found : %s", str);
-  }
-  
-  chash_free(hash);
-
-  exit(EXIT_SUCCESS);
-
- free_hash:
-  chash_free(hash);
- err:
-  exit(EXIT_FAILURE);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="chash-resize">
-        <title>chash_resize</title>
-        <programlisting role="C">
-int chash_resize(chash * hash, int size);
-        </programlisting>
-
-        <para>
-          <command>chash_resize()</command> changes the size of the
-          table used for implementation of the hash table.
-          returns 0 on success, -1 on failure.
-        </para>
-      </sect2>
-      
-      <sect2 id="chash-begin">
-        <title>running through the chash</title>
-        <programlisting role="C">
-chashiter * chash_begin(chash * hash);
-
-chashiter * chash_next(chash * hash, chashiter * iter);
-
-void chash_key(chashiter * iter, chashdatum * result);
-
-void chash_value(chashiter iter, chashdatum * result);
-        </programlisting>
-
-        <para>
-          <command>chash_begin()</command> returns a pointer to the
-          first element of the hash table. Returns
-          <command>NULL</command> if there is no elements in the hash
-          table.
-          Complexity is O(n).
-        </para>
-
-        <para>
-          <command>chash_next()</command> returns a pointer to the next
-          element of the hash table. Returns <command>NULL</command>
-          if there is no next element.
-          Complexity is O(n) but n calls to chash_next() also has 
-          a complexity of O(n).
-        </para>
-
-        <para>
-          <command>chash_key()</command> returns the key of the given
-          element of the hash table.
-        </para>
-
-        <para>
-          <command>chash_value</command> returns the value of the
-          given element of the hash table.
-        </para>
-
-        <example>
-          <title>running through a chash</title>
-          <programlisting role="C">
-int main(void)
-{
-  chash * hash;
-  int r;
-  chashiter * iter;
-
-  hash = build_hash();
-
-  /* this will display all the values stored in the hash */
-  for(iter = chash_begin(hash) ; iter != NULL ; iter =
-    chash_next(hash, iter)) {
-    chashdatum key;
-    chashdatum value;
-    char * str;
-
-    chash_value(iter, &amp;value);
-    str = value.data;
-    printf("%s\n", str);
-  }
-
-  chash_free(hash);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <sect2 id="chash-count">
-        <title>chash_size and chash_count</title>
-        <programlisting role="C">
-int chash_size(chash * hash);
-
-int chash_count(chash * hash);
-        </programlisting>
-
-        <para>
-          <command>chash_size()</command> returns the size of the table
-          used for implementation of the hash table.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>chash_count()</command> returns the number of
-          elements in the hash table.
-          Complexity is O(1).
-        </para>
-      </sect2>
-    </sect1>
-    
-    <!-- mailstream -->
-    <sect1>
-      <title>Buffered I/O</title>
-      
-<programlisting role="C">      
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct _mailstream mailstream;
-      </programlisting>      
-
-      <para>
-        streams are objects where we can read data from and write data
-        to. They are not seekable. That can be for example a pipe or a
-        network stream.
-      </para>
-
-      <programlisting role="C">
-mailstream * mailstream_new(mailstream_low * low, size_t buffer_size);
-
-int mailstream_close(mailstream * s);
-      </programlisting>
-
-      <para>
-        <command>mailstream_new()</command> creates a new stream
-        stream with the low-level (see <xref linkend="mailstream-low">) 
-        stream and a given buffer size.
-      </para>
-
-      <para>
-        <command>mailstream_close()</command> closes the stream.
-        This function will be in charge to free the
-        <command>mailstream_low</command> structure.
-      </para>
-
-
-      <programlisting role="C">      
-ssize_t mailstream_write(mailstream * s, void * buf, size_t count);
-
-int mailstream_flush(mailstream * s);
-
-ssize_t mailstream_read(mailstream * s, void * buf, size_t count);
-
-ssize_t mailstream_feed_read_buffer(mailstream * s);
-      </programlisting>
-
-      <para>
-        <command>mailstream_write()</command> writes a buffer to the
-        given stream. This write operation will be buffered.
-      </para>
-
-      <para>
-        <command>mailstream_flush()</command> will force a write of
-        all buffered data for a given stream.
-      </para>
-
-      <para>
-        <command>mailstream_read()</command> reads data from the
-        stream to the given buffer.
-      </para>
-
-      <para>
-        <command>mailstream_feed_read_buffer()</command> this function
-        will just fill the buffer for reading.
-      </para>
-
-      <programlisting role="C">      
-mailstream_low * mailstream_get_low(mailstream * s);
-
-void mailstream_set_low(mailstream * s, mailstream_low * low);
-      </programlisting>
-
-      <para>
-        <command>mailstream_get_low()</command> returns the low-level
-        stream of the given stream.
-      </para>
-
-      <para>
-        <command>mailstream_set_low()</command> changes the low-level
-        of the given stream. Useful, for 
-        example, when a stream change from clear stream to SSL
-        stream.
-      </para>
-
-      <programlisting role="C">
-char * mailstream_read_line(mailstream * stream, MMAPString * line);
-
-char * mailstream_read_line_append(mailstream * stream, MMAPString * line);
-
-char * mailstream_read_line_remove_eol(mailstream * stream, MMAPString * line);
-
-char * mailstream_read_multiline(mailstream * s, size_t size,
-    MMAPString * stream_buffer,
-    MMAPString * multiline_buffer,
-    size_t progr_rate,
-    progress_function * progr_fun);
-      </programlisting>
-
-      <para>
-        <command>mailstream_read_line()</command> reads an entire line
-        from the buffer and store it into the 
-        given string. returns <command>NULL</command> on error, the
-        corresponding array 
-        of <command>char</command> is returned otherwise.
-      </para>
-
-      <para>
-        <command>mailstream_read_line_append()</command> reads an entire
-        line from the buffer and appends it to the 
-        given string. returns <command>NULL</command> on error, the
-        array of char corresponding to the entire buffer is returned
-        otherwise.
-      </para>
-
-      <para>
-        <command>mailstream_read_line_remove_eol()</command> reads an
-        entire line from the buffer and store it into the 
-        given string. All CR LF are removed.
-        returns <command>NULL</command> on error, the corresponding
-        array of <command>char</command> is returned otherwise.
-      </para>
-
-      <para>
-        <command>mailstream_read_multiline()</command> reads a
-        multiline data (several lines, the data are ended with 
-        a single period '.')
-        from the given stream and store it into the given
-        multiline buffer (multiline_buffer). progr_rate should be 0
-        and progr_fun <command>NULL</command> (deprecated things).
-        <command>stream_buffer</command> is a buffer used for internal
-        work of the function.
-        size should be 0 (deprecated things).
-      </para>
-
-      <programlisting role="C">      
-int mailstream_is_end_multiline(char * line);
-      </programlisting>
-
-      <para>
-        returns 1 if the line is an end of multiline data (a single
-        period '.', eventually with CR and/or LF). 0 is returned
-        otherwise.
-      </para>
-
-      <programlisting role="C">      
-int mailstream_send_data(mailstream * s, char * message,
-    size_t size,
-    size_t progr_rate,
-    progress_function * progr_fun);
-      </programlisting>
-
-      <para>
-        sends multiline data to the given stream.
-        <command>size</command> is the size of the data.
-        <command>progr_rate</command> and <command>progr_fun</command>
-        are deprecated. <command>progr_rate</command> must be 0,
-        <command>progr_fun</command> must be NULL.
-      </para>
-      
-      <sect2 id="mailstream-socket">
-        <title>socket stream</title>
-
-        <programlisting role="C">
-mailstream * mailstream_socket_open(int fd);
-        </programlisting>
-
-        <para>
-          <command>mailstream_socket_open()</command> will open a
-          clear-text socket.
-        </para>
-      </sect2>
-      
-      <sect2 id="mailstream-ssl">
-        <title>TLS stream</title>
-
-        <programlisting role="C">
-mailstream * mailstream_ssl_open(int fd);
-        </programlisting>
-      
-        <para>
-          <command>mailstream_ssl_open()</command> will open a
-          TLS/SSL socket.
-        </para>
-      </sect2>  
-    </sect1>
-
-    <!-- mailstream_low -->
-    <sect1 id="mailstream-low">
-      <title>non-buffered I/O</title>
-      
-      <programlisting role="C">      
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailstream_low_driver {
-  ssize_t (* mailstream_read)(mailstream_low *, void *, size_t);
-  ssize_t (* mailstream_write)(mailstream_low *, void *, size_t);
-  int (* mailstream_close)(mailstream_low *);
-  int (* mailstream_get_fd)(mailstream_low *);
-  void (* mailstream_free)(mailstream_low *);
-};
-
-typedef struct mailstream_low_driver mailstream_low_driver;
-
-struct _mailstream_low {
-  void * data;
-  mailstream_low_driver * driver;
-};
-        </programlisting>
-
-      <para>
-        <command>mailstream_low</command> is a non-buffered stream.
-      </para>
-
-      <para>
-        The <command>mailstream_low_driver</command> is a set of
-        functions used to access the stream.
-      </para>
-      
-      <itemizedlist>
-        <listitem>
-          <para>
-            <command>mailstream_read/write/close()</command> is the same
-            interface as <command>read/write/close()</command>
-            system calls, except that the file descriptor is replaced with the
-            <command>mailstream_low</command> structure.
-          </para>
-            </listitem>
-            <listitem>
-          <para>
-            <command>mailstream_get_fd()</command> returns the file
-            descriptor used for this non-buffered stream.
-          </para>
-            </listitem>
-            <listitem>
-          <para>
-            <command>mailstream_free()</command> is in charge to free
-            the internal structure of the mailstream_low and the
-            mailstream_low itself.
-          </para>
-        </listitem>
-      </itemizedlist>
-      
-      <programlisting role="C">      
-mailstream_low * mailstream_low_new(void * data,
-    mailstream_low_driver * driver);
-      </programlisting>
-      
-      <para>
-        mailstream_low_new() creates a low-level mailstream with the
-        given internal structure (data) and using the given set of
-        functions (driver).
-      </para>
-
-      <programlisting role="C">      
-ssize_t mailstream_low_write(mailstream_low * s, void * buf, size_t count);
-
-ssize_t mailstream_low_read(mailstream_low * s, void * buf, size_t count);
-
-int mailstream_low_close(mailstream_low * s);
-
-int mailstream_low_get_fd(mailstream_low * s);
-
-void mailstream_low_free(mailstream_low * s);
-      </programlisting>
-
-      <para>
-        Each of these calls will call the corresponding function defined
-        in the driver.
-      </para>
-      
-    </sect1>
-
-
-    <!-- MMAPString -->
-    <sect1>
-      <title>strings</title>
-      
-      <programlisting role="C">      
-#include &lt;libetpan/libetpan.h&gt;
-
-struct _MMAPString
-{
-  char * str;
-  size_t len;    
-  size_t allocated_len;
-  int fd;
-  size_t mmapped_size;
-};
-
-typedef struct _MMAPString MMAPString;
-      </programlisting>
-      
-      <para>
-        MMAPString is a string which size that can increase automatically.
-      </para>
-      
-      <sect2 id="mmap-string-new">
-        <title>constructor and destructor</title>
-        <programlisting role="C">
-MMAPString * mmap_string_new(const char * init);
-
-MMAPString * mmap_string_new_len(const char * init, size_t len);   
-
-MMAPString * mmap_string_sized_new(size_t dfl_size);
-
-void mmap_string_free(MMAPString * string);
-        </programlisting>
-      
-        <para>
-          <command>mmap_string_new()</command> allocates a new
-          string. init is the intial value of the string.
-          <command>NULL</command> will be returned on error.
-        </para>
-        
-        <para>
-          <command>mmap_string_new_len()</command> allocates a new
-          string. init is the intial value of the 
-          string, len is the length of the initial string.
-          <command>NULL</command> will be returned on error.
-        </para>
-
-        <para>
-          <command>mmap_string_sized_new()</command> allocates a new
-          string. dfl_size is the initial allocation of 
-          the string. <command>NULL</command> will be returned on error.
-        </para>
-
-        <para>
-          <command>mmap_string_free()</command> release the memory used
-          by the string.
-        </para>
-      </sect2>
-      
-      <sect2 id="mmap-string-assign">
-        <title>string value modification</title>
-        <programlisting role="C">
-MMAPString * mmap_string_assign(MMAPString * string, const char * rval);
-
-MMAPString * mmap_string_truncate(MMAPString *string, size_t len);    
-        </programlisting>
-        
-        <para>
-          <command>mmap_string_assign()</command> sets a new value for
-          the given string.
-          <command>NULL</command> will be returned on error.
-        </para>
-
-        <para>
-          <command>mmap_string_truncate()</command> sets a length for
-          the string.
-          <command>NULL</command> will be returned on error.
-        </para>
-
-        <programlisting role="C">
-MMAPString * mmap_string_set_size (MMAPString * string, size_t len);
-        </programlisting>
-        
-        <para>
-          sets the allocation of the string.
-          <command>NULL</command> will be returned on error.
-        </para>
-      </sect2>
-
-      <sect2 id="mmap-string-append">
-        <title>insertion in string, deletion in string</title>
-        <programlisting role="C">
-MMAPString * mmap_string_insert_len(MMAPString * string, size_t pos,   
-    const char * val, size_t len);  
-
-MMAPString * mmap_string_append(MMAPString * string, const char * val);
-
-MMAPString * mmap_string_append_len(MMAPString * string,
-  const char * val, size_t len);  
-
-MMAPString * mmap_string_append_c(MMAPString * string, char c);
-
-MMAPString * mmap_string_prepend(MMAPString * string, const char * val);
-
-MMAPString * mmap_string_prepend_c(MMAPString * string, char c);
-
-MMAPString * mmap_string_prepend_len(MMAPString * string, const char * val,
-  size_t len);  
-
-MMAPString * mmap_string_insert(MMAPString * string, size_t pos,
-  const char * val);
-
-MMAPString * mmap_string_insert_c(MMAPString *string, size_t pos,
-  char c);
-
-MMAPString * mmap_string_erase(MMAPString * string, size_t pos,    
-  size_t len);
-        </programlisting>
-        
-        <para>
-          For complexity here, n is the size of the given MMAPString,
-          and len is the size of the string to insert.
-        </para>
-
-        <para>
-          <command>mmap_string_insert_len()</command> inserts the given
-          string value of given length in the string at the given
-          position. <command>NULL</command> will be returned on error.
-          Complexity is O(n + len).
-        </para>
-        
-        <para>
-          <command>mmap_string_append()</command> appends the given
-          string value at the end of the string.
-          <command>NULL</command> will be returned on error.
-          Complexity is O(len).
-        </para>
-
-        <para>
-          <command>mmap_string_append_len()</command> appends the
-          given string value of given length at the end of the
-          string. <command>NULL</command> will be returned on error.
-          Complexity is O(len).
-        </para>
-
-        <para>
-          <command>mmap_string_append_c()</command> appends the given
-          character at the end of the string.
-          <command>NULL</command> will be returned on error.
-          Complexity is O(1).
-        </para>
-
-        <para>
-          <command>mmap_string_prepend()</command> insert the given
-          string value at the beginning of the string.
-          <command>NULL</command> will be returned on error.
-          Complexity is O(n + len).
-        </para>
-
-        <para>
-          <command>mmap_string_prepend_c()</command> insert the given
-          character at the beginning of the string.
-          <command>NULL</command> will be returned on error.
-          Complexity is O(n).
-        </para>
-        
-        <para>
-          <command>mmap_string_prepend_len()</command> insert the given
-          string value of given length at the beginning of the string.
-          <command>NULL</command> will be returned on error.
-          Complexity is O(n + len).
-        </para>
-
-        <para>
-          <command>mmap_string_insert()</command> inserts the given
-          string value in the string at the given position.
-          NULL will be returned on error.
-          Complexity is O(n + len).
-        </para>
-
-        <para>
-          <command>mmap_string_insert_c()</command> inserts the given
-          character in the string at the given position.
-          NULL will be returned on error.
-          Complexity is O(n).
-        </para>
-
-        <para>
-          <command>mmap_string_erase()</command> removes the given
-          count of characters (len) at the given position of the
-          string. <command>NULL</command> will be returned on error.
-          Complexity is O(n).
-        </para>
-        
-      </sect2>
-
-      <sect2 id="mmap-string-ref">
-        <title>referencing string</title>
-        <programlisting role="C">
-int mmap_string_ref(MMAPString * string);
-
-int mmap_string_unref(char * str);
-        </programlisting>
-
-        <para>
-          MMAPString provides a mechanism that let you use MMAPString
-          like normal strings. You have first to use
-          <command>mmap_string_ref()</command>, so that you notify
-          that the string will be used as a normal string, then, you
-          use <command>mmapstr-&gt;str</command> to refer to the
-          string. When you have finished and you want to free a string
-          corresponding to a <command>MMAPString</command>, you will
-          use <command>mmap_string_unref</command>.
-        </para>
-        
-        <para>
-          <command>mmap_string_ref()</command> references the string
-          so that the array of characters can be used as a normal
-          string then released with
-          <command>mmap_string_unref()</command>.
-          The array of characters will be obtained with string-&gt;str.
-          returns -1 on error, 0 on success.
-        </para>
-      </sect2>
-    </sect1>
-  </chapter>
-
-  <!-- IMF -->
-  <chapter id="imf">
-    <title>Internet Message Format</title>
-    
-    <para>
-      libEtPan! implements Internet Message parser. Currently, format
-      is RFC 2822.
-      This module also allows to generate messages.
-    </para>
-
-    <warning>
-      <para>
-        All allocation functions will take as argument allocated data
-        and will store these data in the structure they will allocate.
-        Data should be persistant during all the use of the structure
-        and will be freed by the free function of the structure
-      </para>
-
-      <para>
-        allocation functions will return <command>NULL</command> on failure
-
-        functions returning integer will be returning one of the
-        following error code:
-        <command>MAILIMF_NO_ERROR</command>,
-        <command>MAILIMF_ERROR_PARSE</command>,
-        <command>MAILIMF_ERROR_MEMORY</command>,
-        <command>MAILIMF_ERROR_INVAL</command>,
-        or <command>MAILIMF_ERROR_FILE</command>.
-      </para>
-    </warning>
-
-    <sect1>
-      <title>Quick start</title>
-      
-      <para>
-        You will need this module when you want to parse headers
-        of messages or when you want to build message headers
-        conformant to standards.
-      </para>
-      
-      <sect2>
-        <title>Parse message headers</title>
-        <para>
-          You will use one of the four following functions, depending
-          on your needs :
-        </para>
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>mailimf_envelope_and_optional_fields_parse</command>
-              (<xref linkend="mailimf-envelope-and-optional-fields-parse">),
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mailimf_envelope_fields_parse</command>
-              (<xref linkend="mailimf-envelope-fields-parse">),
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mailimf_optional_fields_parse</command>
-              (<xref linkend="mailimf-optional-fields-parse">),
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mailimf_fields_parse</command>
-              (<xref linkend="mailimf-fields-parse">).
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <sect2>
-        <title>Render the message headers</title>
-        <para>
-          Build your message headers, then use
-          <command>mailimf_fields_write</command>
-          (<xref linkend="mailimf-fields-write">)
-          to render the headers.
-        </para>
-      </sect2>
-    </sect1>
-    
-    <sect1>
-      <title>Data types</title>
-      <!-- mailimf_mailbox -->
-      <sect2 id="mailimf-mailbox">
-        <title>mailimf_mailbox - mailbox</title>
-        <para>
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_mailbox {
-  char * mb_display_name; /* can be NULL */
-  char * mb_addr_spec;    /* != NULL */
-};
-
-struct mailimf_mailbox *
-mailimf_mailbox_new(char * mb_display_name, char * mb_addr_spec);
-
-void mailimf_mailbox_free(struct mailimf_mailbox * mailbox);
-        </para>
-
-        <para>
-          This is an email mailbox with a display name.
-        </para>
-        
-        <example>
-          <title>example of mailbox</title>
-          <programlisting>
-DINH Viet Hoa &lt;hoa@users.sourceforge.net&gt;
-          </programlisting>
-        </example>
-        
-        <para>
-          <command>mailimf_mailbox_new</command> creates and
-          initializes a data structure with a value.
-          Strings given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_mailbox_free</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>mailbox creation and display</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_mailbox * mb;
-  char * display_name;
-  char * address;
-  
-  display_name = strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?=");
-  address = strdup("dinh.viet.hoa@free.fr");
-  mb = mailimf_mailbox_new(str, address);
-  /* do the things */
-  mailimf_mailbox_free(mb);
-  
-  return 0;
-}
-
-/* display mailbox information */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_mailbox(struct mailimf_mailbox * mb)
-{
-  if (mb-&gt;mb_display_name != NULL)
-    printf("display name: %s\n", mb-&gt;mb_display_name);
-  printf("address specifier : %s\n", mb-&gt;mb_addr_spec);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_address -->
-      <sect2 id="mailimf-address">
-        <title>mailimf_address - address</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_address {
-  int ad_type;
-  union {
-    struct mailimf_mailbox * ad_mailbox; /* can be NULL */
-    struct mailimf_group * ad_group;     /* can be NULL */
-  } ad_data;
-};
-
-struct mailimf_address *
-mailimf_address_new(int ad_type, struct mailimf_mailbox * ad_mailbox,
-		    struct mailimf_group * ad_group);
-
-void mailimf_address_free(struct mailimf_address * address);
-          </programlisting>
-        
-        <para>
-          This is a mailbox or a group of mailbox.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-            <command>ad_type</command> can be MAILIMF_ADDRESS_MAILBOX or
-              <command>MAILIMF_ADDRESS_GROUP</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>ad_data.ad_mailbox</command> is a mailbox if
-              <command>ad_type</command> is 
-              <command>MAILIMF_ADDRESS_MAILBOX</command>
-              see <xref linkend="mailimf-mailbox">)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>ad_data.group</command> is a group if type is
-              <command>MAILIMF_ADDRESS_GROUP</command>.
-              see <xref linkend="mailimf-group">)
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_address_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_address_free</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>address creation and display</title>
-          <programlisting role="C">
-/* creates an address of type mailbox */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_address * a_mb;
-  struct mailimf_mailbox * mb;
-  char * display_name;
-  char * address;
-  
-  display_name = strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?=");
-  address = strdup("dinh.viet.hoa@free.fr");
-  mb = mailimf_mailbox_new(str, address);
-  
-  a_mb = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  /* do the things */
-  mailimf_address_free(a_mb);
-}
-
-/* creates an address of type group */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_address * a_g;
-  struct mailimf_group * g;
-  char * display_name;
-  
-  display_name = strdup("undisclosed-recipient");
-  g = mailimf_group_new(display_name, NULL);
-  
-  a_g = mailimf_address_new(MAILIMF_ADDRESS_GROUP, NULL, g);
-  /* do the things */
-  mailimf_address_free(a_g);
-  
-  return 0;
-}
-
-/* display the content of an address */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_address(struct mailimf_address * a)
-{
-  clistiter * cur;
-
-  switch (a-&gt;ad_type) {
-    case MAILIMF_ADDRESS_GROUP:
-      display_mailimf_group(a-&gt;ad_data.ad_group);
-      break;
-
-    case MAILIMF_ADDRESS_MAILBOX:
-      display_mailimf_mailbox(a-&gt;ad_data.ad_mailbox);
-      break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_mailbox_list -->
-      <sect2 id="mailimf-mailbox-list">
-        <title>mailimf_mailbox_list - list of mailboxes</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_mailbox_list {
-  clist * mb_list; /* list of (struct mailimf_mailbox *), != NULL */
-};
-
-struct mailimf_mailbox_list *
-mailimf_mailbox_list_new(clist * mb_list);
-
-void mailimf_mailbox_list_free(struct mailimf_mailbox_list * mb_list);
-        </programlisting>
-
-        <para>
-          This is a list of mailboxes.
-        </para>
-
-        <para>
-          <command>mb_list</command> is a list of mailboxes. This is a
-          <command>clist</command> which elements are of type
-          mailimf_mailbox (see <xref linkend="mailimf-mailbox">).
-        </para>
-        
-        <para>
-          <command>mailimf_mailbox_list_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_mailbox_list_free()</command> frees memory used by the
-          structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>Creation and display of mailimf_mailbox_list</title>
-          <programlisting role="C">
-/* creates a list of mailboxes with two mailboxes */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_group * g;
-  char * display_name;
-  struct mailimf_mailbox_list * mb_list;
-  clist * list;  
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  list = clist_append(mb);
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  list = clist_append(mb);
-  
-  mb_list = mailimf_mailbox_list_new(list);
-  /* do the things */
-  mailimf_mailbox_list_free(mb_list);
-  
-  return 0;
-}
-
-/* display a list of mailboxes */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_mailbox_list(struct mailimf_mailbox_list * mb_list)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(mb_list-&gt;mb_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailimf_mailbox * mb;
-    
-    mb = clist_content(cur);
-    
-    display_mailbox(mb);
-    printf("\n");
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_address_list -->
-      <sect2 id="mailimf-address-list">
-        <title>mailimf_address_list - list of addresses</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_address_list {
-  clist * ad_list; /* list of (struct mailimf_address *), != NULL */
-};
-
-struct mailimf_address_list *
-mailimf_address_list_new(clist * ad_list);
-
-void mailimf_address_list_free(struct mailimf_address_list * addr_list);
-        </programlisting>
-
-        <para>
-          This is a list of addresses.
-        </para>
-
-        <para>
-          <command>ad_list</command> is a list of addresses. This is a
-          <command>clist</command> which elements are 
-          of type mailimf_address (see <xref linkend="mailimf-address">).
-        </para>
-
-        <para>
-          <command>mailimf_address_list_new()</command> creates and
-          initializes a data structure with 
-          a value. Structures given as argument are referenced by the
-          created object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_address_list_free()</command> frees memory
-          used by the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of list of addresses</title>
-          <programlisting role="C">
-/* creates a list of addresses with two addresses */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_address_list * addr_list;
-  clist * list;  
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  list = clist_append(addr);
-  
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  list = clist_append(addr);
-  
-  addr_list = mailimf_address_list_new(list);
-  /* do the things */
-  mailimf_address_list_free(mb_list);
-  
-  return 0;
-}
-
-/* display a list of addresses */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_address_list(struct mailimf_address_list * addr_list)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(addr_list-&gt;ad_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailimf_address * addr;
-    
-    addr = clist_content(cur);
-    
-    display_address(addr);
-    printf("\n");
-  }
-}
-            </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_group -->
-      <sect2 id="mailimf-group">
-        <title>mailimf_group - named group of mailboxes</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_group {
-  char * grp_display_name; /* != NULL */
-  struct mailimf_mailbox_list * grp_mb_list; /* can be NULL */
-};
-
-struct mailimf_group *
-mailimf_group_new(char * grp_display_name,
-    struct mailimf_mailbox_list * grp_mb_list);
-
-void mailimf_group_free(struct mailimf_group * group);
-        </programlisting>
-        
-        <para>
-          This is a list of mailboxes tagged with a name.
-        </para>
-        
-        <example>
-          <title>example of group</title>
-          <programlisting>
-            they play music: &lt;steve@morse.foo&gt;, &lt;neal@morse.foo&gt;,
-            &lt;yngwie@malmsteen.bar&gt;, &lt;michael@romeo.bar&gt;;
-          </programlisting>
-        </example>
-
-        <para>
-          <command>grp_display_name</command> is the name that will be
-          displayed for this group,
-          for example '<command>group_name</command>' in
-          '<command>group_name: address1@domain1,
-            address2@domain2;</command>'.
-          This must be allocated with malloc().
-          <command>grp_mb_list</command> is a list of mailboxes
-          (see <xref linkend="mailimf-mailbox-list">).
-        </para>
-
-        <para>
-          <command>mailimf_group_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_group_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of a group</title>
-          <programlisting role="C">
-/* creates an empty group */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_group * g;
-  char * display_name;
-  
-  display_name = strdup("undisclosed-recipient");
-  g = mailimf_group_new(display_name, NULL);
-  /* do the things */
-  mailimf_group_free(g);
-}
-
-/* creates a group with two mailboxes */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_group * g;
-  char * display_name;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_mailbox * mb;
-  clist * list;  
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  list = clist_append(mb);
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  list = clist_append(mb);
-  
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  display_name = strdup("my_group");
-  g = mailimf_group_new(display_name, mb_list);
-  /* do the things */
-  mailimf_group_free(g);
-  
-  return 0;
-}
-
-/* display content of group */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_group(struct mailimf_group * group)
-{
-  printf("name of the group: %s\n", a-&gt;group-&gt;display_name);
-  for(cur = clist_begin(a-&gt;group-&gt;mb_list-&gt;list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailimf_mailbox * mb;
-
-    mb = clist_content(cur);
-    display_mailbox(mb);
-    printf("\n");
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_date_time -->
-      <sect2 id="mailimf-date-time">
-        <title>mailimf_date_time - date of a message</title>
-
-        <para>
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_date_time {
-  int dt_day;
-  int dt_month;
-  int dt_year;
-  int dt_hour;
-  int dt_min;
-  int dt_sec;
-  int dt_zone;
-};
-
-struct mailimf_date_time *
-mailimf_date_time_new(int dt_day, int dt_month, int dt_year,
-    int dt_hour, int dt_min, int dt_sec, int dt_zone);
-
-void mailimf_date_time_free(struct mailimf_date_time * date_time);
-        </para>
-
-        <para>
-          This is the date and time of a message.
-          For example :
-        </para>
-        <example>
-          <title>example of date</title>
-          <programlisting>
-Thu, 11 Dec 2003 00:15:02 +0100.
-          </programlisting>
-        </example>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>dt_day</command> is the day of month (1 to 31)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_month</command> (1 to 12)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_year</command> (4 digits)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_hour</command> (0 to 23)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_min</command> (0 to 59)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_sec</command> (0 to 59)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dt_zone</command> (this is the decimal value that
-              we can read, for example: for
-              '<command>-0200</command>', the value is
-              <command>-200</command>).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_date_time_new()</command> creates and
-          initializes a date structure with a value.
-        </para>
-        
-        <para>
-          <command>mailimf_date_time_free()</command> frees memory used
-          by the structure.
-        </para>
-
-        <example>
-          <title>creation and display of date</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_date_time * d;
-  
-  d = mailimf_date_time_new(9, 5, 2003, 3, 01, 40, -0200);
-  /* do the things */
-  mailimf_date_time_free(d);
-  
-  return 0;
-}
-
-/* display the date */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_date(struct mailimf_date_time * d)
-{
-  printf("%02i/%02i/%i %02i:%02i:%02i %+04i\n",
-    d-&gt;dt_day, d-&gt;dt_month, d-&gt;dt_year,
-    d-&gt;dt_hour, d-&gt;dt_min, d-&gt;dt_sec, d-&gt;dt_zone);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_orig_date -->
-      <sect2 id="mailimf-orig-date">
-        <title>mailimf_orig_date - parsed content of date header</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_orig_date {
-  struct mailimf_date_time * dt_date_time; /* != NULL */
-};
-
-struct mailimf_orig_date * mailimf_orig_date_new(struct mailimf_date_time *
-    dt_date_time);
-
-void mailimf_orig_date_free(struct mailimf_orig_date * orig_date);
-        </programlisting>
-
-        <para>
-          This is the content of a header <command>Date</command> or
-          <command>Resent-Date</command>.
-          It encapsulates a mailimf_date_time
-        </para>
-
-        <para>
-          <command>dt_date_time</command> is the parsed date
-          (see <xref linkend="mailimf-date-time">).
-        </para>
-        
-        <para>
-          <command>mailimf_orig_date_new()</command> creates and
-          initializes a data structure with 
-          a value. Structures given as argument are referenced by the
-          created object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_orig_date_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of Date field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_date_time * d;
-  struct mailimf_orig_date * date;
-  
-  d = mailimf_date_time_new(9, 5, 2003, 3, 01, 40, -0200);
-  date = mailimf_orig_date_new(d);
-  /* do the things */
-  mailimf_orig_date_free(date);
-  
-  return 0;
-}
-
-/* display date header */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_orig_date(struct mailimf_orig_date * orig_date)
-{
-  display_date_time(d-&gt;dt_date_time);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_from -->
-      <sect2 id="mailimf-from">
-        <title>mailimf_from - parsed content of From header</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_from {
-  struct mailimf_mailbox_list * frm_mb_list; /* != NULL */
-};
-
-struct mailimf_from *
-mailimf_from_new(struct mailimf_mailbox_list * frm_mb_list);
-
-void mailimf_from_free(struct mailimf_from * from);
-        </programlisting>
-        
-        <para>
-          This is the content of a header <command>From</command> or
-          <command>Resent-From</command>.
-        </para>
-        <para>
-          <command>frm_mb_list</command> is the parsed mailbox list
-          (see <xref linkend="mailimf-mailbox-list">).
-        </para>
-
-        <para>
-          <command>mailimf_from_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_from_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of a From header</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  clist * list;
-  struct mailimf_mailbox * mb;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_from * from;
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  /* do the things */
-  mailimf_from_free(from);
-  
-  return 0;
-}
-
-/* display content of from header */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_from(struct mailimf_from * from)
-{
-  display_mailbox_list(from-&gt;frm_mb_list);
-}
-            </programlisting>
-          </example>
-      </sect2>
-      
-      <!-- mailimf_sender -->
-      <sect2 id="mailimf-sender">
-        <title>mailimf_sender - parsed content of Sender header</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_sender {
-  struct mailimf_mailbox * snd_mb; /* != NULL */
-};
-
-struct mailimf_sender * mailimf_sender_new(struct mailimf_mailbox * snd_mb);
-
-void mailimf_sender_free(struct mailimf_sender * sender);
-        </programlisting>
-
-        <para>
-          This is the content of a header <command>Sender</command> or
-          <command>Resent-Sender</command>.
-        </para>
-        
-        <para>
-          <command>snd_mb</command> is the parsed mailbox
-          (see <xref linkend="mailimf-mailbox">).
-        </para>
-
-        <para>
-          <command>mailimf_sender_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_sender_free()</command> This function frees
-          memory used by the structure and substructures
-          will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of Sender field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_mailbox * mb;
-  struct mailimf_sender * sender;
-  
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  
-  sender = mailimf_sender_new(mb);
-  /* do the things */
-  mailimf_sender_free(sender);
-  
-  return 0;
-}
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_sender(struct mailimf_sender * sender)
-{
-  display_mailbox(sender-&gt;snd_mb);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_reply_to -->
-      <sect2 id="mailimf-reply-to">
-        <title>mailimf_reply_to - parsed content of Reply-To header</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_reply_to {
-  struct mailimf_address_list * rt_addr_list; /* != NULL */
-};
-
-struct mailimf_reply_to *
-mailimf_reply_to_new(struct mailimf_address_list * rt_addr_list);
-
-void mailimf_reply_to_free(struct mailimf_reply_to * reply_to);
-        </programlisting>
-        
-        <para>
-          This is the content of a header <command>Reply-To</command>.
-        </para>
-        
-        <para>
-          <command>addr_list</command> is the parsed address list
-          (see <xref linkend="mailimf-address-list">).
-        </para>
-
-        <para>
-          <command>mailimf_reply_to_new()</command> creates and
-          initializes a data structure with a value. Structures given
-          as argument are referenced by the created object and will be
-          freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_reply_to_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of Reply-To field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  clist * list;
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_address_list * addr_list;
-  struct mailimf_reply_to * reply_to;
-  
-  list = clist_new();
-  
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  addr_list = mailimf_address_list_new(list);
-  
-  reply_to = mailimf_reply_to_new(addr_list);
-  /* do the things */
-  mailimf_reply_to_free(reply_to);
-  
-  return 0;
-}
-
-/* display Reply-To header */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_reply_to(struct mailimf_reply_to * reply_to)
-{
-  display_address_list(reply_to-&gt;addr_list);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_to -->
-      <sect2 id="mailimf-to">
-        <title>mailimf_to - parsed content of To header</title>
-
-        <programlisting role="C">
-        struct mailimf_to {
-  struct mailimf_address_list * to_addr_list; /* != NULL */
-};
-
-struct mailimf_to * mailimf_to_new(struct mailimf_address_list * to_addr_list);
-
-void mailimf_to_free(struct mailimf_to * to);
-        </programlisting>
-        
-        <para>
-          This is the content of a header <command>To</command> or
-          <command>Resent-To</command>.
-        </para>
-        
-        <para>
-          <command>to_addr_list</command> is the parsed address list
-          (see <xref linkend="mailimf-address-list">).
-        </para>
-
-        <para>
-          <command>mailimf_to_new()</command> creates and initializes a
-          data structure with a value. Structures given as argument
-          are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailimf_to_free()</command> frees memory used by the
-          structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of To field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  clist * list;
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_address_list * addr_list;
-  struct mailimf_to * to;
-  
-  list = clist_new();
-  
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  addr_list = mailimf_address_list_new(list);
-  
-  to = mailimf_to_new(addr_list);
-  /* do the things */
-  mailimf_to_free(to);
-  
-  return 0;
-}
-
-/* display To header */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_to(struct mailimf_to * to)
-{
-  display_address_list(to-&gt;to_addr_list);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_cc -->
-      <sect2 id="mailimf-cc">
-        <title>mailimf_cc - parsed content of Cc</title>
-
-<programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_cc {
-  struct mailimf_address_list * cc_addr_list; /* != NULL */
-};
-
-struct mailimf_cc *
-mailimf_cc_new(struct mailimf_address_list * cc_addr_list);
-
-void mailimf_cc_free(struct mailimf_cc * cc);
-</programlisting>
-
-        <para>
-          This is the content of a header <command>Cc</command> or
-          <command>Resent-Cc</command>.
-        </para>
-        
-        <para>
-          <command>cc_addr_list</command> is the parsed address list
-          (see <xref linkend="mailimf-address-list">).
-        </para>
-
-        <para>
-          <command>mailimf_cc_new()</command> creates and initializes a
-          data structure with a value. Structures given as argument
-          are referenced by the created object and will be freed if
-          the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_cc_free()</command> This function frees
-          memory used by the structure and substructures will also be
-          released.
-        </para>
-        
-        <example>
-          <title>creation and display of Cc field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  clist * list;
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_address_list * addr_list;
-  struct mailimf_cc * cc;
-  
-  list = clist_new();
-  
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  addr_list = mailimf_address_list_new(list);
-  
-  cc = mailimf_cc_new(addr_list);
-  /* do the things */
-  mailimf_cc_free(cc);
-  
-  return 0;
-}
-
-/* display content of Cc field */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_cc(struct mailimf_cc * cc)
-{
-  display_address_list(cc-&gt;cc_addr_list);
-}
-
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailimf_bcc -->
-      <sect2 id="mailimf-bcc">
-        <title>mailimf_bcc - parsed content of Bcc field</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_bcc {
-  struct mailimf_address_list * bcc_addr_list; /* can be NULL */
-};
-
-struct mailimf_bcc *
-mailimf_bcc_new(struct mailimf_address_list * bcc_addr_list);
-
-void mailimf_bcc_free(struct mailimf_bcc * bcc);
-        </programlisting>
-        
-        <para>
-          This is the content of a header <command>Bcc</command> or
-          <command>Resent-Bcc</command>.
-        </para>
-
-        <para>
-          <command>bcc_addr_list</command> is the parsed address list
-          (see <xref linkend="mailimf-address-list">).
-        </para>
-
-        <para>
-          <command>mailimf_bcc_new()</command> creates and initializes a
-          data structure with a value. Structures given as argument
-          are referenced by the created object and will be freed if
-          the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_bcc_free()</command> frees memory used by the
-          structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of Bcc field</title>
-          <programlisting role="C">
-/* create visible Bcc */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  clist * list;
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_address_list * addr_list;
-  struct mailimf_bcc * bcc;
-  
-  list = clist_new();
-  
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  mb = mailimf_mailbox_new(strdup("Christophe GIAUME"),
-    strdup("christophe@giaume.com"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  
-  addr_list = mailimf_address_list_new(list);
-  
-  bcc = mailimf_bcc_new(addr_list);
-  /* do the things */
-  mailimf_bcc_free(bcc);
-  
-  return 0;
-}
-
-/* create unvisible Bcc */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_bcc * bcc;
-  
-  bcc = mailimf_bcc_new(NULL);
-  /* do the things */
-  mailimf_bcc_free(bcc);
-  
-  return 0;
-}
-
-/* display content of Bcc field */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_bcc(struct mailimf_bcc * bcc)
-{
-  if (bcc-&gt;addr_list == NULL) {
-    printf("hidden Bcc\n");
-  }
-  else {
-    display_address_list(bcc-&gt;bcc_addr_list);
-  }
-}
-            </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_message_id -->
-      <sect2 id="mailimf-message-id">
-        <title>mailimf_message_id - parsed content of Message-ID header</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_message_id {
-  char * mid_value; /* != NULL */
-};
-
-struct mailimf_message_id * mailimf_message_id_new(char * mid_value);
-
-void mailimf_message_id_free(struct mailimf_message_id * message_id);
-        </programlisting>
-        
-        <para>
-          This is the content of a header <command>Message-ID</command>
-          or <command>Resent-Message-ID</command>. For example :
-        </para>
-        
-        <example>
-          <title>example of Message-ID</title>
-          <programlisting>
-Message-ID: &lt;200312100009.43592@c01n-c01n.plop.P4N>&gt;
-          </programlisting>
-        </example>
-        
-        <para>
-          <command>mid_value</command> is the message identifier.
-          It is not enclosed by angle bracket.
-        </para>
-
-        <para>
-          <command>mailimf_message_id_new()</command> This function
-          creates and initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          The given string is allocated with
-          <command>malloc()</command> and is not enclosed by angle bracket.
-        </para>
-        
-        <para>
-          <command>mailimf_message_id_free()</command> frees memory
-          used by the structure and substructures will also be
-          released.
-        </para>
-        
-        <example>
-          <title>creation and display of Message-ID field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_message_id * msg_id;
-  char * id;  
-  
-  id = strdup("1037197913.3dd26259752fa@imp.free.fr");
-  msg_id = mailimf_message_id_new(id);
-  /* do the things */
-  mailimf_message_id_free(msg_id);
-  
-  return 0;
-}
-
-/* display message id */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_message_id(struct mailimf_message_id * msg_id)
-{
-  printf("%s\n", msg_id->mid_value);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_in_reply_to -->
-      <sect2 id="mailimf-in-reply-to">
-        <title>mailimf_in_reply_to - parsed content of In-Reply-To
-        field</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_in_reply_to {
-  clist * mid_list; /* list of (char *), != NULL */
-};
-
-struct mailimf_in_reply_to * mailimf_in_reply_to_new(clist * mid_list);
-
-void mailimf_in_reply_to_free(struct mailimf_in_reply_to * in_reply_to);
-        </programlisting>
-
-        <para>
-          content of a header <command>In-Reply-To</command>.
-          For example :
-        </para>
-
-        <programlisting>
-In-Reply-To: &lt;etPan.3fd5fa29.4c3901c1.6b39@homer&gt;
-        </programlisting>
-
-        <para>
-          <command>mid_list</command> is a <command>clist</command>
-          in which elements are message identifiers.
-          their types are <command>(char *)</command> and they are
-          allocated with <command>malloc()</command>.
-        </para>
-        
-        <para>
-          <command>mailimf_in_reply_to_new()</command> creates and
-          initializes a data structure with a value. Structures given
-          as argument are referenced by the created object and will be
-          freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_in_reply_to_free()</command> frees memory
-          used by the structure and substructures will also be
-          released.
-        </para>
-        
-        <example>
-          <title>creation and display of In-Reply-To field</title>
-          <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_in_reply_to * in_reply_to;
-  clist * msg_id_list;  
-  
-  msg_id_list = clist_new();
-  clist_append(msg_id_list,
-    strdup("etPan.3ebbcc18.4014197f.bc1@homer.invalid"));
-  
-  in_reply_to = mailimf_in_reply_to_new(msg_id_list);
-  /* do the things */
-  mailimf_in_reply_to_free(in_reply_to);
-  
-  return 0;
-}
-
-/* display the content of mailimf_in_reply_to */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_in_reply_to(struct mailimf_in_reply_to * in_reply_to)
-{
-  clistiter * cur;
-  
-  for(cur = clist_begin(in_reply_to-&gt;mid_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    char * str;
-    
-    str = clist_content(cur);
-    
-    printf("%s\n", str);
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_references -->
-      <sect2 id="mailimf-references">
-        <title>mailimf_references - parsed content of References field</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_references {
-  clist * mid_list; /* list of (char *) */
-       /* != NULL */
-};
-
-struct mailimf_references * mailimf_references_new(clist * mid_list);
-
-void mailimf_references_free(struct mailimf_references * references);
-          </programlisting>
-        
-        <para>
-          This is the content of a header <command>References</command>.
-          For example :
-        </para>
-        <programlisting>
-In-Reply-To: &lt;etPan.3fd5fa29.4c3901c1.6b39@homer&gt;
-  &lt;3FD5FA78.A1D98E7@oleane.net&gt;
-  &lt;etPan.3fd5fc69.2b349482.730e@homer&gt;
-        </programlisting>
-
-        <para>
-          <command>mid_list</command> is a <command>clist</command>
-          in which elements are message identifiers.
-          their types are <command>(char *)</command> and they are
-          allocated with <command>malloc()</command>.
-        </para>
-
-        <para>
-          <command>mailimf_references_new()</command> creates and
-          initializes a data structure with a value. Structures given
-          as argument are referenced by the created object and will be
-          freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_references_free()</command> frees memory
-          used by the structure and substructures will also be
-          released.
-        </para>
-        
-        <example>
-          <title>creation and display of References field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_references * ref;
-  clist * msg_id_list;  
-  
-  msg_id_list = clist_new();
-  clist_append(msg_id_list,
-    strdup("200304280144.23633.wim.delvaux@adaptiveplanet.com"));
-  clist_append(msg_id_list,
-    strdup("200304301153.19688.wim.delvaux@adaptiveplanet.com"));
-  clist_append(msg_id_list,
-    strdup("etPan.3eb29de4.5fc4d652.3f83@homer"));
-  
-  ref = mailimf_references_new(msg_id_list);
-  /* do the things */
-  mailimf_in_reply_to_free(ref);
-  
-  return 0;
-}
-
-/* display references */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_references(struct mailimf_references * ref)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(ref-&gt;mid_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    char * msg_id;
-    
-    msg_id = clist_content(cur);
-    
-    printf("%s\n", msg_id);
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_subject -->
-      <sect2 id="mailimf-subject">
-        <title>mailimf_subject - parsed content of Subject field</title>
-
-<programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_subject {
-  char * sbj_value; /* != NULL */
-};
-
-struct mailimf_subject * mailimf_subject_new(char * sbj_value);
-
-void mailimf_subject_free(struct mailimf_subject * subject);
-</programlisting>
-        
-        <para>
-          This is the content of a header <command>Subject</command>.
-        </para>
-
-        <para>
-          <command>sbj_value</command> is the value of the field.
-        </para>
-
-        <para>
-          <command>mailimf_subject_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_subject_free</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of Subject field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_subject * subject;  
-
-  subject = mailimf_subject_new(strdup("example of subject"));
-  /* do the things */
-  mailimf_subject_free(subject);
-  
-  return 0;
-}
-
-/* display subject header */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_subject(struct mailimf_subject * subject)
-{
-  printf("%s\n", subject->value);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_comments -->
-      <sect2 id="mailimf-comments">
-        <title>mailimf_comments - parsed content of Comments field</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_comments {
-  char * cm_value; /* != NULL */
-};
-
-struct mailimf_comments * mailimf_comments_new(char * cm_value);
-
-void mailimf_comments_free(struct mailimf_comments * comments);
-          </programlisting>
-        
-        <para>
-          This is the content of a header <command>Comments</command>.
-        </para>
-        
-        <para>
-          <command>cm_value</command> is the value of the field.
-        </para>
-        
-        <para>
-          <command>mailimf_comments_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_comments_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of Comment field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_comments * comments;
-
-  comments = mailimf_comments_new(strdup("example of comment"));
-  /* do the things */
-  mailimf_comments_free(comments);
-  
-  return 0;
-}
-
-/* display the content of a comments */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_comments(struct mailimf_comments * comments)
-{
-  printf("%s\n", comments->cm_value);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_keywords -->
-      <sect2 id="mailimf-keywords">
-        <title>mailimf_keywords - parsed content of Keywords field</title>
-        
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_keywords {
-  clist * kw_list; /* list of (char *), != NULL */
-};
-
-struct mailimf_keywords * mailimf_keywords_new(clist * kw_list);
-
-void mailimf_keywords_free(struct mailimf_keywords * keywords);
-          </programlisting>
-        
-        <para>
-          This is the content of a header <command>Keywords</command>.
-        </para>
-
-        <para>
-          <command>kw_list</command> is the list of keywords. This is
-          a list of <command>(char *)</command> allocated with malloc().
-        </para>
-        
-        <para>
-          <command>mailimf_keywords_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_keywords_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of Keywords field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_keywords * keywords;
-  clist * list;
-  
-  list = clist_new();
-  clist_append(list, strdup("sauerkraut"));
-  clist_append(list, strdup("potatoes"));
-  clist_append(list, strdup("cooking"));
-  
-  keywords = mailimf_keywords_new(list);
-  /* do the things */
-  mailimf_keywords_free(keywords);
-  
-  return 0;
-}
-
-/* display the content of mailimf_in_reply_to */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_keywords(struct mailimf_keywords * kw)
-{
-  clistiter * cur;
-  
-  for(cur = clist_begin(kw-&gt;kw_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    char * str;
-    
-    str = clist_content(cur);
-    
-    printf("%s\n", str);
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_return -->
-      <sect2 id="mailimf-return">
-        <title>mailimf_return - parsed content of Return-Path field</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_return {
-  struct mailimf_path * ret_path; /* != NULL */
-};
-
-struct mailimf_return *
-mailimf_return_new(struct mailimf_path * ret_path);
-
-void mailimf_return_free(struct mailimf_return * return_path);
-        </programlisting>
-        
-        <para>
-          This is the content of a header
-          <command>Return-Path</command>.
-        </para>
-        
-        <para>
-          <command>ret_path</command> is the parsed value of Return-Path
-          (see <xref linkend="mailimf-path">).
-        </para>
-        
-        <para>
-          <command>mailimf_return_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_return_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>creation and display of Return-Path field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_path * path;
-  struct mailimf_return * r;
-  
-  path = mailimf_path_new(strdup("dinh.viet.hoa@free.fr"));
-  r = mailimf_return_new(path);
-  /* do the things */
-  mailimf_return_free(r);
-  
-  return 0;
-}
-
-/* display return path */
-
-#include &lt;libetpan/libetpan.h&gt;
-
-void display_return(struct mailimf_return * r)
-{
-  display_path(r-&gt;ret_path);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_path -->
-      <sect2 id="mailimf-path">
-        <title>mailimf_path - address in Return-Path field</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_path {
-  char * pt_addr_spec; /* can be NULL */
-};
-
-struct mailimf_path * mailimf_path_new(char * pt_addr_spec);
-
-void mailimf_path_free(struct mailimf_path * path);
-        </programlisting>
-
-        <para>
-          This is the encapsulation of address specifier for
-          <command>Return-Path</command> content.
-        </para>
-
-        <para>
-          <command>pt_addr_spec</command> is a mailbox destination.
-        </para>
-
-        <para>
-          <command>mailimf_path_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          The given string is allocated with
-          <command>malloc()</command>. This is a address
-          specifier.
-        </para>
-        
-        <para>
-          <command>mailimf_path_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-
-        <example>
-          <title>Creation and display of return path</title>
-          <programlisting role="C">        
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_path * path;
-  
-  path = mailimf_path_new(strdup("dinh.viet.hoa@free.fr"));
-  /* do the things */
-  mailimf_path_free(r);
-  
-  return 0;
-}
-
-/* display return path */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_path(struct mailimf_path * path)
-{
-  printf("%s\n", path-&gt;pt_addr_spec);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_optional_field -->
-      <sect2 id="mailimf-optional-field">
-        <title>mailimf_optional_field - non-standard header</title>
-
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_optional_field {
-  char * fld_name;  /* != NULL */
-  char * fld_value; /* != NULL */
-};
-
-struct mailimf_optional_field *
-mailimf_optional_field_new(char * fld_name, char * fld_value);
-
-void mailimf_optional_field_free(struct mailimf_optional_field * opt_field);
-        </programlisting>
-
-        <para>
-          This is a non-standard header or unparsed header.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_name</command> is the name of the header
-              field.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_value</command> is the value of the header
-              field.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_optional_field_new()</command> This
-          function creates and initializes a data structure with a
-          value. Structures given as argument are referenced by the
-          created object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          field name and field value have to be allocated with
-          <command>malloc()</command>.
-        </para>
-        
-        <para>
-          <command>mailimf_optional_field_free()</command> This
-          function frees memory used by the structure and 
-          substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of non-standard fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_optional_field * opt;
-  
-  opt = mailimf_optional_field_new(strdup("X-My-Field"), strdup("my value"));
-  /* do the things */
-  mailimf_optional_field_free(opt);
-  
-  return 0;
-}
-
-/* display the optional field */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_optional_field(struct mailimf_optional_field * opt)
-{
-  printf("%s: %s\n", opt-&gt;fld_name, opt-&gt;fld_value);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_field -->
-      <sect2 id="mailimf-field">
-        <title>mailimf_field - header field</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILIMF_FIELD_NONE,           /* on parse error */
-  MAILIMF_FIELD_RETURN_PATH,    /* Return-Path */
-  MAILIMF_FIELD_RESENT_DATE,    /* Resent-Date */
-  MAILIMF_FIELD_RESENT_FROM,    /* Resent-From */
-  MAILIMF_FIELD_RESENT_SENDER,  /* Resent-Sender */
-  MAILIMF_FIELD_RESENT_TO,      /* Resent-To */
-  MAILIMF_FIELD_RESENT_CC,      /* Resent-Cc */
-  MAILIMF_FIELD_RESENT_BCC,     /* Resent-Bcc */
-  MAILIMF_FIELD_RESENT_MSG_ID,  /* Resent-Message-ID */
-  MAILIMF_FIELD_ORIG_DATE,      /* Date */
-  MAILIMF_FIELD_FROM,           /* From */
-  MAILIMF_FIELD_SENDER,         /* Sender */
-  MAILIMF_FIELD_REPLY_TO,       /* Reply-To */
-  MAILIMF_FIELD_TO,             /* To */
-  MAILIMF_FIELD_CC,             /* Cc */
-  MAILIMF_FIELD_BCC,            /* Bcc */
-  MAILIMF_FIELD_MESSAGE_ID,     /* Message-ID */
-  MAILIMF_FIELD_IN_REPLY_TO,    /* In-Reply-To */
-  MAILIMF_FIELD_REFERENCES,     /* References */
-  MAILIMF_FIELD_SUBJECT,        /* Subject */
-  MAILIMF_FIELD_COMMENTS,       /* Comments */
-  MAILIMF_FIELD_KEYWORDS,       /* Keywords */
-  MAILIMF_FIELD_OPTIONAL_FIELD, /* other field */
-};
-
-struct mailimf_field {
-  int fld_type;
-  union {
-    struct mailimf_return * fld_return_path;              /* can be NULL */
-    struct mailimf_orig_date * fld_resent_date;    /* can be NULL */
-    struct mailimf_from * fld_resent_from;         /* can be NULL */
-    struct mailimf_sender * fld_resent_sender;     /* can be NULL */
-    struct mailimf_to * fld_resent_to;             /* can be NULL */
-    struct mailimf_cc * fld_resent_cc;             /* can be NULL */
-    struct mailimf_bcc * fld_resent_bcc;           /* can be NULL */
-    struct mailimf_message_id * fld_resent_msg_id; /* can be NULL */
-    struct mailimf_orig_date * fld_orig_date;             /* can be NULL */
-    struct mailimf_from * fld_from;                       /* can be NULL */
-    struct mailimf_sender * fld_sender;                   /* can be NULL */
-    struct mailimf_reply_to * fld_reply_to;               /* can be NULL */
-    struct mailimf_to * fld_to;                           /* can be NULL */
-    struct mailimf_cc * fld_cc;                           /* can be NULL */
-    struct mailimf_bcc * fld_bcc;                         /* can be NULL */
-    struct mailimf_message_id * fld_message_id;           /* can be NULL */
-    struct mailimf_in_reply_to * fld_in_reply_to;         /* can be NULL */
-    struct mailimf_references * fld_references;           /* can be NULL */
-    struct mailimf_subject * fld_subject;                 /* can be NULL */
-    struct mailimf_comments * fld_comments;               /* can be NULL */
-    struct mailimf_keywords * fld_keywords;               /* can be NULL */
-    struct mailimf_optional_field * fld_optional_field;   /* can be NULL */
-  } fld_data;
-};
-
-struct mailimf_field *
-mailimf_field_new(int fld_type,
-    struct mailimf_return * fld_return_path,
-    struct mailimf_orig_date * fld_resent_date,
-    struct mailimf_from * fld_resent_from,
-    struct mailimf_sender * fld_resent_sender,
-    struct mailimf_to * fld_resent_to,
-    struct mailimf_cc * fld_resent_cc,
-    struct mailimf_bcc * fld_resent_bcc,
-    struct mailimf_message_id * fld_resent_msg_id,
-    struct mailimf_orig_date * fld_orig_date,
-    struct mailimf_from * fld_from,
-    struct mailimf_sender * fld_sender,
-    struct mailimf_reply_to * fld_reply_to,
-    struct mailimf_to * fld_to,
-    struct mailimf_cc * fld_cc,
-    struct mailimf_bcc * fld_bcc,
-    struct mailimf_message_id * fld_message_id,
-    struct mailimf_in_reply_to * fld_in_reply_to,
-    struct mailimf_references * fld_references,
-    struct mailimf_subject * fld_subject,
-    struct mailimf_comments * fld_comments,
-    struct mailimf_keywords * fld_keywords,
-    struct mailimf_optional_field * fld_optional_field);
-
-void mailimf_field_free(struct mailimf_field * field);
-        </programlisting>
-
-        <para>
-          This is one header field of a message.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>type</command> is the type of the field. This define the
-              type of the field.
-              Only the corresponding field should be, then,
-              filled. The value of this field can be one of :
-              <command>MAILIMF_FIELD_RETURN_PATH</command>,
-              <command>MAILIMF_FIELD_RESENT_DATE</command>,
-              <command>MAILIMF_FIELD_RESENT_FROM</command>,
-              <command>MAILIMF_FIELD_RESENT_SENDER</command>,
-              <command>MAILIMF_FIELD_RESENT_TO</command>,
-              <command>MAILIMF_FIELD_RESENT_CC</command>,
-              <command>MAILIMF_FIELD_RESENT_BCC</command>,
-              <command>MAILIMF_FIELD_RESENT_MSG_ID</command>,
-              <command>MAILIMF_FIELD_ORIG_DATE</command>,
-              <command>MAILIMF_FIELD_FROM</command>,
-              <command>MAILIMF_FIELD_SENDER</command>,
-              <command>MAILIMF_FIELD_REPLY_TO</command>,
-              <command>MAILIMF_FIELD_TO</command>,
-              <command>MAILIMF_FIELD_CC</command>,
-              <command>MAILIMF_FIELD_BCC</command>,
-              <command>MAILIMF_FIELD_MESSAGE_ID</command>,
-              <command>MAILIMF_FIELD_IN_REPLY_TO</command>,
-              <command>MAILIMF_FIELD_REFERENCES</command>,
-              <command>MAILIMF_FIELD_SUBJECT</command>,
-              <command>MAILIMF_FIELD_COMMENTS</command>,
-              <command>MAILIMF_FIELD_KEYWORDS</command>,
-              <command>MAILIMF_FIELD_OPTIONAL_FIELD</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_return_path</command> is the
-              parsed content of the Return-Path field
-              if type is <command>MAILIMF_FIELD_RETURN_PATH</command>
-              (see <xref linkend="mailimf-return">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_date</command> is the
-              parsed content of the Resent-Date field
-              if type is <command>MAILIMF_FIELD_RESENT_DATE</command>
-              (see <xref linkend="mailimf-orig-date">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_from</command> is the
-              parsed content of the Resent-From field 
-              if type is <command>MAILIMF_FIELD_RESENT_FROM</command>
-              (see <xref linkend="mailimf-from">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_sender</command> is the
-              parsed content of the Resent-Sender field 
-              if type is <command>MAILIMF_FIELD_RESENT_SENDER</command>
-              (see <xref linkend="mailimf-sender">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_to</command> is the parsed
-              content of the Resent-To field 
-              if type is <command>MAILIMF_FIELD_RESENT_TO</command>
-              (see <xref linkend="mailimf-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_cc</command> is the parsed
-              content of the Resent-Cc field 
-              if type is <command>MAILIMF_FIELD_CC</command>
-              (see <xref linkend="mailimf-cc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_bcc</command> is the parsed
-              content of the Resent-Bcc field 
-              if type is <command>MAILIMF_FIELD_BCC</command>
-              (see <xref linkend="mailimf-bcc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_resent_msg_id</command> is the
-              parsed content of the Resent-Message-ID field 
-              if type is <command>MAILIMF_FIELD_RESENT_MSG_ID</command>
-              (see <xref linkend="mailimf-message-id">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_orig_date</command> is the parsed
-              content of the Date field 
-              if type is <command>MAILIMF_FIELD_ORIG_DATE</command>
-              (see <xref linkend="mailimf-orig-date">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_from</command> is the parsed
-              content of the From field 
-              if type is <command>MAILIMF_FIELD_FROM</command>
-              (see <xref linkend="mailimf-from">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_sender</command> is the parsed
-              content of the Sender field 
-              if type is <command>MAILIMF_FIELD_SENDER</command>
-              (see <xref linkend="mailimf-sender">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_reply_to</command> is the parsed
-              content of the Reply-To field 
-              if type is <command>MAILIMF_FIELD_REPLY_TO</command>
-              (see <xref linkend="mailimf-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_to</command> is the parsed content
-              of the To field if type is
-              <command>MAILIMF_FIELD_TO</command>
-              (see <xref linkend="mailimf-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_cc</command> is the parsed content
-              of the Cc field if type is
-              <command>MAILIMF_FIELD_CC</command>
-              (see <xref linkend="mailimf-cc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_bcc</command> is the parsed
-              content of the Bcc field if type is
-              <command>MAILIMF_FIELD_BCC</command>
-              (see <xref linkend="mailimf-bcc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_message_id</command> is the parsed
-              content of the Message-ID field 
-              if type is <command>MAILIMF_FIELD_MESSAGE_ID</command>
-              (see <xref linkend="mailimf-message-id">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_in_reply_to</command> is the
-              parsed content of the In-Reply-To field 
-              if type is <command>MAILIMF_FIELD_IN_REPLY_TO</command>
-              (see <xref linkend="mailimf-in-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_references</command> is the parsed
-              content of the References field 
-              if type is <command>MAILIMF_FIELD_REFERENCES</command>
-              (see <xref linkend="mailimf-references">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_subject</command> is the content
-              of the Subject field 
-              if type is <command>MAILIMF_FIELD_SUBJECT</command>
-              (see <xref linkend="mailimf-subject">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_comments</command> is the content of the
-              Comments field 
-              if type is <command>MAILIMF_FIELD_COMMENTS</command>
-              (see <xref linkend="mailimf-comments">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_keywords</command> is the parsed
-              content of the Keywords field 
-              if type is <command>MAILIMF_FIELD_KEYWORDS</command>
-              (see <xref linkend="mailimf-keywords">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_optional_field</command> is an
-              other field and is not parsed 
-              if type is <command>MAILIMF_FIELD_OPTIONAL_FIELD</command>
-              (see <xref linkend="mailimf-optional-field">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_field_new()</command> creates and
-          initializes a data structure with a value. 
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_field_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of field</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_field * f;
-  struct mailimf_mailbox * mb;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_from * from;
-  
-  /* build header 'From' */
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  
-  f = mailimf_field_new(MAILIMF_FIELD_FROM,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    from, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-  /* do the things */
-  mailimf_field_free(f);
-
-  return 0;
-}
-
-/* display content of the header */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_field(struct mailimf_field * field)
-{
-  switch (field-&gt;type) {
-  case MAILIMF_FIELD_RETURN_PATH:
-    printf("Return-Path:\n");
-    display_return(field-&gt;fld_data.fld_return_path);
-    break;
-  case MAILIMF_FIELD_RESENT_DATE:
-    printf("Resent-Date:\n");
-    display_orig_date(field-&gt;fld_data.fld_orig_date);
-    break;
-  case MAILIMF_FIELD_RESENT_FROM:
-    printf("Resent-From:\n");
-    display_from(field-&gt;fld_data.fld_orig_date);
-    break;
-  case MAILIMF_FIELD_RESENT_SENDER:
-    printf("Resent-Sender:\n");
-    display_sender(field-&gt;fld_data.fld_resent_sender);
-    break;
-  case MAILIMF_FIELD_RESENT_TO:
-    printf("Resent-To:\n");
-    display_to(field-&gt;fld_data.fld_resent_to);
-    break;
-  case MAILIMF_FIELD_RESENT_CC:
-    printf("Resent-Cc:\n");
-    display_from(field-&gt;fld_data.fld_resent_cc);
-    break;
-  case MAILIMF_FIELD_RESENT_BCC:
-    printf("Resent-Bcc:\n");
-    display_from(field-&gt;fld_data.fld_resent_bcc);
-    break;
-  case MAILIMF_FIELD_RESENT_MSG_ID:
-    printf("Resent-Message-ID:\n");
-    display_message_id(field-&gt;fld_data.fld_resent_msg_id);
-    break;
-  case MAILIMF_FIELD_ORIG_DATE:
-    printf("Date:\n");
-    display_orig_date(field-&gt;fld_data.fld_orig_date);
-    break;
-  case MAILIMF_FIELD_FROM:
-    printf("From:\n");
-    display_from(field-&gt;fld_data.fld_from);
-    break;
-  case MAILIMF_FIELD_SENDER:
-    printf("Sender:\n");
-     display_sender(field-&gt;fld_data.fld_sender);
-    break;
-  case MAILIMF_FIELD_REPLY_TO:
-    printf("Reply-To:\n");
-    display_reply_to(field-&gt;fld_data.fld_reply_to);
-    break;
-  case MAILIMF_FIELD_TO:
-    printf("To:\n");
-    display_to(field-&gt;fld_data.fld_to);
-    break;
-  case MAILIMF_FIELD_CC:
-    printf("Cc:\n");
-    display_cc(field-&gt;fld_data.fld_cc);
-    break;
-  case MAILIMF_FIELD_BCC:
-    printf("Bcc:\n");
-    display_bcc(field-&gt;fld_data.fld_bcc);
-    break;
-  case MAILIMF_FIELD_MESSAGE_ID:
-    printf("Message-ID:\n");
-    display_message_id(field-&gt;fld_data.fld_message_id);
-    break;
-  case MAILIMF_FIELD_IN_REPLY_TO:
-    printf("In-Reply-To:\n");
-    display_in_reply_to(field-&gt;fld_data.fld_in_reply_to);
-    break;
-  case MAILIMF_FIELD_REFERENCES:
-    printf("References:\n");
-    display_references(field-&gt;fld_data.fld_references_to);
-    break;
-  case MAILIMF_FIELD_SUBJECT:
-    printf("Subject:\n");
-    display_subject(field-&gt;fld_data.fld_subject);
-    break;
-  case MAILIMF_FIELD_COMMENTS:
-    printf("Comments:\n");
-    display_comments(field-&gt;fld_data.fld_comments);
-    break;
-  case MAILIMF_FIELD_KEYWORDS:
-    printf("Keywords:\n");
-    display_keywords(field-&gt;fld_data.fld_keywords);
-    break;
-  case MAILIMF_FIELD_OPTIONAL_FIELD:
-    printf("[optional field]:\n");
-    display_optional_field(field-&gt;fld_data.fld_optional_field);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_fields -->
-      <sect2 id="mailimf-fields">
-        <title>mailimf_fields - list of header fields</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_fields {
-  clist * fld_list; /* list of (struct mailimf_field *), != NULL */
-};
-
-struct mailimf_fields * mailimf_fields_new(clist * fld_list);
-
-void mailimf_fields_free(struct mailimf_fields * fields);
-        </programlisting>
-        
-        <para>
-          This is the list of header fields of a message.
-        </para>
-
-        <para>
-          <command>fld_list</command> is a list of header fields. This
-          is a <command>clist</command> which elements are 
-          of type <command>mailimf_field</command> (see <xref
-          linkend="mailimf-field">).
-        </para>
-
-        <para>
-          <command>mailimf_fields_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_fields_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of header fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  struct mailimf_field * f;
-  clist * list;
-  struct mailimf_from * from;
-  struct mailimf_to * to
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_address_list * addr_list;
-  clist * fields_list;
-
-  /* build headers */
-
-  fields_list = clist_new();
-  
-  /* build header 'From' */
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  
-  f = mailimf_field_new(MAILIMF_FIELD_FROM,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    from, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-
-  clist_append(fields_list, f);
-  
-  /* build header To */
-
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  addr_list = mailimf_address_list_new(list);
-  
-  to = mailimf_to_new(addr_list);
-
-  f = mailimf_field_new(MAILIMF_FIELD_TO,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, to, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-  
-  clist_append(fields_list, f);
-  
-  fields = mailimf_fields_new(fields_list);
-  /* do the things */
-  mailimf_fields_free(fields);
-  
-  return 0;
-}
-
-/* display list of headers */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_fields(struct mailimf_fields * fields)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(field-&gt;fld_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailimf_field * f;
-    
-    f = clist_content(cur);
-    
-    display_field(f);
-    printf("\n");
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_body -->
-      <sect2 id="mailimf-body">
-        <title>mailimf_body - message body without headers</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_body {
-  const char * bd_text; /* != NULL */
-  size_t bd_size;
-};
-
-struct mailimf_body * mailimf_body_new(const char * bd_text, size_t bd_size);
-
-void mailimf_body_free(struct mailimf_body * body);
-        </programlisting>
-        
-        <para>
-          This is the text content of a message (without headers).
-        </para>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                <command>bd_text</command> is the beginning of the
-                text part, it is a substring of an other string.
-                It is not necessarily zero terminated.
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                <command>bd_size</command> is the size of the text part
-              </para>
-            </listitem>
-          </itemizedlist>
-        </para>
-        
-        <para>
-          <command>mailimf_body_new()</command> creates and
-          initializes a data structure with a value.
-          Text given as argument will <emphasis>NOT</emphasis> be released.
-        </para>
-
-        <para>
-          <command>mailimf_body_free()</command> frees memory used by
-          the structure.
-        </para>
-        
-        <example>
-          <title>creation and display of message body</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_body * b;
-  
-  b = mailimf_body_new("this is the content of the message", 34);
-  /* do the things */
-  mailimf_body_free(b);
-  
-  return 0;
-}
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_body(struct mailimf_body * b)
-{
-  char * text;
-
-  text = malloc(b-&gt;size + 1);
-  strncpy(text, b-&gt;bd_text, b-&gt;bd_size);
-  text[b-&gt;size] = 0;
-
-  puts(text);
-  printf("\n");
-
-  free(text);
-    
-  return 0;
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_message -->
-      <sect2 id="mailimf-message">
-        <title>mailimf_message - parsed message</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_message {
-  struct mailimf_fields * msg_fields; /* != NULL */
-  struct mailimf_body * msg_body;     /* != NULL */
-};
-
-struct mailimf_message *
-mailimf_message_new(struct mailimf_fields * msg_fields,
-    struct mailimf_body * msg_body);
-
-void mailimf_message_free(struct mailimf_message * message);
-        </programlisting>
-        
-        <para>
-          This is the message content (text and headers).
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>msg_fields</command> is the header fields of
-              the message
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>msg_body</command> is the text part of the message
-              (see <xref linkend="mailimf-body">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_message_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_message_free()</command> frees memory used
-          by the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>creation and display of message</title>
-          <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_body * b;
-  struct mailimf_message * m;
-  struct mailimf_fields * fields;
-  struct mailimf_fields * f;
-  clist * list;
-  struct mailimf_from * from;
-  struct mailimf_to * to
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_address_list * addr_list;
-  clist * fields_list;
-
-  /* build text content */
-  
-  b = mailimf_body_new("this is the content of the message", 34);
-  
-  /* build headers */
-
-  fields_list = clist_new();
-  
-  /* build header 'From' */
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  
-  f = mailimf_field_new(MAILIMF_FIELD_FROM,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    from, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-
-  clist_append(fields_list, f);
-  
-  /* build header To */
-
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  addr_list = mailimf_address_list_new(list);
-  
-  to = mailimf_to_new(addr_list);
-
-  f = mailimf_field_new(MAILIMF_FIELD_TO,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, to, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-  
-  clist_append(fields_list, f);
-  
-  fields = mailimf_fields_new(fields_list);
-
-  /* build message */
-  
-  m = mailimf_message_new(fields, b);
-  /* do the things */
-  mailimf_message_free(m);
-  
-  return 0;
-}
-
-/* display the message */
-
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;stdio.h&gt;
-
-void display_message(struct mailimf_message * msg)
-{
-  display_fields(msg-&gt;msg_fields);
-  printf("\n");
-  display_body(msg-&gt;msg_body);
-  printf("\n");
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_single_fields -->
-      <sect2 id="mailimf-single-fields">
-        <title>mailimf_single_fields - simplified fields</title>
-
-<programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_single_fields {
-  struct mailimf_orig_date * fld_orig_date;      /* can be NULL */
-  struct mailimf_from * fld_from;                /* can be NULL */
-  struct mailimf_sender * fld_sender;            /* can be NULL */
-  struct mailimf_reply_to * fld_reply_to;        /* can be NULL */
-  struct mailimf_to * fld_to;                    /* can be NULL */
-  struct mailimf_cc * fld_cc;                    /* can be NULL */
-  struct mailimf_bcc * fld_bcc;                  /* can be NULL */
-  struct mailimf_message_id * fld_message_id;    /* can be NULL */
-  struct mailimf_in_reply_to * fld_in_reply_to;  /* can be NULL */
-  struct mailimf_references * fld_references;    /* can be NULL */
-  struct mailimf_subject * fld_subject;          /* can be NULL */
-  struct mailimf_comments * fld_comments;        /* can be NULL */
-  struct mailimf_keywords * fld_keywords;        /* can be NULL */
-};
-
-struct mailimf_single_fields *
-mailimf_single_fields_new(struct mailimf_fields * fields);
-
-void mailimf_single_fields_free(struct mailimf_single_fields *
-                                single_fields);
-
-void mailimf_single_fields_init(struct mailimf_single_fields * single_fields,
-                                struct mailimf_fields * fields);
-</programlisting>
-        
-        <para>
-          Structure that contains some standard fields and allows access
-          to a given header without running through the list.
-        </para>
-
-        <para>
-          mailimf_fields is the native structure that IMF module will use,
-          this module will provide an easier structure to use when
-          parsing fields.
-          mailimf_single_fields is an easier structure to get parsed fields,
-          rather than iteration over the list of fields
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_orig_date</command> is the parsed "Date"
-              field
-              (see <xref linkend="mailimf-orig-date">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_from</command> is the parsed "From" field
-              (see <xref linkend="mailimf-from">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_sender</command> is the parsed "Sender "field
-              (see <xref linkend="mailimf-sender">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>reply_to</command> is the parsed "Reply-To" field
-              (see <xref linkend="mailimf-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_to</command> is the parsed "To" field
-              (see <xref linkend="mailimf-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_cc</command> is the parsed "Cc" field
-              (see <xref linkend="mailimf-cc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_bcc</command> is the parsed "Bcc" field
-              (see <xref linkend="mailimf-bcc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_message_id</command> is the parsed
-              "Message-ID" field.
-              (see <xref linkend="mailimf-message-id">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_in_reply_to</command> is the parsed
-              "In-Reply-To" field.
-              (see <xref linkend="mailimf-in-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_references</command> is the parsed
-              "References" field.
-              (see <xref linkend="mailimf-references">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_subject</command> is the parsed "Subject" field
-              (see <xref linkend="mailimf-subject">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_comments</command> is the parsed "Comments" field
-              (see <xref linkend="mailimf-comments">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_keywords</command> is the parsed "Keywords" field
-              (see <xref linkend="mailimf-keywords">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailimf_single_fields_new()</command> creates and
-          initializes a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will <emphasis>NOT</emphasis> be freed if the
-          object is released.
-        </para>
-        
-        <para>
-          <command>mailimf_single_fields_free()</command> frees memory
-          used by the structure and 
-          substructures will <emphasis>NOT</emphasis> be
-          released. They should be released by the application.
-        </para>
-
-        <para>
-          <command>mailimf_single_fields_init()</command> will
-          initialize fill the data structure, using
-          the given argument (<command>fields</command>). The
-          interesting fields will be filled into
-          <command>single_fields</command>.
-        </para>
-      
-        <example>
-          <title>using mailimf_single_fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_single_fields * single_fields;
-  struct mailimf_fields * fields;
-  struct mailimf_field * f;
-  clist * list;
-  struct mailimf_from * from;
-  struct mailimf_to * to
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_address_list * addr_list;
-  clist * fields_list;
-
-  /* build headers */
-
-  fields_list = clist_new();
-  
-  /* build header 'From' */
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  
-  f = mailimf_field_new(MAILIMF_FIELD_FROM,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    from, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-
-  clist_append(fields_list, f);
-  
-  /* build header To */
-
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  addr_list = mailimf_address_list_new(list);
-  
-  to = mailimf_to_new(addr_list);
-
-  f = mailimf_field_new(MAILIMF_FIELD_TO,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, to, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-  
-  clist_append(fields_list, f);
-  
-  fields = mailimf_fields_new(fields_list);
-  
-  /* create the single fields */
-  single_fields = mailimf_single_fields_new(fields);
-  /* do the things */
-  mailimf_single_fields_free(single_fields);
-  mailimf_fields_free(fields);
-  
-  return 0;
-}
-          </programlisting>
-        </example>
-
-        <example>
-          <title>using mailimf_single_fields without memory allocation</title>
-          <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_single_fields single_fields;
-  struct mailimf_fields * fields;
-  struct mailimf_field * f;
-  clist * list;
-  struct mailimf_from * from;
-  struct mailimf_to * to
-  struct mailimf_mailbox * mb;
-  struct mailimf_address * addr;
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_address_list * addr_list;
-  clist * fields_list;
-
-  /* build headers */
-
-  fields_list = clist_new();
-  
-  /* build header 'From' */
-  
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  clist_append(list, mb);
-  mb_list = mailimf_mailbox_list_new(list);
-  
-  from = mailimf_from_new(mb_list);
-  
-  f = mailimf_field_new(MAILIMF_FIELD_FROM,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    from, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-
-  clist_append(fields_list, f);
-  
-  /* build header To */
-
-  list = clist_new();
-  mb = mailimf_mailbox_new(strdup("DINH =?iso-8859-1?Q?Vi=EAt_Ho=E0?="),
-    strdup("dinh.viet.hoa@free.fr"));
-  addr = mailimf_address_new(MAILIMF_ADDRESS_MAILBOX, mb, NULL);
-  clist_append(list, addr);
-  addr_list = mailimf_address_list_new(list);
-  
-  to = mailimf_to_new(addr_list);
-
-  f = mailimf_field_new(MAILIMF_FIELD_TO,
-    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, to, NULL, NULL, NULL, NULL, NULL,
-    NULL, NULL, NULL, NULL);
-  
-  clist_append(fields_list, f);
-  
-  fields = mailimf_fields_new(fields_list);
-  
-  /* fill the single fields */
-  mailimf_fields_fields_init(&amp;single_fields, fields);
-  /* do the things */
-  mailimf_fields_free(fields);
-  
-  return 0;
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-    
-    <!-- parser functions -->
-    <sect1>
-      <title>Parser functions</title>
-      
-      <!-- mailimf_address_list_parse -->
-      <sect2 id="mailimf-address-list-parse">
-        <title>mailimf_address_list_parse</title>
-        <programlisting role="C">
-int
-mailimf_address_list_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_address_list ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_address_list_parse()</command> parse a list
-          of addresses  in RFC 2822 form.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing
-              the list of addresses.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> this is a pointer to the
-              start of the list of 
-              addresses in the given string,
-              <command>(* index)</command> is modified to point
-              at the end of the parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-address-list">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing a list of addresses</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_address_list * addr_list;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_address_list_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;addr_list);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_address_list(addr_list);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_address_list_free(addr_list);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_address_parse -->
-      <sect2 id="mailimf-address-parse">
-        <title>mailimf_address_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailimf_address_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_address ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_address_parse()</command> parse an address
-          in RFC 2822 form.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the
-              address.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> index this is a pointer to the
-              start of the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse operation
-              is stored in <command>(* result)</command>
-              (see <xref linkend="mailimf-address">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing an address</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_address * addr;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_address_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;addr);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_address(addr);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_address_free(addr);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailimf_body_parse -->
-      <sect2 id="mailimf-body-parse">
-        <title>mailimf_body_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_body_parse(char * message, size_t length,
-		       size_t * index,
-		       struct mailimf_body ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_body_parse()</command> parse text body of a
-          message.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing
-              the message body part.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> this is a pointer to the start
-              of the message text part in
-              the given string, <command>(* index)</command> is
-              modified to point at the end
-              of the parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in 
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-body">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-        
-        <example>
-          <title>parsing a message body</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_body * b;
-        struct mailimf_fields * f;
-	size_t current_index;        
-	size_t size;
-	
-	size = stat_info.st_size;
-	current_index = 0;
-	r = mailimf_fields_parse(mem, size, &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {	
-	  r = mailimf_crlf_parse(mem, size, &amp;current_index);
-	  /* ignore parse error of crlf */
-	  
-	  r = mailimf_body_parse(mem, size, &amp;current_index, &amp;b);
-	  if (r == MAILIMF_NO_ERROR) {
-	    
-	    display_body(b);
-	    /* do the things */
-	    status = EXIT_SUCCESS;
-	    mailimf_body_free(b);
-	  }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-      
-      <!-- mailimf_envelope_and_optional_fields_parse -->
-      <sect2 id="mailimf-envelope-and-optional-fields-parse">
-        <title>mailimf_envelope_and_optional_fields_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailimf_envelope_and_optional_fields_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_fields ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_envelope_and_optional_fields_parse()</command>
-          returns a list of most useful headers (parsed). The other
-          headers will be placed in the list in a non-parsed form.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the header.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-          <command>index</command> index this is a pointer to the
-              start of the header in the given string, <command>(*
-              index)</command> is modified to point at the end 
-              of the parsed data
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing commonly used fields and return other fields
-          in a non-parsed form</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_envelope_and_optional_fields_parse(mem, stat_info.st_size,
-            &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_fields(m);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailimf_envelope_fields_parse -->
-      <sect2 id="mailimf-envelope-fields-parse">
-        <title>mailimf_envelope_fields_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_envelope_fields_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_fields ** result);
-        </programlisting>
-
-        <para>
-          <command>mailimf_envelope_fields_parse()</command> return a
-          list of most useful headers (parsed).
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the header
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> index this is a pointer to the
-              start of the header in 
-              the given string, <command>(* index)</command> is
-              modified to point at the end 
-              of the parsed data
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing commonly used fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_envelope_fields_parse(mem, stat_info.st_size,
-            &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_fields(m);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-
-      <!-- mailimf_optional_fields_parse -->
-      <sect2 id="mailimf-optional-fields-parse">
-        <title>mailimf_optional_fields_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailimf_optional_fields_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_fields ** result);
-        </programlisting>
-
-        <para>
-          <command>mailimf_optional_fields_parse</command> return a
-          list of non-parsed headers.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the header
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> index this is a pointer to the
-              start of the header in 
-              the given string, <command>(* index)</command> is
-              modified to point at the end 
-              of the parsed data
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing optional fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_optional_fields_parse(mem, stat_info.st_size,
-            &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_fields(m);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailimf_fields_parse -->
-      <sect2 id="mailimf-fields-parse">
-        <title>mailimf_fields_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_fields_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_fields ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_fields_parse()</command> parse headers of a
-          message.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the header
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> index this is a pointer to the
-              start of the header in 
-              the given string, <command>(* index)</command> is
-              modified to point at the end 
-              of the parsed data
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-
-        <example>
-          <title>parsing header fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_fields(f);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-            </programlisting>
-          </example>
-      </sect2>
-
-      <!-- mailimf_ignore_field_parse -->
-      <sect2 id="mailimf-ignore-field-parse">
-        <title>mailimf_ignore_field_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_ignore_field_parse(char * message, size_t length,
-    size_t * index);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_ignore_field_parse()</command> skip the
-          next header.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the header
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given string
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> index this is a pointer to the
-              start of the field to skip in 
-              the given string, <command>(* index)</command> is
-              modified to point at the end 
-              of the parsed data
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return <command>MAILIMF_NO_ERROR</command> on success,
-          <command>MAILIMF_ERROR_XXX</command> on error.
-        </para>
-        
-        <example>
-          <title>skipping fields</title>
-          <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_ignore_field_parse(mem, stat_info.st_size,
-            &amp;current_index);
-	if (r == MAILIMF_NO_ERROR) {
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailimf_mailbox_list_parse -->
-      <sect2 id="mailimf-mailbox-list-parse">
-        <title>mailimf_mailbox_list_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailimf_mailbox_list_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_mailbox_list ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_mailbox_list_parse()</command> parse a list
-          of mailboxes in RFC 2822 form.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the
-              list of mailboxes.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-          <command>index</command> index this is a pointer to the
-              start of the list of
-              mailboxes in the given string,
-              <command>(* index)</command> is modified to point 
-              at the end of the parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in 
-              <command>(* result)</command>.
-              (see <xref linkend="mailimf-mailbox-list">)
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return MAILIMF_NO_ERROR on success, MAILIMF_ERROR_XXX on
-          error.
-        </para>
-
-        <example>
-          <title>parsing a list of mailboxes</title>
-          <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_mailbox_list * mb_list;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_mailbox_list_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;mb_list);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_mailbox_list(mb_list);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_mailbox_list_free(mb_list);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-
-      <!-- mailimf_mailbox_parse -->
-      <sect2 id="mailimf-mailbox-parse">
-        <title>mailimf_mailbox_parse</title>
-
-        <programlisting role="C">        
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_mailbox_parse(char * message, size_t length,
-    size_t * index,
-    struct mailimf_mailbox ** result);
-        </programlisting>
-
-        <para>
-          <command>mailimf_mailbox_parse</command> parse a mailbox in
-          RFC 2822 form.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing the
-              mailbox.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> this is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-          <command>index</command> index this is a pointer to the
-              start of the mailbox in the given string,
-              <command>(* index)</command> is modified to point 
-              at the end of the parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command> the result of the parse
-              operation is stored in 
-              <command>(* result)</command>.
-              (see <xref linkend="mailimf-mailbox">)
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          return MAILIMF_NO_ERROR on success, MAILIMF_ERROR_XXX on
-          error.
-        </para>
-
-        <example>
-          <title>parsing a mailbox</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_mailbox_list * mb_list;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_mailbox_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;mb_list);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_mailbox_list(mb_list);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_mailbox_free(mb_list);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-
-      <!-- mailimf_message_parse -->
-      <sect2 id="mailimf-message-parse">
-        <title>mailimf_message_parse</title>
-
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_message_parse(char * message, size_t length,
-			  size_t * index,
-			  struct mailimf_message ** result);
-        </programlisting>
-        
-        <para>
-          <command>mailimf_message_parse</command> parse message
-          (headers and body).
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> this is a string containing
-              the message content.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>param</command> length this is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>param</command> index this is a pointer to the
-              start of the message in
-              the given string, <command>(* index)</command> is
-              modified to point at the end 
-              of the parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>param</command> result the result of the parse
-              operation is stored in
-              <command>(* result)</command>
-              (see <xref linkend="mailimf-message">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>parsing a message</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;  
-  int r;
-
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd >= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r >= 0) {     
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_message * m;
-	size_t current_index;        
-	
-	current_index = 0;
-	r = mailimf_message_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;m);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_message(m);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailimf_message_free(m);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-    </sect1>
-    
-    <!-- helper functions -->
-    <sect1>
-      <title>Creation functions</title>
-      <sect2 id="mailimf-mailbox-list-add">
-      <title>mailimf_mailbox_list</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_mailbox_list *
-mailimf_mailbox_list_new_empty();
-
-int mailimf_mailbox_list_add(struct mailimf_mailbox_list * mailbox_list,
-			     struct mailimf_mailbox * mb);
-
-int mailimf_mailbox_list_add_parse(struct mailimf_mailbox_list * mailbox_list,
-				   char * mb_str);
-
-int mailimf_mailbox_list_add_mb(struct mailimf_mailbox_list * mailbox_list,
-				char * display_name, char * address);
-        </programlisting>
-        
-        <!-- mailimf_mailbox_list_new_empty -->
-        <para>
-          <command>mailimf_mailbox_list_new_empty()</command> creates a
-          new empty list of mailboxes.
-        </para>
-
-        <!-- mailimf_mailbox_list_add -->
-        <para>
-          <command>mailimf_mailbox_list_add</command> adds a mailbox
-          to the list of mailboxes.
-        </para>
-
-        <!-- mailimf_mailbox_list_add_parse -->
-        <para>
-          <command>mailimf_mailbox_list_add_parse</command> adds a
-          mailbox given in form of a string to the list of mailboxes.
-        </para>
-
-        <!-- mailimf_mailbox_list_add_mb -->
-        <para>
-          <command>mailimf_mailbox_list_add_mb</command> adds a
-          mailbox given in form of a couple : display name, mailbox
-          address.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>mailbox_list</command> is the list of mailboxes.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mb</command> is a mailbox
-              (see <xref linkend="mailimf-mailbox">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mb_str</command> is a mailbox given in the form
-              of a string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>display_name</command> is the display name.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>address</command> is the mailbox address.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>creating a list of mailboxes</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_mailbox_list * mb_list;
-  struct mailimf_mailbox * mb;
-
-  mb_list = mailimf_mailbox_list_new_empty();
-
-  mb = mailimf_mailbox_new(strdup("DINH Viet Hoa"),
-    strdup("dinh.viet.hoa@free.fr"));
-  mailimf_mailbox_list_add(mb_list, mb);
-
-  mailimf_mailbox_list_add_parse(mb_list, "foo bar &lt;foo@bar.org&gt;");
-
-  mailimf_mailbox_list_add_mb(mb_list, strdup("bar foo"), strdup("bar@foo.com"));
-
-  mailimf_mailbox_list_free(mb_list);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      <sect2 id="mailimf-address-list-add">
-        <title>mailimf_address_list</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_address_list * mailimf_address_list_new_empty();
-
-int mailimf_address_list_add(struct mailimf_address_list * address_list,
-			     struct mailimf_address * addr);
-
-int mailimf_address_list_add_parse(struct mailimf_address_list * address_list,
-				   char * addr_str);
-
-int mailimf_address_list_add_mb(struct mailimf_address_list * address_list,
-				char * display_name, char * address);
-        </programlisting>
-
-        <!-- mailimf_address_list_new_empty -->
-        <para>
-          <command>mailimf_address_list_new_empty()</command> creates a
-          new empty list of addresses.
-        </para>
-
-        <!-- mailimf_address_list_add -->
-        <para>
-          <command>mailimf_address_list_add</command> adds an address
-          to the list of addresses.
-        </para>
-
-        <!-- mailimf_address_list_add_parse -->
-        <para>
-          <command>mailimf_address_list_add_parse</command> adds an
-          address given in form of a string to the list of addresses.
-        </para>
-
-        <!-- mailimf_address_list_add_mb -->
-        <para>
-          <command>mailimf_address_list_add_mb</command> adds a
-          mailbox given in form of a couple : display name, mailbox
-          address.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>address_list</command> is the list of mailboxes.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>addr</command> is an address.
-              (see <xref linkend="mailimf-address">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>addr_str</command> is an address given in the form of a
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>display_name</command> is the display name.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>address</command> is the mailbox address.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-      </sect2>
-      <sect2 id="mailimf-fields-add">
-        <title>mailimf_fields</title>
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailimf_fields *
-mailimf_fields_new_empty(void);
-
-struct mailimf_field * mailimf_field_new_custom(char * name, char * value);
-
-int mailimf_fields_add(struct mailimf_fields * fields,
-		       struct mailimf_field * field);
-
-int mailimf_fields_add_data(struct mailimf_fields * fields,
-			    struct mailimf_date_time * date,
-			    struct mailimf_mailbox_list * from,
-			    struct mailimf_mailbox * sender,
-			    struct mailimf_address_list * reply_to,
-			    struct mailimf_address_list * to,
-			    struct mailimf_address_list * cc,
-			    struct mailimf_address_list * bcc,
-			    char * msg_id,
-			    clist * in_reply_to,
-			    clist * references,
-			    char * subject);
-
-struct mailimf_fields *
-mailimf_fields_new_with_data_all(struct mailimf_date_time * date,
-				 struct mailimf_mailbox_list * from,
-				 struct mailimf_mailbox * sender,
-				 struct mailimf_address_list * reply_to,
-				 struct mailimf_address_list * to,
-				 struct mailimf_address_list * cc,
-				 struct mailimf_address_list * bcc,
-				 char * message_id,
-				 clist * in_reply_to,
-				 clist * references,
-				 char * subject);
-
-struct mailimf_fields *
-mailimf_fields_new_with_data(struct mailimf_mailbox_list * from,
-			     struct mailimf_mailbox * sender,
-			     struct mailimf_address_list * reply_to,
-			     struct mailimf_address_list * to,
-			     struct mailimf_address_list * cc,
-			     struct mailimf_address_list * bcc,
-			     clist * in_reply_to,
-			     clist * references,
-			     char * subject);
-
-char * mailimf_get_message_id(void);
-
-struct mailimf_date_time * mailimf_get_current_date(void);
-
-int
-mailimf_resent_fields_add_data(struct mailimf_fields * fields,
-    struct mailimf_date_time * resent_date,
-    struct mailimf_mailbox_list * resent_from,
-    struct mailimf_mailbox * resent_sender,
-    struct mailimf_address_list * resent_to,
-    struct mailimf_address_list * resent_cc,
-    struct mailimf_address_list * resent_bcc,
-    char * resent_msg_id);
-
-struct mailimf_fields *
-mailimf_resent_fields_new_with_data_all(struct mailimf_date_time *
-    resent_date, struct mailimf_mailbox_list * resent_from,
-    struct mailimf_mailbox * resent_sender,
-    struct mailimf_address_list * resent_to,
-    struct mailimf_address_list * resent_cc,
-    struct mailimf_address_list * resent_bcc,
-    char * resent_msg_id);
-
-struct mailimf_fields *
-mailimf_resent_fields_new_with_data(struct mailimf_mailbox_list * from,
-    struct mailimf_mailbox * resent_sender,
-    struct mailimf_address_list * resent_to,
-    struct mailimf_address_list * resent_cc,
-    struct mailimf_address_list * resent_bcc);
-        </programlisting>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>from</command> is the parsed content of the
-              From field
-              (see <xref linkend="mailimf-from">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sender</command> is the parsed content of the
-              Sender field
-              (see <xref linkend="mailimf-sender">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>reply_to</command> is the parsed content of the
-              <command>Reply-To</command> field 
-              (see <xref linkend="mailimf-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>to</command> is the parsed content of the
-              <command>To</command> field 
-              (see <xref linkend="mailimf-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>cc</command> is the parsed content of the
-              <command>Cc</command> field 
-              (see <xref linkend="mailimf-cc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>bcc</command> is the parsed content of the
-              <command>Bcc</command> field 
-              (see <xref linkend="mailimf-bcc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>message_id</command> is the parsed content of
-              the <command>Message-ID</command> field 
-              (see <xref linkend="mailimf-message-id">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>in_reply_to</command> is the parsed content of
-              the <command>In-Reply-To</command> field 
-              (see <xref linkend="mailimf-in-reply-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>references</command> is the parsed content of
-              the <command>References</command> field 
-              (see <xref linkend="mailimf-references">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>subject</command> is the content of the
-              <command>Subject</command> field
-              (see <xref linkend="mailimf-subject">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_date</command> is the parsed content of
-              the <command>Resent-Date</command> field
-              (see <xref linkend="mailimf-orig-date">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_from</command> is the parsed content of
-              the <command>Resent-From</command> field 
-              (see <xref linkend="mailimf-from">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_sender</command> is the parsed content of the
-              <command>Resent-Sender</command> field
-              (see <xref linkend="mailimf-sender">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_to</command> is the parsed content of
-              the <command>Resent-To</command> field
-              (see <xref linkend="mailimf-to">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_cc</command> is the parsed content of
-              the <command>Resent-Cc</command> field
-              (see <xref linkend="mailimf-cc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_bcc</command> is the parsed content of the
-              <command>Resent-Bcc</command> field
-              (see <xref linkend="mailimf-bcc">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>resent_msg_id</command> is the parsed content of the
-              <command>Resent-Message-ID</command> field
-              (see <xref linkend="mailimf-message-id">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <!-- mailimf_fields_new_empty -->
-        <para>
-          <command>mailimf_fields_new_empty()</command> creates a new
-          empty set of headers.
-        </para>
-
-        <!-- mailimf_fields_new_custom -->
-        <para>
-          <command>mailimf_field_new_custom()</command> creates a new
-          custom header.
-        </para>
-
-        <!-- mailimf_fields_add -->
-        <para>
-          <command>mailimf_fields_add()</command> adds a header to the
-          set of headers.
-        </para>
-
-        <!-- mailimf_fields_add_data -->
-        <para>
-          <command>mailimf_fields_add_data()</command> adds some headers
-          to the set of headers.
-        </para>
-        
-        <!-- mailimf_fields_new_with_data_all -->
-        <para>
-          <command>mailimf_fields_new_with_data_all()</command> creates
-          a set of headers with some headers (including Date and
-          Message-ID).
-        </para>
-        
-        <!-- mailimf_fields_new_with_data -->
-        <para>
-          <command>mailimf_fields_new_with_data()</command> creates a
-          set of headers with some headers (Date and Message-ID will
-          be generated).
-        </para>
-
-        <!-- mailimf_get_message_id -->
-        <para>
-          <command>mailimf_get_message_id()</command> generates a
-          Message-ID. The result must be freed using
-          <command>free()</command>.
-        </para>
-
-        <!-- mailimf_get_current_date -->
-        <para>
-          <command>mailimf_get_current_date()</command> generates a
-          Date. The result must be freed using 
-          <command>mailimf_date_time_free</command>.
-        </para>
-
-        <!-- mailimf_resent_fields_add_data -->
-        <para>
-          <command>mailimf_resent_fields_add_data()</command> adds some
-          resent headers to the set of headers.
-        </para>
-
-        <!-- mailimf_resent_fields_new_with_data_all -->
-        <para>
-          <command>mailimf_resent_fields_new_with_data_all()</command>
-          creates a set of headers with some resent headers (including
-          Resent-Date and Resent-Message-ID).
-        </para>
-
-        <!-- mailimf_resent_fields_new_with_data -->
-        <para>
-          <command>mailimf_resent_fields_new_with_data()</command>
-          creates a set of headers with some resent headers
-          (Resent-Date and Resent-Message-ID will be generated)
-        </para>
-
-        <example>
-          <title>creation of header fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  struct mailimf_field * field;
-  struct mailimf_date_time * date;
-  char * msg_id;
-  struct mailimf_mailbox_list * from;
-  struct mailimf_address_list * to;
-
-  fields = mailimf_fields_new_empty();
-  field = mailimf_field_new_custom(strdup("X-Mailer"), strdup("my-mailer"));
-  mailimf_fields_add(fields, field);
-
-  from = mailimf_mailbox_list_new_empty();
-  mailimf_mailbox_list_add_mb(from, strdup("DINH Viet Hoa"), strdup("dinh.viet.hoa@free.fr");
-  date = mailimf_get_current_date();
-  msg_id = mailimf_get_message_id();
-  to = mailimf_address_list_new_empty();
-  mailimf_address_list_add_mb(to, strdup("FOO Bar"), strdup("foo@bar.org");
-
-  mailimf_fields_add_data(fields, date, from, NULL, NULL, to, NULL, NULL,
-    msg_id, NULL, NULL, strdup("hello"));
-
-  /* do the things */
-
-  mailimf_fields_free(fields);
-}
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  struct mailimf_mailbox_list * from;
-  struct mailimf_address_list * to;
-  struct mailimf_date_time * date;
-  char * msg_id;
-
-  from = mailimf_mailbox_list_new_empty();
-  mailimf_mailbox_list_add_mb(from, strdup("DINH Viet Hoa"), strdup("dinh.viet.hoa@free.fr");
-  to = mailimf_address_list_new_empty();
-  mailimf_address_list_add_mb(to, strdup("FOO Bar"), strdup("foo@bar.org");
-  date = mailimf_get_current_date();
-  msg_id = mailimf_get_message_id();
-
-  fields = mailimf_fields_new_with_all_data(date, from, NULL, NULL, to, NULL, NULL,
-    msg_id, NULL, NULL, strdup("hello"));
-
-  /* do the things */
-
-  mailimf_fields_free(fields);
-}
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  struct mailimf_mailbox_list * from;
-  struct mailimf_address_list * to;
-
-  from = mailimf_mailbox_list_new_empty();
-  mailimf_mailbox_list_add_mb(from, strdup("DINH Viet Hoa"), strdup("dinh.viet.hoa@free.fr");
-  to = mailimf_address_list_new_empty();
-  mailimf_address_list_add_mb(to, strdup("FOO Bar"), strdup("foo@bar.org");
-
-  fields = mailimf_fields_new_with_data(from, NULL, NULL, to, NULL, NULL,
-    NULL, NULL, strdup("hello"));
-
-  /* do the things */
-
-  mailimf_fields_free(fields);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-
-    <!-- rendering functions -->
-    <sect1>
-      <title>Rendering of messages</title>
-      <sect2 id="mailimf-fields-write">
-        <title>Header fields</title>
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailimf_fields_write(FILE * f, int * col,
-    struct mailimf_fields * fields);
-
-int mailimf_envelope_fields_write(FILE * f, int * col,
-    struct mailimf_fields * fields);
-
-int mailimf_field_write(FILE * f, int * col,
-    struct mailimf_field * field);
-        </programlisting>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>col</command> current column is given for wrapping
-              purpose in <command>(* col)</command>,
-              the resulting columns will be returned..
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>f</command> is the file descriptor. It can be
-              stdout for example.
-            </para>          
-          </listitem>
-          <listitem>
-            <para>
-              <command>fields</command> is the header fields
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>field</command> is a field
-              (see <xref linkend="mailimf-field">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <!-- mailimf_fields_write -->
-        <para>
-          <command>mailimf_fields_write</command> outputs the set of
-          header fields.
-        </para>
-
-        <!-- mailimf_envelope_fields_write -->
-        <para>
-          <command>mailimf_envelope_fields_write</command> outputs the
-          set of header fields except the optional fields.
-        </para>
-
-        <!-- mailimf_field_write -->
-        <para>
-          <command>mailimf_field_write</command> outputs a header.
-        </para>
-
-        <example>
-          <title>rendering of fields</title>
-          <programlisting role="C">
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  int col;
-
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_imf_fields();
-
-  col = 0;
-  mailimf_fields_write(stdout, &amp;col, fields);
-
-  mailimf_fields_free(fields);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_fields * fields;
-  int col;
-
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_imf_fields();
-
-  col = 0;
-  mailimf_envelope_fields_write(stdout, &amp;col, fields);
-
-  mailimf_fields_free(fields);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailimf_field * field;
-  int col;
-
-  field = mailimf_field_new_custom(strdup("X-Mailer"), strdup("my mailer"));
-
-  col = 0;
-  mailimf_field_write(stdout, &amp;col, field);
-
-  mailimf_field_free(field);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-  </chapter>
-
-
-  <!-- MIME -->
-  <chapter>
-    <title>MIME</title>
-    
-    <para>
-      libEtPan! implements a MIME message parser (also known as
-      messages with attachments or 
-      multipart messages). This also allows to generate MIME messages.
-    </para>
-    
-    <warning>
-      <para>
-        All allocation functions will take as argument allocated data
-        and will store these data in the structure they will allocate.
-        Data should be persistant during all the use of the structure
-        and will be freed by the free function of the structure
-      </para>
-
-      <para>
-        allocation functions will return <command>NULL</command> on failure
-
-        functions returning integer will be returning one of the
-        following error code:
-        <command>MAILIMF_NO_ERROR</command>,
-        <command>MAILIMF_ERROR_PARSE</command>,
-        <command>MAILIMF_ERROR_MEMORY</command>,
-        <command>MAILIMF_ERROR_INVAL</command>,
-        or <command>MAILIMF_ERROR_FILE</command>.
-      </para>
-    </warning>
-
-    <sect1>
-      <title>Quick start</title>
-      
-      <para>
-        You will need this module when you want to parse a MIME
-        message.
-      </para>
-      
-      <sect2>
-        <title>Parse MIME message</title>
-        <para>
-          You will use the following function :
-        </para>
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>mailmime_parse</command>
-              (<xref linkend="mailimf-envelope-and-optional-fields-parse">)
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <sect2>
-        <title>Render the MIME message</title>
-        <para>
-        Build your MIME message, then use
-        <command>mailmime_write</command>
-        (<xref linkend="mailmime-write">)
-        to render a MIME message.
-      </sect2>
-    </sect1>
-    
-    <!-- Data types-->
-    <sect1>
-      <title>Data types</title>
-      <!-- mailmime_composite_type -->
-      <sect2 id="mailmime-composite-type">
-        <title>mailmime_composite_type - Composite MIME type</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_COMPOSITE_TYPE_ERROR,
-  MAILMIME_COMPOSITE_TYPE_MESSAGE,
-  MAILMIME_COMPOSITE_TYPE_MULTIPART,
-  MAILMIME_COMPOSITE_TYPE_EXTENSION
-};
-
-struct mailmime_composite_type {
-  int ct_type;
-  char * ct_token;
-};
-
-struct mailmime_composite_type *
-mailmime_composite_type_new(int ct_type, char * ct_token);
-
-void mailmime_composite_type_free(struct mailmime_composite_type * ct);
-        </programlisting>
-
-        <para>
-          This is a MIME composite type such as <command>message</command> or
-          <command>multipart</command>.
-        </para>
-
-        <para>
-          <command>ct_type</command> can have one of the 3 following values :
-          <command>MAILMIME_COMPOSITE_TYPE_MESSAGE</command> when the
-          composite MIME type 
-          is <command>message</command>,
-          <command>MAILMIME_COMPOSITE_TYPE_MULTIPART</command> when
-          the composite MIME type 
-          is <command> multipart</command>,
-          <command>MAILMIME_COMPOSITE_TYPE_EXTENSION</command> for
-          other and <command>ct_token</command> is set 
-          in this case.
-          <command>MAILMIME_COMPOSITE_TYPE_ERROR</command> is used
-          internally on parse error. 
-        </para>
-
-        <para>
-          <command>mailmime_composite_type_new()</command> creates and
-          initializes 
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_composite_type_free()</command> frees
-          memory used by 
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>create and display MIME composite type</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  struct mailmime_composite_type * ct;
-
-  ct = mailmime_composite_type_new(MAILMIME_COMPOSITE_TYPE_MULTIPART, NULL);
-
-  /* do your things ... */
-
-  mailmime_composite_type_free(ct);
-
-  exit(EXIT_SUCCESS);
-}
-
-void display_composite_type()
-{
-  switch (ct-&gt;type) {
-  case MAILMIME_COMPOSITE_TYPE_MESSAGE:
-    printf("composite type is message\n");
-    break;
-  case MAILMIME_COMPOSITE_TYPE_MULTIPART:
-    printf("composite type is multipart\n");
-    break;
-  case MAILMIME_COMPOSITE_TYPE_EXTENSION:
-    printf("composite type: %s\n", ct-&gt;ct_token);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-
-      <!-- mailmime_content -->
-      <sect2 id="mailmime-content">
-        <title>mailmime_content - MIME content type (Content-Type)</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_content {
-  struct mailmime_type * ct_type;
-  char * ct_subtype;
-  clist * ct_parameters; /* elements are (struct mailmime_parameter *) */
-};
-
-struct mailmime_content *
-mailmime_content_new(struct mailmime_type * ct_type,
-		     char * ct_subtype,
-		     clist * ct_parameters);
-
-void mailmime_content_free(struct mailmime_content * content);
-        </programlisting>
-
-        <para>
-          This is a MIME content type such as <command>message/rfc822</command> or
-          <command>text/plain</command>.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>ct_type</command> is the main MIME type,
-              for example <command>text</command> in
-              <command>plain/text</command>
-              (see <xref linkend="mailmime-type">).
-            </para>
-            <para>
-              <command>ct_subtype</command> is the MIME subtype,
-              for example <command>plain</command> in
-              <command>plain/text</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>ct_parameters</command> is the list of parameters for
-              the given MIME type. For example, for <command>plain/text</command>,
-              we can find <command>charset=iso-8859-1</command>,
-              <command>format=flowed</command>. Each element of the list
-              if of type <command>struct mailmime_parameter *</command>
-              (see <xref linkend="mailmime-parameter">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          <command>mailmime_content_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_content_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of MIME content type</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  struct mailmime_content * content;
-  struct mailmime_type * type;
-  struct mailmime_discrete_type * dt;
-  struct mailmime_parameter * param;
-  clist * param_list;
-  
-  dt = mailmime_discrete_type_new(MAILMIME_DISCRETE_TYPE_TEXT, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_DISCRETE_TYPE, dt, NUL);
-  param_list = clist_new();
-  param = mailmime_parameter_new(strdup("charset"), strdup("iso-8859-1"));
-  clist_append(param_list, param);
-  
-  content = mailmime_content_new(type, strdup("plain"), param_list);
-  
-  /* do your things */
-  
-  exit(EXIT_SUCCESS);
-}
-
-void display_mime_content(struct mailmime_content * content_type)
-{
-  clistiter * cur;
-
-  printf("type:\n");
-  display_type(content_type-&gt;ct_type);
-  printf("\n");
-  printf("subtype: %s\n", content_type-&gt;ct_subtype);
-  printf("\n");
-  
-  for(cur = clist_begin(content_type-&gt;ct_parameters) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailmime_parameter * param;
-    
-    param = clist_content(cur);
-    display_mime_parameter(param);
-    printf("\n");
-  }
-  printf("\n");
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-
-      <!-- mailmime_discrete_type -->
-      <sect2 id="mailmime-discrete-type">
-        <title>mailmime_discrete_type - MIME discrete type</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_DISCRETE_TYPE_ERROR,
-  MAILMIME_DISCRETE_TYPE_TEXT,
-  MAILMIME_DISCRETE_TYPE_IMAGE,
-  MAILMIME_DISCRETE_TYPE_AUDIO,
-  MAILMIME_DISCRETE_TYPE_VIDEO,
-  MAILMIME_DISCRETE_TYPE_APPLICATION,
-  MAILMIME_DISCRETE_TYPE_EXTENSION
-};
-
-struct mailmime_discrete_type {
-  int dt_type;
-  char * dt_extension;
-};
-
-struct mailmime_discrete_type *
-mailmime_discrete_type_new(int dt_type, char * dt_extension);
-
-void mailmime_discrete_type_free(struct mailmime_discrete_type *
-				 discrete_type);
-        </programlisting>
-
-        <para>
-          This is a MIME discrete type such as <command>text</command> or
-          <command>image</command>. This is also known as single part. This kind
-          of part does not have any child.
-        </para>
-
-        <para>
-          <command>dt_type</command> is one of the given values :
-          <command>MAILMIME_DISCRETE_TYPE_TEXT</command> if part is text,
-          <command>MAILMIME_DISCRETE_TYPE_IMAGE</command> if part is an image,
-          <command>MAILMIME_DISCRETE_TYPE_AUDIO</command> if part is
-          audio data, 
-          <command>MAILMIME_DISCRETE_TYPE_VIDEO</command> if part is video,
-          <command>MAILMIME_DISCRETE_TYPE_APPLICATION</command> if
-          part is application data or 
-          <command>MAILMIME_DISCRETE_TYPE_EXTENSION</command> for other.
-          In the case of <command>MAILMIME_DISCRETE_TYPE_EXTENSION</command>,
-          <command>dt_extension</command> is filled in.
-          <command>MAILMIME_DISCRETE_TYPE_ERROR</command> is used internally.
-        </para>
-
-        <para>
-          <command>mailmime_discrete_type_new()</command> creates and
-          initializes 
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_discrete_type_free()</command> frees
-          memory used by 
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of MIME discrete type</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-/* standard type */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_discrete_type * discrete_type;
-  
-  discrete_type = mailmime_discrete_type_new(MAILMIME_DISCRETE_TYPE_TEXT,
-    NULL);
-    
-  /* do the things */
-  
-  mailmime_discrete_type_free(discrete_type);
-}
-
-/* extension */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_discrete_type * discrete_type;
-  
-  discrete_type = mailmime_discrete_type_new(MAILMIME_DISCRETE_TYPE_EXTENSION,
-    strdup("my-type"));
-    
-  /* do the things */
-  
-  mailmime_discrete_type_free(discrete_type);
-}
-
-void display_mime_discrete_type(struct mailmime_discrete_type * discrete_type)
-{
-  switch (discrete_type-&gt;dt_type) {
-  case MAILMIME_DISCRETE_TYPE_TEXT:
-    printf("text\n");
-    break;
-  case MAILMIME_DISCRETE_TYPE_IMAGE:
-    printf("image\n");
-    break;
-  case MAILMIME_DISCRETE_TYPE_AUDIO:
-    printf("audio\n");
-    break;
-  case MAILMIME_DISCRETE_TYPE_VIDEO:
-    printf("video\n");
-    break;
-  case MAILMIME_DISCRETE_TYPE_APPLICATION:
-    printf("application\n");
-    break;
-  case MAILMIME_DISCRETE_TYPE_EXTENSION:
-    printf("extension : %s\n", discrete_type-&gt;dt_extension);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-
-      <!-- mailmime_field -->
-      <sect2 id="mailmime-field">
-        <title>mailmime_field - MIME header field</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_FIELD_NONE,
-  MAILMIME_FIELD_TYPE,
-  MAILMIME_FIELD_TRANSFER_ENCODING,
-  MAILMIME_FIELD_ID,
-  MAILMIME_FIELD_DESCRIPTION,
-  MAILMIME_FIELD_VERSION,
-  MAILMIME_FIELD_DISPOSITION,
-  MAILMIME_FIELD_LANGUAGE,
-};
-
-struct mailmime_field {
-  int fld_type;
-  union {
-    struct mailmime_content * fld_content;
-    struct mailmime_mechanism * fld_encoding;
-    char * fld_id;
-    char * fld_description;
-    uint32_t fld_version;
-    struct mailmime_disposition * fld_disposition;
-    struct mailmime_language * fld_language;
-  } fld_data;
-};
-
-struct mailmime_field *
-mailmime_field_new(int fld_type,
-		   struct mailmime_content * fld_content,
-		   struct mailmime_mechanism * fld_encoding,
-		   char * fld_id,
-		   char * fld_description,
-		   uint32_t fld_version,
-		   struct mailmime_disposition * fld_disposition,
-		   struct mailmime_language * fld_language);
-
-void mailmime_field_free(struct mailmime_field * field);
-        </programlisting>
-        
-        <para>
-          This is a parsed MIME header field;
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_type</command> is the type of MIME header field. The value can
-              be 
-              <command>MAILMIME_FIELD_TYPE</command>
-              if field is <command>Content-Type</command>,
-              <command>MAILMIME_FIELD_TRANSFER_ENCODING</command>
-              if field is <command>Content-Transfer-Encoding</command>,
-              <command>MAILMIME_FIELD_ID</command>
-              if field is <command>Content-ID</command>,
-              <command>MAILMIME_FIELD_DESCRIPTION</command>
-              if field is <command>Content-Description</command>,
-              <command>MAILMIME_FIELD_VERSION</command>
-              if field is <command>MIME-Version</command>,
-              <command>MAILMIME_FIELD_DISPOSITION</command>
-              if field is <command>Content-Disposition</command> or
-              <command>MAILMIME_FIELD_LANGUAGE</command>
-              if field is <command>Content-Language</command>.
-              <command>MAILMIME_FIELD_NONE</command> is used internally.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_content</command> is set in case of 
-              <command>Content-Type</command>.
-              (see <xref linkend="mailmime-content">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_encoding</command> is set in case of 
-              <command>Content-Transfer-Encoding</command>.
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_id</command> is set in case of 
-              <command>Content-ID</command>. This is a string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_description</command> is set in case of 
-              <command>Content-Description</command>. This is a string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_version</command> is set in case of 
-              <command>MIME-Version</command>. This is an integer built
-              using the following formula :
-              <command>fld_version = major * 2^16 + minor</command>.
-              Currenly MIME-Version is always <command>1.0</command>, this means that
-              fld_version will always be <command>2^16</command> (in C language,
-              this is <command>1 << 16</command>).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_disposition</command> is set in case of 
-              <command>Content-Disposition</command>.
-              (see <xref linkend="mailmime-disposition">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_data.fld_language</command> is set in case of 
-              <command>Content-Language</command>.
-              (see <xref linkend="mailmime-language">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          <command>mailmime_field_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_field_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of MIME header field</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_field * field;
-  struct mailmime_mechanism * encoding;
-
-  encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_BASE64, NULL);
-
-  field = mailmime_field_new(MAILMIME_FIELD_TRANSFER_ENCODING,
-    NULL, encoding, NULL, NULL, 0, NULL, NULL);
-
-  /* do the things */
-
-  mailmime_field_free(field);
-}
-
-void display_mime_field(struct mailmime_field * field)
-{
-  switch (field-&gt;fld_type) {
-  case MAILMIME_FIELD_TYPE:
-    printf("content-type:");
-    display_mime_content(field-&gt;fld_data.fld_content);
-    break;
-  case MAILMIME_FIELD_TRANSFER_ENCODING:
-    printf("content-transfer-encoding:");
-    display_mime_mechanism(field-&gt;fld_data.fld_encoding);
-    break;
-  case MAILMIME_FIELD_ID:
-    printf("content-id: %s\n", field-&gt;fld_data.fld_id);
-    break;
-  case MAILMIME_FIELD_DESCRIPTION:
-    printf("content-description: %s\n", field-&gt;fld_data.fld_description);
-    break;
-  case MAILMIME_FIELD_VERSION:
-    printf("mime-version: %i.%i\n",
-      field-&gt;version>> 16, field-&gt;fld_data.fld_version & 0xFFFF);
-    break;
-  case MAILMIME_FIELD_DISPOSITION:
-    printf("content-disposition:");
-    display_mime_disposition(field-&gt;fld_data.fld_disposition);
-    break;
-  case MAILMIME_FIELD_LANGUAGE:
-    printf("content-language:");
-    display_mime_language(field-&gt;fld_data.fld_language);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_mechanism -->
-      <sect2 id="mailmime-mechanism">
-        <title>mailmime_mechanism - MIME transfer encoding mechanism (Content-Transfer-Encoding)</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_MECHANISM_ERROR,
-  MAILMIME_MECHANISM_7BIT,
-  MAILMIME_MECHANISM_8BIT,
-  MAILMIME_MECHANISM_BINARY,
-  MAILMIME_MECHANISM_QUOTED_PRINTABLE,
-  MAILMIME_MECHANISM_BASE64,
-  MAILMIME_MECHANISM_TOKEN
-};
-
-struct mailmime_mechanism {
-  int enc_type;
-  char * enc_token;
-};
-
-struct mailmime_mechanism * mailmime_mechanism_new(int enc_type, char * enc_token);
-
-void mailmime_mechanism_free(struct mailmime_mechanism * mechanism);
-        </programlisting>
-        
-        <para>
-          This is a MIME transfer encoding mechanism description.
-        </para>
-        
-        <para>
-          <command>enc_type</command> is an encoding type. The value of this field
-          can be 
-          <command>MAILMIME_MECHANISM_7BIT</command>
-          if mechanism is <command>7bit</command>,
-          <command>MAILMIME_MECHANISM_8BIT</command>
-          if mechanism is <command>8bit</command>,
-          <command>MAILMIME_MECHANISM_BINARY</command>
-          if mechanism is <command>binary</command>,
-          <command>MAILMIME_MECHANISM_QUOTED_PRINTABLE</command>
-          if mechanism is <command>quoted-printable</command>,
-          <command>MAILMIME_MECHANISM_BASE64</command>
-          if mechanism is <command>base64</command> or
-          <command>MAILMIME_MECHANISM_TOKEN</command> for other.
-          In case of <command>MAILMIME_MECHANISM_TOKEN</command>, 
-          field <command>enc_token</command> is filled in.
-          <command>MAILMIME_MECHANISM_ERROR</command> is used internally.
-        </para>
-
-        <para>
-          <command>mailmime_mechanism_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_mechanism_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of MIME transfer encoding mechanism</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_mechanism * encoding;
-
-  encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_QUOTED_PRINTABLE, NULL);
-
-  /* do the things */
-
-  mailmime_mechanism_free(encoding);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_mechanism * encoding;
-
-  encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_TOKEN,
-    strdup("uuencoding"));
-
-  /* do the things */
-
-  mailmime_mechanism_free(encoding);
-}
-
-void display_mime_mechanism(struct mailmime_mechanism * encoding)
-{
-  switch (encoding-&gt;enc_type) {
-  case MAILMIME_MECHANISM_7BIT:
-    printf("7bit\n");
-    break;
-  case MAILMIME_MECHANISM_8BIT:
-    printf("8bit\n");
-    break;
-  case MAILMIME_MECHANISM_BINARY:
-    printf("binary\n");
-    break;
-  case MAILMIME_MECHANISM_QUOTED_PRINTABLE:
-    printf("quoted-printable\n");
-    break;
-  case MAILMIME_MECHANISM_BASE64:
-    printf("base64\n");
-    break;
-  case MAILMIME_MECHANISM_TOKEN:
-    printf("extension : %s\n", encoding-&gt;enc_token);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_fields -->
-      <sect2 id="mailmime-fields">
-        <title>mailmime_fields - header fields</title>
-      
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_fields {
-  clist * fld_list; /* list of (struct mailmime_field *) */
-};
-
-struct mailmime_fields * mailmime_fields_new(clist * fld_list);
-
-void mailmime_fields_free(struct mailmime_fields * fields);
-        </programlisting>
-        
-        <para>
-          This is the header fields of a MIME part.
-        </para>
-        
-        <para>
-          <command>fld_list</command> is the list of the header fields.
-          Each element of the list is a <command>mailmime_field</command>
-          (See <xref linkend="mailmime-field">).
-        </para>
-      
-        <para>
-          <command>mailmime_fields_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_fields_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>Creation and display of MIME fields</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_field * field;
-  struct mailmime_fields * fields;
-  clist * list;
-  struct mailmime_mechanism * encoding;
-  struct mailmime_disposition * disposition;
-
-  list = clist_new();
-
-  encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_BASE64, NULL);
-  field = mailmime_field_new(MAILMIME_FIELD_TRANSFER_ENCODING,
-    NULL, encoding, NULL, NULL, 0, NULL, NULL);
-  clist_append(list, field);
-
-  field = mailmime_field_new(MAILMIME_FIELD_VERSION,
-    NULL, NULL, NULL, NULL, 1 << 16, NULL, NULL);
-  clist_append(list, field);
-
-  /* look at the example in mailmime_disposition to see how to
-     build a mailmime_disposition */
-  disposition = build_mime_disposition();
-  field = mailmime_field_new(MAILMIME_FIELD_DISPOSITION,
-    NULL, NULL, NULL, NULL, 0, disposition, NULL);
-  clist_append(list, field);
-
-  fields = mailmime_fields_new(list);
-
-  /* do the things */
-
-  mailmime_fields_free(fields);
-}
-
-void display_mime_fields(struct mailmime_fields * fields)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(fields-&gt;fld_list ; cur != NULL ;
-    cur = clist_next(cur)) {
-    struct mailmime_field * field;
-
-    field = clist_content(cur);
-    display_field(field);
-  }
-}
-          </programlisting>          
-        </example>        
-      </sect2>
-
-      <!-- mailmime_parameter -->
-      <sect2 id="mailmime-parameter">
-        <title>mailmime_parameter - MIME type parameter</title>
-      
-        <programlisting role="C">
-struct mailmime_parameter {
-  char * pa_name;
-  char * pa_value;
-};
-        </programlisting>
-        
-        <para>
-          This is the MIME type parameter in
-          <command>Content-Type</command> MIME header 
-          field. For example, this can be
-          <command>charset="iso-8859-1"</command>. 
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>pa_name</command> is the name of the parameter,
-              for example : <command>charset</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>pa_value</command> is the value of the parameter,
-              for example : <command>iso-8859-1</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          <command>mailmime_parameter_new()</command> creates and initializes
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_parameter_free()</command> frees memory used by
-          the structure and substructures will also be released.
-        </para>
-        
-        <example>
-          <title>Creation and display of MIME type parameter</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_parameter * param;
-
-  param = mailmime_parameter_new(strdup("charset"), strdup("iso-8859-1"));
-
-  /* do the things */
-
-  mailmime_parameter_free(param);
-}
-
-void display_mime_parameter(struct mailmime_parameter * param)
-{
-  printf("%s = %s\n", param-&gt;pa_name, param-&gt;pa_value);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-
-      <!-- mailmime_type -->
-      <sect2 id="mailmime-type">
-        <title>mailmime_type - MIME main type</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_TYPE_ERROR,
-  MAILMIME_TYPE_DISCRETE_TYPE,
-  MAILMIME_TYPE_COMPOSITE_TYPE
-};
-
-struct mailmime_type {
-  int tp_type;
-  union {
-    struct mailmime_discrete_type * tp_discrete_type;
-    struct mailmime_composite_type * tp_composite_type;
-  } tp_data;
-};
-
-struct mailmime_type *
-mailmime_type_new(int tp_type,
-		  struct mailmime_discrete_type * tp_discrete_type,
-		  struct mailmime_composite_type * tp_composite_type);
-
-void mailmime_type_free(struct mailmime_type * type);
-        </programlisting>
-
-        <para>
-         This is the MIME main type (no subtype, no parameter).
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>tp_type</command>. The value of this field
-              is either <command>MAILMIME_TYPE_DISCRETE_TYPE</command> for MIME discrete type,
-              or <command>MAILMIME_TYPE_COMPOSITE_TYPE</command> for MIME composite type.
-              <command>MAILMIME_TYPE_ERROR</command> is used internally.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>tp_data.tp_discrete_type</command> is set when <command>tp_type</command>
-              is <command>MAILMIME_TYPE_DISCRETE_TYPE</command>
-              (see <xref linkend="mailmime-discrete-type">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>tp_data.tp_composite_type</command> is set when <command>tp_type</command>
-              is <command>MAILMIME_TYPE_COMPOSITE_TYPE</command>
-              (see <xref linkend="mailmime-composite-type">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <para>
-          <command>mailmime_discrete_type_new()</command> creates and
-          initializes 
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_discrete_type_free()</command> frees
-          memory used by 
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of MIME main type</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_type * type;
-  struct mailmime_discrete_type * discrete_type;
-
-  discrete_type =
-    mailmime_discrete_type_new(MAILMIME_DISCRETE_TYPE_TEXT, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_DISCRETE_TYPE, discrete_type, NULL);
-
-  /* do the things */
-
-  mailmime_type_free(type);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_type * type;
-  struct mailmime_composite_type * composite_type;
-
-  composite_type =
-    mailmime_composite_type_new(MAILMIME_COMPOSITE_TYPE_MULTIPART, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_COMPOSITE_TYPE, NULL, composite_type);
-
-  /* do the things */
-
-  mailmime_type_free(type);
-}
-
-void display_mime_type(struct mailmime_type * type)
-{
-  printf("mime type:\n");
-  switch (type-&gt;tp_type) {
-  case MAILMIME_TYPE_DISCRETE_TYPE:
-    printf("discrete type:\n");
-    display_mime_discrete_type(type-&gt;tp_data.tp_discrete_type);
-    break;
-  case MAILMIME_TYPE_COMPOSITE_TYPE:
-    printf("composite type:\n");
-    display_mime_composite_type(type-&gt;tp_data.tp_composite_type);
-    break;
-  }
-  printf("\n");
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_discrete_type -->
-      <sect2 id="mailmime-language">
-        <title>mailmime_language - Language of MIME part</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_language {
-  clist * lg_list; /* atom (char *) */
-};
-
-struct mailmime_language * mailmime_language_new(clist * lg_list);
-
-void mailmime_language_free(struct mailmime_language * lang);
-        </programlisting>
-      
-        <para>
-          This is the language used in the MIME part.
-        </para>
-      
-        <para>
-          <command>lg_list</command> is the list of codes of languages used
-          in the MIME part. This is a list of strings.
-        </para>
-
-        <para>
-          <command>mailmime_language_new()</command> creates and
-          initializes 
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_language_free()</command> frees
-          memory used by 
-          the structure and substructures will also be released.
-        </para>        
-
-        <example>
-          <title>Creation and display of language of MIME part</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_language * language;
-  clist * list;
-
-  list = clist_new();
-
-  clist_append(list, strdup("fr"));
-  clist_append(list, strdup("en"));
-
-  language = mailmime_language_new(list);
-
-  /* do the things */
-
-  mailmime_language_free(language);
-}
-
-void display_mime_language(struct mailmime_language * language)
-{
-  clistiter * cur;
-
-  printf("languages: ");
-  for(cur = clist_begin(language-&gt;lg_list) ; cur != NULL ;
-    cur = clist_next(cur)) {
-    char * name;
-
-    name = clist_content(cur);
-    printf("%s ", name);
-  }
-  printf("\n");
-}
-          </programlisting>
-        </example>
-      
-      </sect2>
-    
-      <!-- mailmime_data -->
-      <sect2 id="mailmime-data">
-        <title>mailmime_data - Content of MIME part</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_DATA_TEXT,
-  MAILMIME_DATA_FILE,
-};
-
-enum {
-  MAILMIME_MECHANISM_ERROR,
-  MAILMIME_MECHANISM_7BIT,
-  MAILMIME_MECHANISM_8BIT,
-  MAILMIME_MECHANISM_BINARY,
-  MAILMIME_MECHANISM_QUOTED_PRINTABLE,
-  MAILMIME_MECHANISM_BASE64,
-  MAILMIME_MECHANISM_TOKEN
-};
-
-struct mailmime_data {
-  int dt_type;
-  int dt_encoding;
-  int dt_encoded;
-  union {
-    struct {
-      const char * dt_data;
-      size_t dt_length;
-    } dt_text;
-    char * dt_filename;
-  } dt_data;
-};
-
-struct mailmime_data * mailmime_data_new(int dt_type, int dt_encoding,
-    int dt_encoded, const char * dt_data, size_t dt_length,
-    char * dt_filename);
-
-void mailmime_data_free(struct mailmime_data * mime_ </programlisting>
-
-        <para>
-          This is the content of MIME part, content of 
-          preamble or content of epilogue.
-        </para>
-
-        <para>
-          <command>dt_type</command> can be
-          <command>MAILMIME_DATA_TEXT</command> if 
-          the content is a string in memory,
-          <command>MAILMIME_DATA_FILE</command> if the 
-          content is in a file,
-        </para>
-
-        <para>
-          <command>dt_encoding</command> is the encoding mechanism 
-          of the part. The value of this field can be 
-          <command>MAILMIME_MECHANISM_7BIT</command> if mechanism is 
-          <command>7bit</command>, 
-          <command>MAILMIME_MECHANISM_8BIT</command> if mechanism is 
-          <command>8bit</command>, 
-          <command>MAILMIME_MECHANISM_BINARY</command> if mechanism is 
-          <command>binary</command>, 
-          <command>MAILMIME_MECHANISM_QUOTED_PRINTABLE</command> if 
-          mechanism is <command>quoted-printable</command>,
-          <command>MAILMIME_MECHANISM_BASE64</command> if mechanism is 
-          <command>base64</command> or 
-          <command>MAILMIME_MECHANISM_TOKEN</command> for other. If 
-          <command>MAILMIME_MECHANISM_TOKEN</command>, the part will
-          be considered as binary.
-          <command>MAILMIME_MECHANISM_ERROR</command> is used internally.
-        </para>
-        
-        <para>
-          <command>dt_encoded</command> is set to 1 if the part is 
-          already encoded with the mechanism given in
-          <command>dt_encoding</command>. It is set to 0 if the part
-          is already decoded or if it is necessary to encode that part 
-          before rendering it.
-        </para>
-        
-        <para>
-          <command>dt_data.dt_text.dt_data</command> is a pointer to the
-          content of the part and <command>dt_data.dt_text.dt_length</command>
-          is the length of the data if <command>dt_type</command> is
-          <command>MAILMIME_DATA_TEXT</command>.
-        </para>
-        
-        <para>
-          <command>dt_data.dt_filename</command> is the name of the file if
-          <command>dt_type</command> is <command>MAILMIME_DATA_FILE</command>.
-        </para>
-
-        <para>
-          <command>mailmime_data_new()</command> creates and
-          initializes 
-          a data structure with a value.
-          Structures given as argument are referenced by the created
-          object and will be freed if the object is released.
-        </para>
-
-        <para>
-          <command>mailmime_data_free()</command> frees
-          memory used by 
-          the structure and substructures will also be released.
-        </para>        
-        
-        <example>
-          <title>Creation and display of MIME part content</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-/* build data with a string */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_data * data;
-
-  data = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_BASE64,
-    0, "foo bar", 7, NULL);
-  
-  /* do the things */
-  
-  mailmime_data_free(data);
-}
-
-/* build data with a file */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_data * data;
-
-  data = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_BASE64,
-    0, NULL, 0, strdup("foo.txt"));
-  
-  /* do the things */
-  
-  mailmime_data_free(data);
-}
-
-void display_mime_data(struct mailmime_data * data)
-{
-  switch (data-&gt;dt_encoding) {
-  case MAILMIME_MECHANISM_7BIT:
-    printf("7bit\n");
-    break;
-  case MAILMIME_MECHANISM_8BIT:
-    printf("8bit\n");
-    break;
-  case MAILMIME_MECHANISM_BINARY:
-    printf("binary\n");
-    break;
-  case MAILMIME_MECHANISM_QUOTED_PRINTABLE:
-    printf("quoted-printable\n");
-    break;
-  case MAILMIME_MECHANISM_BASE64:
-    printf("base64\n");
-    break;
-  case MAILMIME_MECHANISM_TOKEN:
-    printf("other\n");
-    break;
-  }
-
-  if (data-&gt;dt_encoded)
-    printf("already encoded\n");
-  else
-    printf("not encoded\n");
-  
-  switch (data-&gt;dt_type) {
-  MAILMIME_DATA_TEXT:
-    printf("data : %p %i\n", data->dt_data.dt_text.dt_data,
-      data->dt_data.dt_text.dt_length);
-    break;
-  MAILMIME_DATA_FILE,
-    printf("data (file) : %s\n", data->dt_data.dt_filename);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime -->
-      <sect2 id="mailmime">
-        <title>mailmime - MIME part</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_NONE,
-  MAILMIME_SINGLE,
-  MAILMIME_MULTIPLE,
-  MAILMIME_MESSAGE,
-};
-
-struct mailmime {
-  /* parent information */
-  int mm_parent_type;
-  struct mailmime * mm_parent;
-  clistiter * mm_multipart_pos;
-
-  int mm_type;
-  const char * mm_mime_start;
-  size_t mm_length;
-  
-  struct mailmime_fields * mm_mime_fields;
-  struct mailmime_content * mm_content_type;
-  
-  struct mailmime_data * mm_body;
-  union {
-    /* single part */
-    struct mailmime_data * mm_single; /* XXX - was body */
-    
-    /* multi-part */
-    struct {
-      struct mailmime_data * mm_preamble;
-      struct mailmime_data * mm_epilogue;
-      clist * mm_mp_list;
-    } mm_multipart;
-    
-    /* message */
-    struct {
-      struct mailimf_fields * mm_fields;
-      struct mailmime * mm_msg_mime;
-    } mm_message;
-    
-  } mm_data;
-};
-
-struct mailmime * mailmime_new(int mm_type,
-    const char * mm_mime_start, size_t mm_length,
-    struct mailmime_fields * mm_mime_fields,
-    struct mailmime_content * mm_content_type,
-    struct mailmime_data * mm_body,
-    struct mailmime_data * mm_preamble,
-    struct mailmime_data * mm_epilogue,
-    clist * mm_mp_list,
-    struct mailimf_fields * mm_fields,
-    struct mailmime * mm_msg_mime);
-
-void mailmime_free(struct mailmime * mime);
-        </programlisting>
-        
-        <para>
-          This describes the MIME structure of a message or a subpart
-          of a message.
-        </para>
-        
-        <sect3>
-          <title>common</title>
-          
-          <itemizedlist>
-            <listitem>
-              <para>
-                <command>mm_parent_type</command>. MIME part type can be
-                single part, multipart or message part. This describes the MIME part
-                type of the parent. The value can be 
-                <command>MAILMIME_NONE</command> if there is no parent part,
-                <command>MAILMIME_SINGLE</command> if parent is a single part,
-                <command>MAILMIME_MULTIPLE</command> if parent is a multipart,
-                <command>MAILMIME_MESSAGE</command> if parent is a mesage part.
-              </para>
-            </listitem>
-            
-            <listitem>
-              <para>
-                <command>mm_parent</command> is the parent MIME structure.
-              </para>
-            </listitem>
-            
-            <listitem>
-              <para>
-                <command>mm_multipart_pos</command>. In the case the parent
-                is a multipart. This is the position in the list of children
-                of the parent. This position is given by a
-                <command>clisiter *</command>.
-              </para>
-            </listitem>
-            
-            <listitem>
-              <para>
-                <command>mm_type</command>. This describes the MIME part type
-                of this part. The value can be
-                <command>MAILMIME_SINGLE</command> if this is a single part,
-                <command>MAILMIME_MULTIPLE</command> if this is a multipart,
-                <command>MAILMIME_MESSAGE</command> if this is a mesage part.
-              </para>
-            </listitem>
-            
-            <listitem>
-              <para>
-                <command>mm_mime_start</command>. This is used mostly internally.
-                This gives the beginning of the header of the MIME part, when this
-                is parsed from a string in memory.
-              </para>
-            </listitem>
-            
-            
-            <listitem>
-              <para>
-                <command>mm_length</command>. This gives the length of the MIME part,
-                including the MIME header fields.
-              </para>
-            </listitem>
-            
-            <listitem>
-              <para>
-                <command>mm_mime_fields</command> is the list of parsed MIME headers
-                of this part. <command>Content-Type</command> must be excluded and stored
-                in <command>mm_content_type</command> instead
-                (see <xref linkend="mailmime-fields">).
-              </para>
-            </listitem>
-            
-            
-            <listitem>
-              <para>
-                <command>mm_content_type</command> is the parsed
-                <command>Content-Type</command> field
-                (see <xref linkend="mailmime-content">).
-              </para>
-            </listitem>
-            
-            
-            <listitem>
-              <para>
-                <command>mm_body</command> is the content of the MIME part
-                (excluding MIME header), when it is parsed from a string
-                in memory
-                (see <xref linkend="mailmime-data">).
-              </para>
-            </listitem>
-          </itemizedlist>
-        </sect3>
-        
-        <sect3>
-          <title>single part</title>
-          
-          <itemizedlist>
-            <listitem>
-              <para>
-                When the part is a single part (<command>mm_type</command>
-                is <command>MAILMIME_SINGLE</command>). The following fields
-                are valid.
-              </para>
-            </listitem>
-          
-            <listitem>
-              <para>
-                <command>mm_data.mm_single</command> is the content of the
-                MIME part (excluding MIME header), when it is parsed from a string
-                in memory. This must have the same
-                value as <command>mm_body</command> when it is set
-                (see <xref linkend="mailmime-data">).
-              </para>
-            </listitem>
-          </itemizedlist>
-        </sect3>
-        
-        <sect3>
-          <title>multipart</title>
-
-          <itemizedlist>
-            <listitem>
-              <para>
-                When the part is a multipart (<command>mm_type</command>
-                is <command>MAILMIME_MULTIPLE</command>). The following fields
-                are valid.
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                <command>mm_data.mm_multipart.mm_preamble</command>
-                is the content of the preamble of the multipart
-                (see <xref linkend="mailmime-data">).
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                <command>mm_data.mm_multipart.mm_epilogue</command>
-                is the content of the epilogue of the multipart
-                (see <xref linkend="mailmime-data">).
-              </para>
-            </listitem>
-        
-            <listitem>
-              <para>
-                <command>mm_data.mm_multipart.mm_mp_list</command>
-                is the list of sub parts 
-              </para>
-            </listitem>
-          </itemizedlist>
-        </sect3>
-        
-        <sect3>
-          <title>message part</title>
-
-          <itemizedlist>
-            <listitem>
-              <para>
-                When the part is a message (<command>mm_type</command>
-                is <command>MAILMIME_MESSAGE</command>). The following fields
-                are valid.
-              </para>
-            </listitem>
-          
-            <listitem>
-              <para>
-                <command>mm_data.mm_message.mm_fields</command> is the list of
-                the header fields of the message
-                (see <xref linkend="mailimf-fields">).
-              </para>
-            </listitem>
-
-            <listitem>
-              <para>
-                <command>mm_data.mm_message.mm_msg_mime</command> is
-                the subpart 
-                of the message part.
-              </para>
-            </listitem>
-          </itemizedlist>
-        </sect3>
-
-        <sect3>
-          <title>constructor and destructor</title>
-        
-          <para>
-            <command>mailmime_new()</command> creates and
-            initializes 
-            a data structure with a value.
-            Structures given as argument are referenced by the created
-            object and will be freed if the object is released.
-          </para>
-
-          <para>
-            <command>mailmime_free()</command> frees
-            memory used by 
-            the structure and substructures will also be released.
-          </para>        
-
-        <example>
-          <title>Creation and display of MIME part</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-/* build one single MIME part */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailimf_fields * fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-  struct mailmime_data * body;
-  
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_fields();
-  
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-
-  /* look at the example in mailmime_content to see how to
-     build a mailmime_content */
-  content_type = build_mime_content();
-  
-  body = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_8BIT, 0,
-    "foo", 3, NULL);
-  
-  mime = mailmime_new(MAILMIME_SINGLE,
-    NULL, 0, fields, mime_fields, content_type,
-    body, NULL, NULL, NULL, NULL, NULL);
-  
-  /* do the things */
-
-  mailmime_free(mime);
-}
-
-/* build one single MIME part */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailimf_fields * fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-  char * str;
-  struct mailmime_data * body;
-  
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_fields();
-  
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-
-  /* look at the example in mailmime_content to see how to
-     build a mailmime_content */
-  content_type = build_mime_content();
-  
-  str = malloc(4);
-  strcpy(str, "foo");
-  
-  body = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_8BIT, 0,
-    str, 3, NULL);
-  
-  mime = mailmime_new(MAILMIME_SINGLE,
-    NULL, 0, fields, mime_fields, content_type,
-    body, NULL, NULL, NULL, NULL, NULL);
-  
-  /* do the things */
-  
-  mailmime_free(mime);
-  free(str);
-}
-
-/* build a MIME part with a sub-message */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailimf_fields * fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-  char * str;
-  struct mailmime_type * type;
-  struct mailmime_composite_type * composite_type;
-  
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_fields();
-  
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-  
-  composite_type =
-    mailmime_composite_type_new(MAILMIME_COMPOSITE_TYPE_MESSAGE, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_COMPOSITE_TYPE, NULL,
-    composite_type);
-  content_type = mailmime_content_new(type, strdup("rfc2822"), NULL);
-  
-  /* build_mime_message() is a function that will build a mime message part */
-  sub_mime = build_mime_message();
-  
-  mime = mailmime_new(MAILMIME_MESSAGE,
-    NULL, 0, fields, mime_fields, content_type,
-    NULL, NULL, NULL, NULL, sub_mime, NULL);
-  
-  /* do the things */
-  
-  mailmime_free(mime);
-}
-
-/* build a MIME part with a sub-message (given by a string) */
-
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailimf_fields * fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-  char * str;
-  struct mailmime_data * msg_content;
-  struct mailmime_type * type;
-  struct mailmime_composite_type * composite_type;
-  
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_fields();
-  
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-  
-  composite_type =
-    mailmime_composite_type_new(MAILMIME_COMPOSITE_TYPE_MESSAGE, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_COMPOSITE_TYPE, NULL,
-    composite_type);
-  content_type = mailmime_content_new(type, strdup("rfc2822"), NULL);
-  
-  str = malloc(sizeof(SUB_MESSAGE));
-  strcpy(str, SUB_MESSAGE);
-  
-  msg_content = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_8BIT, 0,
-    str, sizeof(SUB_MESSAGE), NULL);
-
-  mime = mailmime_new(MAILMIME_MESSAGE,
-    NULL, 0, fields, mime_fields, content_type,
-    NULL, NULL, NULL, NULL, NULL, msg_content);
-  
-  /* do the things */
-  
-  mailmime_free(mime);
-  free(str);
-}
-
-/* build a multipart message */
-
-
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailimf_fields * fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-  struct mailmime_type * type;
-  struct mailmime_composite_type * composite_type;
-  struct mailmime_data * body;
-  struct mailmime_data * preamble;
-  struct mailmime_data * epilogue;
-  clist * list;
-  
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  fields = build_fields();
-  
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-
-  composite_type =
-    mailmime_composite_type_new(MAILMIME_COMPOSITE_TYPE_MULTIPART, NULL);
-  type = mailmime_type_new(MAILMIME_TYPE_COMPOSITE_TYPE, NULL,
-    composite_type);
-  content_type = mailmime_content_new(type, strdup("mixed"), NULL);
-  
-  list = clist_new();
-  /* build_mime_message() is a function that will build a mime message part */
-  sub_mime = build_mime_message();
-  clist_append(list, sub_mime);
-  sub_mime = build_mime_message();
-  clist_append(list, sub_mime);
-  
-  preamble = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_8BIT, 0,
-    PREAMBLE, sizeof(PREAMBLE), NULL);
-
-  epilogue = mailmime_data_new(MAILMIME_DATA_TEXT, MAILMIME_MECHANISM_8BIT, 0,
-    EPILOGUE, sizeof(EPILOGUE), NULL);
-  
-  mime = mailmime_new(MAILMIME_SINGLE,
-    NULL, 0, fields, mime_fields, content_type,
-    NULL, preamble, epilogue, list, NULL, NULL);
-  
-  /* do the things */
-
-  mailmime_free(mime);
-}
-
-/* display mime part info */
-
-void display_mime(struct mailmime * mime)
-{
-  clistiter * cur;
-  
-  switch (mime-&gt;mm_type) {
-  case MAILMIME_SINGLE:
-    printf("single part\n");
-    break;
-  case MAILMIME_MULTIPLE:
-    printf("multipart\n");
-    break;
-  case MAILMIME_MESSAGE:
-    printf("message\n");
-    break;
-  }
-
-  printf("part : %p, length : %i\n",
-    mime-&gt;mm_mime_start, mime-&gt;mm_length);
-  printf("\n");
-  
-  if (mime-&gt;mm_mime_fields != NULL) {
-    printf("MIME headers :\n");
-    display_mime_fields(mime->mm_mime_fields);
-    printf("\n");
-  }
-
-  printf("content type :\n");
-  display_content(mime-&gt;mm_content_type);
-  printf("\n");
-
-  switch (mime-&gt;mm_type) {
-  case MAILMIME_SINGLE:
-    display_mime_data(mime-&gt;mm_data.mm_single);
-    break;
-    
-  case MAILMIME_MULTIPLE:
-    if (mime-&gt;mm_data.mm_multipart.mm_preamble) {
-      printf("preamble :\n");
-      display_mime_data(mime-&gt;mm_data.mm_multipart.mm_preamble);
-      printf("\n");
-    }
-    
-    for(cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ;
-      cur != NULL ; cur = clist_next(cur)) {
-      display_mime(clist_content(cur));
-    }
-    
-    if (mime-&gt;mm_data.mm_multipart.mm_epilogue) {
-      printf("epilogue :\n");
-      display_mime_data(mime-&gt;mm_data.mm_multipart.mm_epilogue);
-      printf("\n");
-    }
-    break;
-    
-  case MAILMIME_MESSAGE:
-    if (mime-&gt;mm_data.mm_message.mm_fields) {
-      printf("headers :\n");
-      display_field(mime-&gt;mm_data.mm_message.mm_msg_fields);
-      printf("\n");
-    
-    if (mime-&gt;mm_data.mm_message.mm_msg_mime != NULL) {
-      printf("sub message %p :\n",
-        mime-&gt;mm_data.mm_message.mm_msg_mime);
-      display_mime(mime-&gt;mm_data.mm_message.mm_msg_mime);
-      printf("end of sub message %p\n",
-        mime-&gt;mm_data.mm_message.mm_msg_mime);
-    }
-    break;
-  }
-}
-          </programlisting>
-        </example>
-          
-        </sect3>
-
-      </sect2>
-
-      <!-- mailmime_disposition -->
-      <sect2 id="mailmime-disposition">
-        <title>mailmime_disposition - MIME disposition information (Content-Disposition)</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_disposition {
-  struct mailmime_disposition_type * dsp_type;
-  clist * dsp_parms; /* struct mailmime_disposition_parm */
-};
-        </programlisting> 
-        
-        <para>
-          This is the parsed <command>Content-Disposition</command>
-          header field.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>dsp_type</command> is the type of disposition
-              (see <xref linkend="mailmime-disposition-type">).
-            </para>
-          </listitem>
-        
-          <listitem>
-            <para>
-              <command>dsp_parms</command> is the list of parameters
-              of <command>Content-Disposition</command> header field.
-              Each element is of type <command>mailmime_disposition_parm</command>
-              (see <xref linkend="mailmime-disposition-parm">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>Creation and display of MIME disposition information</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition * disposition;
-  struct mailmime_disposition_type * disposition_type;
-  clist * disposition_parms;
-  struct mailmime_disposition_parm * param;
-
-  disposition_type =
-    mailmime_disposition_type_new(MAILMIME_DISPOSITION_TYPE_ATTACHMENT, NULL);
-
-  disposition_parms = clist_new();
-  param = mailmime_disposition_parm_new(MAILMIME_DISPOSITION_PARM_FILENAME,
-			      strdup("foo.txt"), NULL,
-			      NULL, NULL, -1, NULL);
-  clist_append(disposition_parms, param);
-  
-  disposition = mailmime_disposition_new(disposition_type, disposition_parms);
-
-  /* do the things */
-  
-  mailmime_disposition_free(disposition);
-}
-
-void display_mime_disposition(struct mailmime_disposition * disposition)
-{
-  clistiter * cur;
-
-  printf("disposition type:\n");
-  display_mailmime_disposition_type(disposition-&gt;dsp_type);
-  printf("\n");
-  printf("disposition parameters:\n");
-  for(cur = clist_begin(disposition-&gt;dsp_parms) ;
-    cur != NULL ; cur = clist_next(cur)) {
-    struct mailmime_parm * param;
-
-    param = clist_content(cur);
-    display_mime_disposition_parm(param);
-  }
-  printf("\n");
-}
-
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_disposition_type -->
-      <sect2 id="mailmime-disposition-type">
-        <title>mailmime_disposition_type - Type of MIME disposition</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_DISPOSITION_TYPE_ERROR,
-  MAILMIME_DISPOSITION_TYPE_INLINE,
-  MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-  MAILMIME_DISPOSITION_TYPE_EXTENSION
-};
-
-struct mailmime_disposition_type {
-  int dsp_type;
-  char * dsp_extension;
-};
-        </programlisting>
-        
-        <para>
-          This is the type of MIME disposition.
-          Parsed <command>Content-Disposition</command> field without
-          parameters.
-        </para>
-
-        <para>
-          <command>dsp_type</command> is the type of disposition.
-          The value can be 
-          <command>MAILMIME_DISPOSITION_TYPE_INLINE</command>
-          if MIME disposition is inline,
-          <command>MAILMIME_DISPOSITION_TYPE_ATTACHMENT</command>
-          if MIME disposition is attachment,
-          <command>MAILMIME_DISPOSITION_TYPE_EXTENSION</command>
-          for other. In this case, <command>dsp_extension</command> must be
-          set.
-          <command>MAILMIME_DISPOSITION_TYPE_ERROR</command> is used internally.
-        </para>
-        
-        <example>
-          <title>Creation and display of MIME disposition type</title>
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-/* standard disposition type */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition_type * disposition_type;
-
-  disposition_type =
-    mailmime_disposition_type_new(MAILMIME_DISPOSITION_TYPE_ATTACHMENT, NULL);
-
-  /* do the things */
-
-  mailmime_disposition_type_free(disposition_type);
-}
-
-/* disposition type extension */
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition_type * disposition_type;
-
-  disposition_type =
-    mailmime_disposition_type_new(MAILMIME_DISPOSITION_TYPE_EXTENSION,
-      strdup("mydisposition"));
-
-  /* do the things */
-
-  mailmime_disposition_type_free(disposition_type);
-}
-
-void display_mime_disposition_type(struct mailmime_disposition_type * disposition_type)
-{
-  switch (disposition-&gt;dsp_type) {
-  case MAILMIME_DISPOSITION_TYPE_INLINE:
-    printf("inline\n");
-    break;
-  case MAILMIME_DISPOSITION_TYPE_ATTACHMENT:
-    printf("attachment\n");
-    break;
-  case MAILMIME_DISPOSITION_TYPE_EXTENSION:
-    printf("extension : %s\n", disposition_type-&gt;dsp_extension);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_disposition_parm -->
-      <sect2 id="mailmime-disposition-parm">
-        <title>mailmime_disposition_parm - MIME disposition parameter</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_DISPOSITION_PARM_FILENAME,
-  MAILMIME_DISPOSITION_PARM_CREATION_DATE,
-  MAILMIME_DISPOSITION_PARM_MODIFICATION_DATE,
-  MAILMIME_DISPOSITION_PARM_READ_DATE,
-  MAILMIME_DISPOSITION_PARM_SIZE,
-  MAILMIME_DISPOSITION_PARM_PARAMETER
-};
-
-struct mailmime_disposition_parm {
-  int pa_type;
-  union {
-    char * pa_filename;
-    char * pa_creation_date;
-    char * pa_modification_date;
-    char * pa_read_date;
-    size_t pa_size;
-    struct mailmime_parameter * pa_parameter;
-  } pa_data;
-};
-        </programlisting>
-        
-        <para>
-          This is a parameter of MIME disposition information. For
-          example, this can be
-          <command>filename="foo.jpg"</command>.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>pa_type</command> is the type of
-              disposition. The value can be
-              <command>MAILMIME_DISPOSITION_PARM_FILENAME</command>
-              for a filename parameter,
-              <command>MAILMIME_DISPOSITION_PARM_CREATION_DATE</command>
-              for a creation date parameter,
-              <command>MAILMIME_DISPOSITION_PARM_MODIFICATION_DATE</command>
-              for a modification date parameter,
-              <command>MAILMIME_DISPOSITION_PARM_READ_DATE</command>
-              for a last read date parameter,
-              <command>MAILMIME_DISPOSITION_PARM_SIZE</command>
-              for a file size parameter or
-              <command>MAILMIME_DISPOSITION_PARM_PARAMETER</command>
-              for other parameters.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>pa_data.pa_filename</command> is the filename
-              parameter when <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_FILENAME</command>
-              This is a string containing the name of the
-              file.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>pa_data.pa_creation_date</command> is the 
-              creation date parameter when <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_CREATION_DATE</command>.
-              This is a string containing the formatted creation date.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>pa_data.pa_modification_date</command> is the
-              modification date parameter when <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_MODIFICATION_DATE</command>.
-              This is a string containing the formatted modification date.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>pa_data.pa_read_date</command> is the
-              last read date parameter when <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_READ_DATE</command>.
-              This is a string containing the formatted last read date.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>pa_data.pa_size</command> is the size
-              parameter when <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_SIZE</command>.
-              This gives the size of the file.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>pa_data.pa_parameter</command> is the
-              name and the value of the parameter when
-              <command>pa_type</command> is
-              <command>MAILMIME_DISPOSITION_PARM_PARAMETER</command>
-              (see <xref linkend="mailmime-parameter">)
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Creation and display of MIME disposition
-          parameter</title>
-          
-          <programlisting role="C">
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition_parm * param;
-
-  disposition_parms = clist_new();
-  param = mailmime_disposition_parm_new(MAILMIME_DISPOSITION_PARM_FILENAME,
-			      strdup("foo.txt"), NULL,
-			      NULL, NULL, -1, NULL);
-  /* do the things */
-
-  mailmime_disposition_parm_free(param);
-}
-
-void display_mime_dsp_parm(struct mailmime_disposition_parm * param)
-{
-  switch (param-&gt;pa_type) {
-  case MAILMIME_DISPOSITION_PARM_FILENAME:
-    printf("filename: %s\n", param-&gt;pa_data.pa_filename);
-    break;
-  case MAILMIME_DISPOSITION_PARM_CREATION_DATE:
-    printf("creation date: %s\n", param-&gt;pa_data.pa_creation_date);
-    break;
-  case MAILMIME_DISPOSITION_PARM_MODIFICATION_DATE:
-    printf("modification date: %s\n", param-&gt;pa_data.pa_modification_date);
-    break;
-  case MAILMIME_DISPOSITION_PARM_READ_DATE:
-    printf("read date: %s\n", param-&gt;pa_data.pa_read_date);
-    break;
-  case MAILMIME_DISPOSITION_PARM_SIZE:
-    printf("size: %lu\n", (unsigned long) param-&gt;pa_data.pa_size);
-    break;
-  case MAILMIME_DISPOSITION_PARM_PARAMETER:
-    printf("MIME disposition param:\n");
-    display_mime_parameter(param-&gt;pa_data.pa_parameter);
-    break;
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_single_fields -->
-      <sect2 id="mailmime-single-fields">
-        <title>mailmime_single_fields - MIME headers</title>
-      
-      
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_single_fields {
-  struct mailmime_content * fld_content;
-  char * fld_content_charset;
-  char * fld_content_boundary;
-  char * fld_content_name;
-  struct mailmime_mechanism * fld_encoding;
-  char * fld_id;
-  char * fld_description;
-  uint32_t fld_version;
-  struct mailmime_disposition * fld_disposition;
-  char * fld_disposition_filename;
-  char * fld_disposition_creation_date;
-  char * fld_disposition_modification_date;
-  char * fld_disposition_read_date;
-  size_t fld_disposition_size;
-  struct mailmime_language * fld_language;
-};
-
-struct mailmime_single_fields *
-mailmime_single_fields_new(struct mailmime_fields * fld_fields,
-    struct mailmime_content * fld_content);
-
-void mailmime_single_fields_free(struct mailmime_single_fields *
-    single_fields);
-
-void mailmime_single_fields_init(struct mailmime_single_fields * single_fields,
-    struct mailmime_fields * fld_fields,
-    struct mailmime_content * fld_content);
-        </programlisting>
-
-        <para>
-          <command>mailmime_fields</command> (see <xref
-          linkend="mailmime-fields">) is the native structure
-          that MIME module will use, this module will provide an easier
-          structure to use when
-          parsing fields. <command>mailmime_single_fields</command> is
-          an easier structure to get parsed fields, rather than
-          iteration over the list of fields.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_content</command> is the MIME content type
-              (see <xref linkend="mailmime-content">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_content_charset</command> is the value
-              of the MIME type parameter <command>charset</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_content_boundary</command> is the value
-              of the MIME type parameter <command>boundary</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_content_name</command> is the value
-              of the MIME type parameter <command>name</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_encoding</command> is the MIME encoding
-              mechanism used
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_id</command> is the content of the field
-              <command>Content-ID</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_description</command> is the content of the field
-              <command>Content-Description</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_version</command> is the version of MIME
-              in use.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition</command> is the MIME
-              disposition information
-              (see <xref linkend="mailmime-disposition">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition_filename</command> is
-              the <command>filename</command> parameter of the 
-              MIME disposition information.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition_creation_date</command> is
-              the <command>creation-date</command> parameter of the 
-              MIME disposition information.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition_modification_date</command> is
-              the <command>modification-date</command> parameter of the 
-              MIME disposition information.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition_read_date</command> is
-              the <command>read-date</command> parameter of the 
-              MIME disposition information.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_disposition_size</command> is
-              the <command>size</command> parameter of the 
-              MIME disposition information.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_language</command> is the language
-              of the MIME part
-              (see <xref linkend="mailmime-language">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>single_fields</command> is the structure to fill.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fld_fields</command> is the MIME fields list to
-              use to fill the <command>single_fields</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailmime_single_fields_new()</command> creates and
-          initializes a data structure with a
-          value. Structures given as argument are referenced by the created
-          object and will <emphasis>NOT</emphasis> be freed if the
-          object is released.
-        </para>
-        
-        <para>
-          <command>mailmime_single_fields_free()</command> frees
-          memory used by the structure and
-          substructures will <emphasis>NOT</emphasis> be
-          released. They should be released by
-          the application.
-        </para>
-
-        <para>
-          <command>mailimf_single_fields_init()</command> will
-          initialize fill the data structure, using
-          the given argument (<command>fld_fields</command> and
-          <command>fld_content</command>). The interesting fields will
-          be filled into single_fields.
-        </para>
-        
-        <example>
-          <title>Creation and display of single fields</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_single_fields * single_fields;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content_type;
-
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-
-  /* look at the example in mailmime_content to see how to
-     build a mailmime_content */
-  content_type = build_mime_content();
-
-  single_fields = mailmime_single_fields_new(mime_fields, content_type);
-
-  /* do the things */
-
-  mailmime_single_fields_free(single_fields);
-  mailmime_fields_free(mime_fields);
-}
-
-void display_mime_single_fields(struct mailmime_single_fields * single_fields)
-{
-  if (single_fields-&gt;fld_content != NULL) {
-    printf("content type:\n");
-    display_mime_content(single_fields-&gt;fld_content);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_content_charset != NULL) {
-    printf("content type charset: %s\n",
-      single_fields-&gt;fld_content_charset);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_content_boundary != NULL) {
-    printf("content type boundary: %s\n",
-      single_fields-&gt;fld_content_boundary);
-    printf("\n");
-  }
-  if (single_fields-&gt;content_name != NULL) {
-    printf("content type name: %s\n", single_fields-&gt;content_name);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_encoding != NULL) {
-    printf("content transfer encoding:\n");
-    display_mime_mechanism(single_fields-&gt;fld_encoding);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_id != NULL) {
-    printf("content id: %s\n", single_fields-&gt;fld_id);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_description != NULL) {
-    printf("content description: %s\n", single_fields-&gt;fld_description);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_version != 0) {
-    printf("mime version: %i.%i\n",
-      single_fields-&gt;fld_version&gt;&gt; 16,
-      single_fields-&gt;fld_version & 0xFFFF);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition != NULL) {
-    printf("content disposition:\n");
-    display_mime_disposition(single_fields-&gt;fld_disposition);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition_filename != NULL) {
-    printf("content disposition filename: %s\n",
-      single_fields-&gt;fld_disposition_filename);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition_creation_date != NULL) {
-    printf("content disposition creation date: %s\n",
-      single_fields-&gt;fld_disposition_creation_date);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition_modification_date != NULL) {
-    printf("content disposition modification date: %s\n",
-      single_fields-&gt;fld_disposition_modification_date);
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition_read_date != NULL) {
-    printf("content disposition read date: %s\n",
-      single_fields-&gt;fld_disposition_read_date;
-    printf("\n");
-  }
-  if (single_fields-&gt;fld_disposition_size != (size_t) -1) {
-    printf("content disposition size : %i\n",
-      single_fields-&gt;fld_disposition_size);
-    printf("\n");
-  }
-  if (single_fields-&gt;language != NULL) {
-    printf("content language:\n");
-    display_mime_language(single_fields-&gt;fld_language);
-    printf("\n");
-  }
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-    </sect1>
-    
-    <!-- Parser functions -->
-    <sect1>
-      <title>Parser functions</title>
-
-      <!-- mailmime_content_parse -->
-      <sect2 id="mailmime-content-parse">
-        <title>mailmime_content_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_content_parse(const char * message, size_t length,
-			   size_t * index,
-			   struct mailmime_content ** result);
-        </programlisting>
-        
-        <para>
-          This function will parse the content of a
-          <command>Content-Type</command> header field.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content type.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-content">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>Parsing MIME content type</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Type") == 0) {
-                struct mailmime_content * content_type;
-                size_t current_index;
-
-                current_index = 0;
-	        r = mailmime_content_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;content_type);
-	        if (r == MAILIMF_NO_ERROR) {
-	          display_mime_content(content_type);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          mailmime_content_free(content_type);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_description_parse -->
-      <sect2 id="mailmime-description-parse">
-        <title>mailmime_description_parse</title>
-      
-        <programlisting role="C">
-#include &gt;libetpan/libetpan.h&lt;
-
-int mailmime_description_parse(const char * message, size_t length,
-			       size_t * index,
-			       char ** result);
-        </programlisting>
-        
-        <para>
-          This will parse the content of
-          <command>Content-Description</command> MIME header field.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content description.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>.
-              The result string must be freed with
-              <command>free()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>Parsing MIME description</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Description") == 0) {
-                char * description;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_description_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;description);
-	        if (r == MAILIMF_NO_ERROR) {
-	          printf("%s\n", description);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          free(description);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-
-        
-      </sect2>
-
-      <!-- mailmime_encoding_parse -->
-      <sect2 id="mailmime-encoding-parse">
-        <title>mailmime_encoding_parse</title>
-        
-        <programlisting role="C">
-#include &gt;libetpan/libetpan.h&lt;
-
-int mailmime_encoding_parse(const char * message, size_t length,
-			    size_t * index,
-			    struct mailmime_mechanism ** result);
-        </programlisting>
-        
-        <para>
-          This function will parse the content of
-          <command>Content-Transfer-Encoding</command> header field.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME encoding mechanism.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>parsing MIME encoding mechanism</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Transfer-Encoding") == 0) {
-                struct mailmime_content * encoding;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_encoding_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;encoding);
-	        if (r == MAILIMF_NO_ERROR) {
-                  display_mime_mechanism(encoding);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-                  mailmime_mechanism_free(encoding);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_field_parse -->
-      <sect2 id="mailmime-field-parse">
-        <title>mailmime_field_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailmime_field_parse(struct mailimf_optional_field * field,
-		     struct mailmime_field ** result);
-        </programlisting>
-        
-        <para>
-          This function will parse a MIME header field.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>field</command> is a non-parsed field
-              (see <xref linkend="mailimf-optional-field">).
-            </para>
-
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-field">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>parsing MIME header field</title>
-        
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              r = mailmime_field_parse(field-&gt;fld_data.fld_optional_field,
-                &amp;mime_fields);
-              if (r == MAILIMF_NO_ERROR) {
-                display_mime_field(mime_field);
-	        mailmime_field_free(mime_field);
-	        status = EXIT_SUCCESS;
-              }
-            }
-          }
-
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailmime_id_parse -->
-      <sect2 id="mailmime-id-parse">
-        <title>mailmime_id_parse</title>
-      
-        <programlisting role="C">
-#include &gt;libetpan/libetpan.h&lt;
-
-int mailmime_id_parse(const char * message, size_t length,
-		      size_t * index, char ** result);
-        </programlisting>
-        
-        <para>
-          This will parse the content of
-          <command>Content-ID</command> MIME header field.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content identifier.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>.
-              The result string must be freed with
-              <command>free()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>Parsing MIME content identifier</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-ID") == 0) {
-                char * id;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_id_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;id);
-	        if (r == MAILIMF_NO_ERROR) {
-	          printf("%s\n", id);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          free(id);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_fields_parse -->
-      <sect2 id="mailmime-fields-parse">
-        <title>mailmime_fields_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailmime_fields_parse(struct mailimf_fields * fields,
-		      struct mailmime_fields ** result);
-        </programlisting>
-        
-        <para>
-          This function will parse a MIME header fields.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fields</command> is a list of RFC 2822 fields
-              (see <xref linkend="mailimf-fields">).
-            </para>
-
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>parsing MIME header fields</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          struct mailmime_fields * mime_fields;
-
-	  r = mailmime_fields_parse(f, &amp;mime_fields);
-          if (r == MAILIMF_NO_ERROR) {
-	    display_mime_fields(mime_fields);
-	    mailmime_fields_free(mime_fields);
-	    status = EXIT_SUCCESS;
-          }
-
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailmime_version_parse -->
-      <sect2 id="mailmime-version-parse">
-        <title>mailmime_version_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_version_parse(const char * message, size_t length,
-			   size_t * index,
-			   uint32_t * result);
-        </programlisting>
-
-        <para>
-          This will parse the content of
-          <command>MIME-Version</command> MIME header field.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME version.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-field">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>parsing MIME version</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "MIME-Version") == 0) {
-                uint32_t version;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_version_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;version);
-	        if (r == MAILIMF_NO_ERROR) {
-	          printf("%i.%i\n", version &gt;&gt; 16, version &amp; 0xFFFF);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          free(description);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_parameter_parse -->
-      <sect2 id="mailmime-parameter-parse">
-        <title>mailmime_parameter_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_parameter_parse(const char * message, size_t length,
-			     size_t * index,
-			     struct mailmime_parameter ** result);
-        </programlisting>
-        
-        <para>
-          This will parse a MIME parameter (parameter of
-          <command>Content-Type</command> or parameter of
-          <command>Content-Disposition</command>).
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME parameter.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-parameter">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>parsing a MIME parameter</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define PARAM_STR "foo=bar"
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  size_t current_index;
-  struct mailmime_parameter * param;
-  int status;
-
-  status = EXIT_FAILURE;
-  
-  current_index = 0;
-  r = mailmime_parameter_parse(PARAM_STR, sizeof(PARAM_STR) - 1,
-    &amp;current_index, &amp;param);
-  if (r == MAILIMF_NO_ERROR) {
-    display_mime_parameter(param);
-    /* do the things */
-    mailmime_parameter_free(param);
-    status = EXIT_SUCCESS;
-  }
-
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_language_parse -->
-      <sect2 id="mailmime-language-parse">
-        <title>mailmime_language_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_language_parse(const char * message, size_t length,
-			    size_t * index,
-			    struct mailmime_language ** result);
-        </programlisting>
-        
-        <para>
-          This function will parse the content of a
-          <command>Content-Language</command> header.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content language.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-language">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing the MIME content langage</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Language") == 0) {
-                struct mailmime_language * lang;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_id_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;lang);
-	        if (r == MAILIMF_NO_ERROR) {
-	          display_mime_language(lang);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          free(id);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_disposition_parse -->
-      <sect2 id="mailmime-disposition-parse">
-        <title>mailmime_disposition_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_disposition_parse(const char * message, size_t length,
-			       size_t * index,
-			       struct mailmime_disposition ** result);
-        </programlisting>
-
-        <para>
-          This function will parse the content of a
-          <command>Content-Disposition</command> MIME header field.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content disposition.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-disposition">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing the MIME content disposition</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Disposition") == 0) {
-                struct mailmime_disposition * dsp;
-                size_t current_index;
-
-                current_index = 0;
-                r = mailmime_id_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;dsp);
-	        if (r == MAILIMF_NO_ERROR) {
-	          display_mime_disposition(dsp);
-	          /* do the things */
-	          status = EXIT_SUCCESS;
-	          free(id);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_disposition_type_parse -->
-      <sect2 id="mailmime-disposition-type-parse">
-        <title>mailmime_disposition_type_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int
-mailmime_disposition_type_parse(const char * message, size_t length,
-				size_t * index,
-				struct mailmime_disposition_type **
-                                result);
-        </programlisting>
-        
-        <para>
-          This function will parse the type of MIME content
-          disposition.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME content disposition type.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime-disposition-type">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>parsing a MIME content disposition type</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DSP_TYPE_STR "attachment"
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  size_t current_index;
-  struct mailmime_disposition_type * dsp_type;
-  int status;
-  
-  status = EXIT_FAILURE;
-  
-  current_index = 0;
-  r = mailmime_disposition_type_parse(DSP_TYPE_STR, sizeof(DSP_TYPE_STR) - 1,
-    &amp;current_index, &amp;dsp_type);
-  if (r == MAILIMF_NO_ERROR) {
-    display_mime_disposition_type(dsp_type);
-    /* do the things */
-    mailmime_disposition_type_free(dsp_type);
-    status = EXIT_SUCCESS;
-  }
-
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_encoded_phrase_parse -->
-      <sect2 id="mailmime-encoded-phrase-parse">
-        <title>mailmime_encoded_phrase_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_encoded_phrase_parse(const char * default_fromcode,
-    const char * message, size_t length,
-    size_t * index, const char * tocode,
-    char ** result);
-        </programlisting>
-        
-        <para>
-          This function will decode a MIME encoded header string,
-          encoded with RFC 2047.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>default_fromcode</command> is the default
-              code to use for parts of string that are not marked
-              with charset.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>message</command> is the string to decode.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>tocode</command> is the destination charset
-              for decoding.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>decoding a MIME encoded header string</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define TEST_STRING "=?iso-8859-1?ab?= =?iso-8859-15?cd?="
-
-int main(int argc, char ** argv)
-{
-  size_t cur_token;
-  char * decoded_subject;
-
-  cur_token = 0;
-  mailmime_encoded_phrase_parse("iso-8859-1",
-    TEST_STRING, sizeof(TEST_STRING),
-    &amp;cur_token, "iso-8859-1", &amp;decoded_subject);
-
-  printf("%s\n", decoded_subject);
-  
-  /* do the things */
-
-  free(decoded_subject);
-}
-          </programlisting>
-        </example>
-
-      </sect2>
-      
-      <!-- mailmime_parse -->
-      <sect2 id="mailmime-parse">
-        <title>mailmime_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_parse(const char * message, size_t length,
-		   size_t * index, struct mailmime ** result);
-        </programlisting>
-
-        <para>
-          This will parse a MIME message.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string containing
-              the MIME message.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>parsing a MIME message</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailmime * mime;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailmime_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;mime);
-	if (r == MAILIMF_NO_ERROR) {
-	    display_mime(mime);
-	  /* do the things */
-	  status = EXIT_SUCCESS;
-	  mailmime_free(mime);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-      <!-- mailmime_base64_body_parse -->
-      <sect2 id="mailmime-base64-body-parse">
-        <title>mailmime_base64_body_parse</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_base64_body_parse(const char * message, size_t length,
-			       size_t * index, char ** result,
-			       size_t * result_len);
-        </programlisting>
-        
-        <para>
-          This function will parse a body part encoded using base64.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string encoded using
-              base64.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              The result must be freed with
-              <command>mmap_string_unref()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing a base64 encoded part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	char * result;
-	size_t result_len;
-	
-	current_index = 0;
-	r = mailmime_base64_body_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;result, &amp;result_len);
-	if (r == MAILIMF_NO_ERROR) {
-	  
-	  /* do the things */
-	  
-	  mailmime_decoded_part_free(mem);
-	  status = EXIT_SUCCESS;
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_quoted_printable_body_parse -->
-      <sect2 id="mailmime-quoted-printable-body-parse">
-        <title>mailmime_quoted_printable_body_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_quoted_printable_body_parse(const char * message, size_t length,
-					 size_t * index, char ** result,
-					 size_t * result_len, int in_header);
-        </programlisting>
-
-        <para>
-          This function will parse a body part encoded using quoted
-          printable.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string encoded using
-              quoted printable.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              The result must be freed with
-              <command>mmap_string_unref()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing a quoted printable encoded part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	char * result;
-	size_t result_len;
-	
-	current_index = 0;
-	r = mailmime_quoted_printable_body_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;result, &amp;result_len);
-	if (r == MAILIMF_NO_ERROR) {
-	  
-	  /* do the things */
-	  
-	  mailmime_decoded_part_free(mem);
-	  status = EXIT_SUCCESS;
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_binary_body_parse -->
-      <sect2 id="mailmime-binary-body-parse">
-        <title>mailmime_binary_body_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_binary_body_parse(const char * message, size_t length,
-			       size_t * index, char ** result,
-			       size_t * result_len);
-        </programlisting>
-
-        <para>
-          This function will parse a body part encoded using binary
-          (no encoding).
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string encoded using
-              binary.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              The result must be freed with
-              <command>mmap_string_unref()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing a binary encoded part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	char * result;
-	size_t result_len;
-	
-	current_index = 0;
-	r = mailmime_binary_body_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;result, &amp;result_len);
-	if (r == MAILIMF_NO_ERROR) {
-	  
-	  /* do the things */
-	  
-	  mailmime_decoded_part_free(mem);
-	  status = EXIT_SUCCESS;
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_part_parse -->
-      <sect2 id="mailmime-part-parse">
-        <title>mailmime_part_parse</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_MECHANISM_ERROR,
-  MAILMIME_MECHANISM_7BIT,
-  MAILMIME_MECHANISM_8BIT,
-  MAILMIME_MECHANISM_BINARY,
-  MAILMIME_MECHANISM_QUOTED_PRINTABLE,
-  MAILMIME_MECHANISM_BASE64,
-  MAILMIME_MECHANISM_TOKEN
-};
-
-int mailmime_part_parse(const char * message, size_t length,
-			size_t * index,
-			int encoding, char ** result, size_t * result_len);
-        </programlisting>
-
-        <para>
-          This function will parse a body part encoded using a
-          given MIME encoding mechanism.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>message</command> is a string encoded using
-              binary.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the size of the given
-              string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>index</command> is a pointer to the start of
-              the address in the given string, <command>(*
-              index)</command> is modified to point at the end of the
-              parsed data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>encoding</command> is a MIME encoding
-              mechanism. The value can be
-              <command>MAILMIME_MECHANISM_7BIT</command>,
-              <command>MAILMIME_MECHANISM_8BIT</command>,
-              <command>MAILMIME_MECHANISM_BINARY</command>,
-              <command>MAILMIME_MECHANISM_QUOTED_PRINTABLE</command>,
-              <command>MAILMIME_MECHANISM_BASE64</command> or
-              <command>MAILMIME_MECHANISM_TOKEN</command>
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>result</command>. The result of the parse
-              operation is stored in <command>(* result)</command>
-              The result must be freed with
-              <command>mmap_string_unref()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>Parsing a MIME encoded part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	char * result;
-	size_t result_len;
-	
-	current_index = 0;
-	r = mailmime_part_parse(mem, stat_info.st_size, &amp;current_index,
-	  MAILMIME_MECHANISM_QUOTED_PRINTABLE, &amp;result, &amp;result_len);
-	if (r == MAILIMF_NO_ERROR) {
-	  
-	  /* do the things */
-	  
-	  mailmime_decoded_part_free(mem);
-	  status = EXIT_SUCCESS;
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-    </sect1>
-    
-    <sect1>
-      <title>Rendering of MIME parts</title>
-
-      <!-- mailmime_fields_write -->
-      <sect2 id="mailmime-fields-write">
-        <title>mailmime_fields_write, mailmime_content_write and
-        mailmime_content_type_write</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_fields_write(FILE * f, int * col,
-			  struct mailmime_fields * fields);
-
-int mailmime_content_write(FILE * f, int * col,
-			   struct mailmime_content * content);
-
-int mailmime_content_type_write(FILE * f, int * col,
-				struct mailmime_content * content);
-        </programlisting>
-
-        <para>
-          <command>mailmime_fields_write</command> render the MIME
-          header fields.
-        </para>
-
-        <para>
-          <command>mailmime_content_write</command> render the MIME
-          content type header field.
-        </para>
-
-        <para>
-          <command>mailmime_content_write</command> render the
-          content of the MIME content type header field.
-        </para>
-      
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>col</command> current column is given for wrapping
-              purpose in <command>(* col)</command>,
-              the resulting columns will be returned..
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>f</command> is the file descriptor. It can be
-              stdout for example.
-            </para>          
-          </listitem>
-          <listitem>
-            <para>
-              <command>fields</command> is the header fields
-              (see <xref linkend="mailmime-fields">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>content</command> is the header fields
-              (see <xref linkend="mailmime-content">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>rendering MIME header fields</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_mime * mime_fields;
-  int col;
-
-  /* look at the example in mailmime_fields to see how to
-     build a mailmime_fields */
-  mime_fields = build_mime_fields();
-
-  col = 0;
-  mailmime_fields_write(stdout, &amp;col, mime_fields);
-
-  mailmime_fields_free(mime_fields);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_content * content;
-  int col;
-
-  /* look at the example in mailmime_content to see how to
-     build a mailmime_fields */
-  content = build_mime_content();
-
-  col = 0;
-  mailmime_content_write(stdout, &amp;col, mime_fields);
-
-  mailmime_content_free(content);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_content * content;
-  int col;
-
-  /* look at the example in mailmime_content to see how to
-     build a mailmime_fields */
-  content = build_mime_content();
-
-  col = 0;
-  mailmime_content_type_write(stdout, &amp;col, mime_fields);
-
-  mailmime_content_free(content);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_write -->
-      <sect2 id="mailmime-write">
-        <title>mailmime_write</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_write(FILE * f, int * col,
-		   struct mailmime * build_info);
-        </programlisting>
-        
-        <para>
-          This function will render a MIME message.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>col</command> current column is given for wrapping
-              purpose in <command>(* col)</command>,
-              the resulting columns will be returned..
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>f</command> is the file descriptor. It can be
-              stdout for example.
-            </para>          
-          </listitem>
-          <listitem>
-            <para>
-              <command>build_info</command> is the MIME message to
-              render.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-      </sect2>
-      
-      <!-- mailmime_quoted_printable_write -->
-      <sect2 id="mailmime-quoted-printable-write">
-        <title>mailmime_quoted_printable_write
-        and mailmime_base64_write</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_quoted_printable_write(FILE * f, int * col, int istext,
-    const char * text, size_t size);
-
-int mailmime_base64_write(FILE * f, int * col,
-    const char * text, size_t size);
-        </programlisting>
-
-        <para>
-          <command>mailmime_quoted_printable_write()</command> will
-          render a string to quoted printable.
-        </para>
-
-        <para>
-          <command>mailmime_base64_write()</command> will
-          render a string to base64.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>col</command> current column is given for wrapping
-              purpose in <command>(* col)</command>,
-              the resulting columns will be returned..
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>f</command> is the file descriptor. It can be
-              stdout for example.
-            </para>          
-          </listitem>
-          <listitem>
-            <para>
-              <command>text</command> is the string to render.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>size</command> is the size of the string to
-              render.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>render base64 or quoted printable</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int col;
-
-  col = 0;
-  mailmime_quoted_printable_write(stdout, &amp;col,
-    "this is a test", 14);
-}
-
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int col;
-
-  col = 0;
-  mailmime_base64_write(stdout, &amp;col, "this is a test", 14);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_data_write -->
-      <sect2 id="mailmime-data-write">
-        <title>mailmime_data_write</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_data_write(FILE * f, int * col,
-    struct mailmime_data * data,
-    int istext);
-        </programlisting>
-        
-        <para>
-          <command>mailmime_data_write</command> will
-          render MIME data.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>col</command> current column is given for wrapping
-              purpose in <command>(* col)</command>,
-              the resulting columns will be returned..
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>f</command> is the file descriptor. It can be
-              stdout for example.
-            </para>          
-          </listitem>
-          <listitem>
-            <para>
-              <command>data</command> is the data to render
-              (see <xref linkend="mailmime-data">).
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-    </sect1>
-    
-    <!-- Creation functions -->
-    <sect1>
-      <title>Creation functions</title>
-      
-      <!-- mailmime_disposition_new_filename -->
-      <sect2 id="mailmime-disposition-new-filename">
-        <title>mailmime_disposition_new_filename and
-        mailmime_disposition_new_with_data</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_DISPOSITION_TYPE_ERROR,
-  MAILMIME_DISPOSITION_TYPE_INLINE,
-  MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-  MAILMIME_DISPOSITION_TYPE_EXTENSION
-};
-
-struct mailmime_disposition *
-mailmime_disposition_new_filename(int type, char * filename);
-
-struct mailmime_disposition *
-mailmime_disposition_new_with_data(int type,
-    char * filename, char * creation_date, char * modification_date,
-    char * read_date, size_t size);
-        </programlisting>
-        
-        <para>
-          These functions will create a MIME content disposition
-          information.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>type</command> a standard MIME disposition :
-              <command>MAILMIME_DISPOSITION_TYPE_INLINE</command> or
-              <command>MAILMIME_DISPOSITION_TYPE_ATTACHMENT</command>.
-            </para>
-            <para>
-              <command>filename</command> is the filename.
-            </para>
-            <para>
-              <command>creation_date</command> is the creation date.
-            </para>
-            <para>
-              <command>modification_date</command> is the modification
-              date.
-            </para>
-            <para>
-              <command>read_date</command> is the last read date.
-            </para>
-            <para>
-              <command>size</command> is the size of the file.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              This will return a MIME content disposition
-              (see <xref linkend="mailmime-disposition">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>creating a MIME content disposition</title>
-
-          <programlisting role="C">        
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition * disposition;
-
-  disposition =
-    mailmime_disposition_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-      strdup("foo-bar.txt"));
-
-  /* do the things */
-  
-  mailmime_disposition_free(disposition);
-}
-        </programlisting>
-      </example>        
-      </sect2>
-
-      <!-- mailmime_fields_new_empty -->
-      <sect2 id="mailmime-fields-new-empty">
-        <title>mailmime_fields_new_empty and mailmime_fields_add</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_fields * mailmime_fields_new_empty(void);
-
-int mailmime_fields_add(struct mailmime_fields * fields,
-			struct mailmime_field * field);
-        </programlisting>        
-
-        <para>
-          <command>mailmime_fields_new_empty()</command> will
-          create a new empty MIME header fields list.
-        </para>
-
-        <para>
-          <command>mailmime_fields_add()</command> will add
-          MIME header fields to the MIME header fields list.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fields</command>. The MIME header field will
-              be added to this MIME header fields list
-              (see <xref linkend="mailmime-fields">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>field</command> is the MIME header field to add
-              (see <xref linkend="mailmime-field">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>creating a MIME header fields list</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_fields * fields;
-  struct mailmime_field * field;
-
-  fields = mailmime_fields_new_empty();
-  field = build_mime_field();
-  
-  /* do the things */
-
-  mailmime_fields_add(fields, field);
-  
-  mailmime_fields_free(fields);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_fields_new_with_data -->
-      <sect2 id="mailmime-fields-new-with-data">
-        <title>mailmime_fields_new_with_data and
-        mailmime_fields_new_with_version</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_fields *
-mailmime_fields_new_with_data(struct mailmime_mechanism * encoding,
-			      char * id,
-			      char * description,
-			      struct mailmime_disposition * disposition,
-			      struct mailmime_language * language);
-
-struct mailmime_fields *
-mailmime_fields_new_with_version(struct mailmime_mechanism * encoding,
-				 char * id,
-				 char * description,
-				 struct mailmime_disposition * disposition,
-				 struct mailmime_language * language);
-        </programlisting>        
-
-        <para>
-          <command>mailmime_fields_new_with_data()</command> will
-          create a MIME header fields list with all the given fields
-          (<command>NULL</command> can be used for the value if the
-          field must not be present).
-          <command>MIME-Version</command> header field will
-          <emphasis>not</emphasis> be added.
-        </para>
-
-        <para>
-          <command>mailmime_fields_new_with_version()</command> will
-          create a MIME header fields list with all the given fields
-          (<command>NULL</command> can be used for the value if the
-          field must not be present).
-          <command>MIME-Version</command> header field will be added.
-        </para>
-        
-        <example>
-          <title>creating new fields</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_disposition * disposition;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_mechanism * encoding;
-  
-  encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_BASE64, NULL);
-  
-  disposition =
-    mailmime_disposition_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-      strdup("foo-bar.txt"));
-  
-  mime_fields = mailmime_fields_new_with_version(encoding, NULL,
-    NULL, disposition, NULL);
-  
-  /* do the things */
-  
-  mailmime_fields_free(mime_fields);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_get_content_message -->
-      <sect2 id="mailmime-get-content-message">
-        <title>mailmime_get_content_message</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime_content * mailmime_get_content_message(void);
-
-struct mailmime_content * mailmime_get_content_text(void);
-
-struct mailmime_content * mailmime_content_new_with_str(const char * str);
-        </programlisting>
-
-        <para>
-          <command>mailmime_get_content_message()</command> will
-          create a MIME content type
-          <command>message/rfc822</command>.
-        </para>
-
-        <para>
-          <command>mailmime_get_content_text()</command> will
-          create a MIME content type
-          <command>plain/text</command>.
-        </para>
-
-        <para>
-          <command>mailmime_get_content_new_with_str()</command> will
-          create a MIME content type given by the string
-          <command>plain/text</command>.
-        </para>
-
-        <para>
-          <command>str</command>. This string will 
-          <command>NOT</command> be referenced by any structure.
-          This string will only be parsed to create the structure.
-        </para>
-
-        <example>
-          <title>Creating a MIME content type</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_content * content;
-  
-  content = mailmime_get_content_message();
-  
-  /* do the things */
-  
-  mailmime_content_free(content);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_content * content;
-  
-  content = mailmime_get_content_text();
-  
-  /* do the things */
-  
-  mailmime_content_free(content);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_content * content;
-  
-  content = mailmime_get_content_new_with_str("multipart/mixed");
-  
-  /* do the things */
-  
-  mailmime_content_free(content);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_data_new_data -->
-      <sect2 id="mailmime-data-new-data">
-        <title>mailmime_data_new_data and mailmime_data_new_file</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_MECHANISM_ERROR,
-  MAILMIME_MECHANISM_7BIT,
-  MAILMIME_MECHANISM_8BIT,
-  MAILMIME_MECHANISM_BINARY,
-  MAILMIME_MECHANISM_QUOTED_PRINTABLE,
-  MAILMIME_MECHANISM_BASE64,
-  MAILMIME_MECHANISM_TOKEN
-};
-
-struct mailmime_data *
-mailmime_data_new_data(int encoding, int encoded,
-		       const char * data, size_t length);
-
-struct mailmime_data *
-mailmime_data_new_file(int encoding, int encoded,
-		       char * filename);
-        </programlisting>
-        
-        <para>
-          <command>mailmime_data_new_data()</command> will create a
-          new MIME content, using a string in memory.
-        </para>
-
-        <para>
-          <command>mailmime_data_new_file()</command> will create a
-          new MIME content, using a file.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>encoding</command> is the MIME encoding 
-              mechanism used to encode this part. The value can be
-              <command>MAILMIME_MECHANISM_7BIT</command>,
-              <command>MAILMIME_MECHANISM_8BIT</command>,
-              <command>MAILMIME_MECHANISM_BINARY</command>,
-              <command>MAILMIME_MECHANISM_QUOTED_PRINTABLE</command> or
-              <command>MAILMIME_MECHANISM_BASE64</command>
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>encoded</command> is set to 1 if the part is 
-              already encoded with the mechanism given in
-              <command>encoding</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>data</command> is a pointer to the
-              content of the part.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the length of the data.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>filename</command> is the name of the file.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>creating MIME content</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DATA_STR "my data"
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_data * data;
-  
-  data = mailmime_data_new_data(MAILMIME_MECHANISM_BASE64, 0,
-		                DATA_STR, sizeof(DATA_STR) - 1);
-
-  /* do the things */
-  
-  mailmime_data_free(data);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime_data * data;
-  
-  data = mailmime_data_new_file(MAILMIME_MECHANISM_BASE64, 0,
-		                strdup("foo-bar.txt"));
-
-  /* do the things */
-  
-  mailmime_data_free(data);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_new_message_data -->
-      <sect2 id="mailmime-new-message-data">
-        <title>mailmime_new_message_data, mailmime_new_empty and
-        mailmime_new_with_content</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmime *
-mailmime_new_message_data(struct mailmime * msg_mime);
-
-struct mailmime *
-mailmime_new_empty(struct mailmime_content * content,
-		   struct mailmime_fields * mime_fields);
-
-int
-mailmime_new_with_content(const char * content_type,
-			  struct mailmime_fields * mime_fields,
-			  struct mailmime ** result);
-
-struct mailmime * mailmime_multiple_new(const char * type);
-        </programlisting>
-        
-        <para>
-          <command>mailmime_new_message_data()</command> will create a
-          new MIME message with the given subpart.
-        </para>
-
-        <para>
-          <command>mailmime_new_empty()</command> will create a
-          new MIME part with the given content type and MIME fields
-          but with no content.
-        </para>
-
-        <para>
-          <command>mailmime_new_with_content()</command> will create a
-          new MIME part with a content type given by a string and a
-          given MIME fields list.
-        </para>
-
-        <para>
-          <command>mailmime_multiple_new()</command> will create a
-          new MIME multipart with a content type given by a string.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>msg_mime</command> is the sub part to add to the
-              MIME message when creating it
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>content</command> is the content type of the part
-              to create
-              (see <xref linkend="mailmime-content">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>content_type</command> is the content type of
-              the part to create given by a string.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mime_fields</command> is the list of MIME
-              header fields
-              (see <xref linkend="mailmime-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>creating a MIME part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DATA_STR "my data"
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailmime * single_part;
-  
-  mime_fields =
-    mailmime_fields_new_encoding(MAILMIME_MECHANISM_QUOTED_PRINTABLE);
-  mailmime_new_with_content("plain/text", mime_fields, &amp;single_part);
-
-  mailmime_set_body_text(single_part, DATA_STR, sizeof(DATA_STR) - 1);
-
-  mime = mailmime_new_message_data(single_part);
-
-  /* do the things */
-  
-  mailmime_free(mime);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailmime * single_part;
-  struct mailmime_content * content;
-  
-  mime_fields =
-    mailmime_fields_new_encoding(MAILMIME_MECHANISM_QUOTED_PRINTABLE);
-  content = mailmime_get_content_text();
-  single_part = mailmime_new_empty(content, mime_fields);
-
-  mailmime_set_body_text(single_part, DATA_STR, sizeof(DATA_STR) - 1);
-
-  mime = mailmime_new_message_data(single_part);
-
-  /* do the things */
-  
-  mailmime_free(mime);
-}
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  
-  mime = mailmime_multiple_new("multipart/mixed");
-
-  /* do the things */
-  
-  mailmime_free(mime);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_set_preamble_file -->
-      <sect2 id="mailmime-set-preamble-file">
-        <title>mailmime_set_preamble_file, mailmime_set_epilogue_file,
-        mailmime_set_preamble_text and mailmime_set_epilogue_text</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_set_preamble_file(struct mailmime * build_info,
-			       char * filename);
-
-int mailmime_set_epilogue_file(struct mailmime * build_info,
-			       char * filename);
-
-int mailmime_set_preamble_text(struct mailmime * build_info,
-			       char * data_str, size_t length);
-
-int mailmime_set_epilogue_text(struct mailmime * build_info,
-			       char * data_str, size_t length);
-        </programlisting>
-
-        <para>
-          <command>mailmime_set_preamble_file()</command> will define
-          the preamble of a multipart.
-        </para>
-
-        <para>
-          <command>mailmime_set_preamble_text()</command> will define
-          the preamble of a multipart.
-        </para>
-
-        <para>
-          <command>mailmime_set_epilogue_file()</command> will define
-          the epilogue of a multipart.
-        </para>
-
-        <para>
-          <command>mailmime_set_preamble_text()</command> will define
-          the preamble of a multipart.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>build_info</command> is the MIME part to modify
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>data_str</command> is the string to define
-              as epilogue or prologue.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the length of the string to
-              define as epilogue or prologue.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>filename</command> is the name of the file
-              which content will be defined as epilogue or prologue.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>setting preamble and epilogue</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DATA_STR "test foo bar"
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-
-  mime = mailmime_multiple_new("multipart/mixed");  
-
-  mailmime_set_preamble_file(mime, strdup("foo-bar.txt"));
-
-  mailmime_set_epilogue_data(mime, DATA_STR, sizeof(DATA_STR) - 1);
-
-  /* do the things */
-
-  mailmime_free(mime);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_set_body_file -->
-      <sect2 id="mailmime-set-body-file">
-        <title>mailmime_set_body_file and mailmime_set_body_text</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_set_body_file(struct mailmime * build_info,
-			   char * filename);
-
-int mailmime_set_body_text(struct mailmime * build_info,
-			   char * data_str, size_t length);
-        </programlisting>
-
-        <para>
-          <command>mailmime_set_body_file()</command> will define
-          the body of a single part.
-        </para>
-
-        <para>
-          <command>mailmime_set_body_text()</command> will define
-          the body of a single part.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>build_info</command> is the MIME part to modify
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>data_str</command> is the string to define
-              as the body of the part.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>length</command> is the length of the string to
-              define as the body of the part.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>filename</command> is the name of the file
-              which content will be defined as the body of the part.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>creating a MIME part</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DATA_STR "my data"
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  
-  mime_fields =
-    mailmime_fields_new_encoding(MAILMIME_MECHANISM_QUOTED_PRINTABLE);
-  mailmime_new_with_content("plain/text", mime_fields, &amp;mime);
-
-  mailmime_set_body_text(mime, DATA_STR, sizeof(DATA_STR) - 1);
-
-  
-
-  /* do the things */
-  
-  mailmime_free(mime);
-}
-        </programlisting>
-      </example>
-
-      </sect2>
-      
-      <!-- mailmime_add_part -->
-      <sect2 id="mailmime-add-part">
-        <title>mailmime_add_part, mailmime_remove_part,
-        mailmime_smart_add_part and mailmime_smart_remove_part</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_add_part(struct mailmime * build_info,
-		      struct mailmime * part);
-
-void mailmime_remove_part(struct mailmime * mime);
-
-int mailmime_smart_add_part(struct mailmime * mime,
-    struct mailmime * mime_sub);
-
-int mailmime_smart_remove_part(struct mailmime * mime);
-        </programlisting>
-        
-        <para>
-          <command>mailmime_add_part()</command> will add a sub MIME
-          part.
-        </para>
-        
-        <para>
-          <command>mailmime_remove_part()</command> will detach the
-          given sub part from its parent.
-        </para>
-        
-        <para>
-          <command>mailmime_smart_add_part()</command> will add a sub
-          MIME part. If the parent part is a message and no child
-          exist, the part is set as the child. If the parent part is a
-          message and a child already exists, if the child is
-          multipart, the part to add is added as child of this
-          multipart, else a multipart is added and the part is added
-          as child of the multipart.
-        </para>
-        
-        <para>
-          <command>mailmime_smart_remove_part()</command> will detach
-          the given sub part from its parent. The sub part will be
-          freed.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>build_info</command> is the parent MIME part
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>part</command> is the part to add
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mime</command> is the parent MIME part
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>mime_sub</command> is the part to add or to
-              detach
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>modifying MIME structure</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * sub_mime;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content;
-
-  content = mailmime_get_content_text();
-  
-  mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
-  
-  sub_mime = mailmime_new_empty(content, mime_fields);
-
-  mime = mailmime_new_message_data(NULL);
-
-  mailmime_add_part(mime, sub_mime);
-  
-  /* do the things */
-
-  mailmime_free(mime);
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * sub_mime;
-  struct mailmime * other_sub_mime;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content;
-
-  content = mailmime_get_content_text();
-  mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
-  sub_mime = mailmime_new_empty(content, mime_fields);
-
-  content = mailmime_get_content_text();
-  mime_fields =
-    mailmime_fields_new_encoding(MAILMIME_MECHANISM_QUOTED_PRINTABLE);
-  other_sub_mime = mailmime_new_empty(content, mime_fields);
-
-  mime = mailmime_new_message_data(NULL);
-
-  mailmime_smart_add_part(mime, sub_mime);
-  mailmime_smart_add_part(mime, other_sub_mime);
-  
-  /* do the things */
-
-  mailmime_free(mime);
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * sub_mime;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content;
-
-  content = mailmime_get_content_text();
-  
-  mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
-  
-  sub_mime = mailmime_new_empty(content, mime_fields);
-
-  mime = mailmime_new_message_data(NULL);
-
-  mailmime_add_part(mime, sub_mime);
-
-  mailmime_remove_part(sub_mime);
-  
-  /* do the things */
-
-  mailmime_free(sub_mime);
-  mailmime_free(mime);
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * sub_mime;
-  struct mailmime_fields * mime_fields;
-  struct mailmime_content * content;
-
-  content = mailmime_get_content_text();
-  
-  mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
-  
-  sub_mime = mailmime_new_empty(content, mime_fields);
-
-  mime = mailmime_new_message_data(NULL);
-
-  mailmime_add_part(mime, sub_mime);
-
-  mailmime_smart_remove_part(sub_mime);
-  
-  /* do the things */
-
-  mailmime_free(mime);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_set_imf_fields -->
-      <sect2 id="mailmime-set-imf-fields">
-        <title>mailmime_set_imf_fields</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-void mailmime_set_imf_fields(struct mailmime * build_info,
-    struct mailimf_fields * fields);
-        </programlisting>
-
-        <para>
-          <command>mailmime_set_imf_fields()</command> will set the
-          fields of the given MIME message.
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>build_info</command> is the MIME message to
-              modify
-              (see <xref linkend="mailmime">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fields</command> is the header fields to set
-              for the message
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <example>
-          <title>modifying MIME structure</title>          
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DATA_STR "test foo bar"
-
-int main(int argc, char ** argv)
-{
-  struct mailmime * mime;
-  struct mailmime_fields * mime_fields;
-  struct mailimf_fields * imf_fields;
-
-  mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT);
-
-  mailmime_new_with_content("text/plain", mime_fields, &amp;mime);
-
-  mailmime_set_body_text(mime, DATA_STR, sizeof(DATA_STR) - 1);
-
-  /* look at the example in mailimf_fields to see how to
-     build a mailimf_fields */
-  imf_fields = build_fields();
-
-  mailmime_set_imf_fields(mime, imf_fields);
-
-  /* do the things */
-
-  mailmime_free(mime);
-}
-          </programlisting>
-        </example>
-      </sect2>
-      
-      <!-- mailmime_fields_new_encoding -->
-      <sect2 id="mailmime-fields-new-encoding">
-        <title>mailmime_fields_new_encoding and
-        mailmime_fields_new_filename</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAILMIME_MECHANISM_ERROR,
-  MAILMIME_MECHANISM_7BIT,
-  MAILMIME_MECHANISM_8BIT,
-  MAILMIME_MECHANISM_BINARY,
-  MAILMIME_MECHANISM_QUOTED_PRINTABLE,
-  MAILMIME_MECHANISM_BASE64,
-  MAILMIME_MECHANISM_TOKEN
-};
-
-enum {
-  MAILMIME_DISPOSITION_TYPE_ERROR,
-  MAILMIME_DISPOSITION_TYPE_INLINE,
-  MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-  MAILMIME_DISPOSITION_TYPE_EXTENSION
-};
-
-struct mailmime_fields * mailmime_fields_new_encoding(int encoding_type);
-
-struct mailmime_fields * mailmime_fields_new_filename(int dsp_type,
-    char * filename, int encoding_type);
-        </programlisting>
-
-        <para>
-          <command>mailmime_fields_new_encoding()</command> will
-          create a list of MIME header fields with only
-          <command>Content-Transfer-Encoding</command>.
-        </para>
-
-        <para>
-          <command>mailmime_fields_new_filename()</command> will
-          create a list of MIME header fields with
-          <command>Content-Transfer-Encoding</command> and
-          <command>Content-Disposition</command>.
-        </para>
-
-        <para>
-          The result will be a list of MIME header fields
-          (see <xref linkend="mailmime-fields">).
-        </para>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>encoding_type</command> is the MIME encoding
-              mechanism. The value can be 
-              <command>MAILMIME_MECHANISM_7BIT</command>,
-              <command>MAILMIME_MECHANISM_8BIT</command>,
-              <command>MAILMIME_MECHANISM_BINARY</command>,
-              <command>MAILMIME_MECHANISM_QUOTED_PRINTABLE</command> or
-              <command>MAILMIME_MECHANISM_BASE64</command>
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>dsp_type</command> is the disposition type.
-              The value can be 
-              <command>MAILMIME_DISPOSITION_TYPE_INLINE</command> or
-              <command>MAILMIME_DISPOSITION_TYPE_ATTACHMENT</command>
-              (see <xref linkend="mailmime-disposition-type">).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>filename</command> is the filename for MIME
-              content disposition.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>creating MIME fields with only Content-Transfer-Encoding</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int main(void)
-{
-  struct mailmime_fields * fields;
-
-  fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
-  
-  /* do the things */
-  
-  mailmime_fields_free(fields);
-}
-
-int main(void)
-{
-  struct mailmime_fields * fields;
-
-  fields =
-  mailmime_fields_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
-    strdup("foo-bar.txt"), MAILMIME_MECHANISM_BASE64);
-  
-  /* do the things */
-  
-  mailmime_fields_free(fields);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-    
-    <!-- Helper functions -->
-    <sect1>
-      <title>Helper functions</title>
-      
-      <!-- mailmime_transfer_encoding_get -->
-      <sect2 id="mailmime-transfer-encoding-get">
-        <title>mailmime_transfer_encoding_get</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmime_transfer_encoding_get(struct mailmime_fields * fields);
-        </programlisting>
-
-        <para>
-          <command>mailmime_transfer_encoding_get()</command> will
-          return the standard MIME encoding mechanism.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fields</command> is the list of MIME header
-              fields.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              An integer representing the MIME encoding mechanism will
-              be returned
-              (see <xref linkend="mailmime-mechanism">).
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>extracting MIME encoding mechanism</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          struct mailmime_fields * mime_fields;
-
-	  r = mailmime_fields_parse(f, &amp;mime_fields);
-          if (r == MAILIMF_NO_ERROR) {
-            int encoding;
-            
-            encoding = mailmime_transfer_encoding_get(mime_fields);
-            
-            /* do the things */
-            
-	    mailmime_fields_free(mime_fields);
-	    status = EXIT_SUCCESS;
-          }
-
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-        
-      </sect2>
-      
-      <!-- mailmime_content_charset_get -->
-      <sect2 id="mailmime-content-charset-get">
-        <title>mailmime_content_charset_get and
-        mailmime_content_param_get</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-char * mailmime_content_charset_get(struct mailmime_content * content);
-
-char * mailmime_content_param_get(struct mailmime_content * content,
-				  char * name);
-
-char * mailmime_extract_boundary(struct mailmime_content * content_type);
-        </programlisting>
-
-        <para>
-          <command>mailmime_content_charset_get()</command> will
-          return the <command>charset</command> parameter of
-          MIME content type.
-        </para>
-
-        <para>
-          <command>mailmime_content_param_get()</command> will
-          return the value of a given parameter of
-          MIME content type.
-        </para>
-
-        <para>
-          <command>mailmime_extract_boundary()</command> will
-          return the <command>charset</command> parameter of
-          MIME content type.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para> 
-              <command>content</command> is the MIME content type.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>name</command> is the name of the parameter to
-              extract.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              With <command>mailmime_extract_boundary()</command>, the
-              returned value must be freed with
-              <command>free()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-
-        <example>
-          <title>extracting information from MIME content type</title>
-          
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-#include &lt;sys/stat.h&gt;
-#include &lt;sys/mman.h&gt;
-
-int main(int argc, char ** argv)
-{
-  int fd;
-  int r;
-  
-  status = EXIT_FAILURE;
-  
-  fd = open("message.rfc2822", O_RDONLY);
-  if (fd &gt;= 0) {
-    void * mem;
-    struct stat stat_info;
-    
-    r = fstat(fd, &amp;stat_info);
-    if (r &gt;= 0) {
-      mem = mmap(NULL, stat_info.st_size, PROT_READ, MAP_PRIVATE);
-      if (mem != MAP_FAILED) {
-        struct mailimf_fields * f;
-	size_t current_index;
-	
-	current_index = 0;
-	r = mailimf_fields_parse(mem, stat_info.st_size,
-          &amp;current_index, &amp;f);
-	if (r == MAILIMF_NO_ERROR) {
-          clistiter * cur;
-        
-          for(cur = clist_begin(f-&gt;fld_list) ; cur != NULL ; cur =
-            clist_next(cur)) {
-            struct mailmime_field * mime_field;
-            struct mailimf_field * field;
-            
-            field = clist_content(cur);
-            
-            if (field-&gt;fld_type == MAILIMF_FIELD_OPTIONAL_FIELD) {
-              if (strcasecmp(field-&gt;fld_data.fld_optional_field-&gt;fld_name,
-                "Content-Type") == 0) {
-                struct mailmime_content * content_type;
-                size_t current_index;
-
-                current_index = 0;
-	        r = mailmime_content_parse(field-&gt;fld_data.fld_optional_field-&gt;fld_value,
-                  strlen(field-&gt;fld_data.fld_optional_field-&gt;fld_value),
-                  &amp;current_index, &amp;content_type);
-	        if (r == MAILIMF_NO_ERROR) {
-                  char * charset;
-                  char * name;
-                  char * boundary;                  
-
-                  charset = mailmime_content_charset_get(content_type);
-                  name = mailmime_content_param_get(content_type, "name");
-                  boundary = mailmime_extract_boundary(content_type);
-                  
-	          /* do the things */
-                  
-                  free(boundary);
-                  
-	          status = EXIT_SUCCESS;
-	          mailmime_content_free(content_type);
-	        }
-              }
-            }
-          }
-	  mailimf_fields_free(f);
-	}
-      }
-      munmap(mem, stat_info.st_size);
-    }
-    
-    close(fd);
-  }
-  
-  exit(status);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-  </chapter>
-
-  <!-- Storages, folders, messages -->
-  <chapter>
-    <title>Storages, folders, messages</title>
-
-    <!-- Introduction -->
-    <sect1>
-      <title>Introduction</title>
-      
-      <para>
-        This part will give the definition of some objects.
-      </para>
-      
-      <sect2>
-        <title>Message</title>
-        
-        <para>
-          A message is the common e-mail message or news message you
-          read or send.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>MIME part</title>
-        
-        <para>
-          A message can have attachment such as images or other documents.
-          The attachment are organized into a tree structure. Each
-          node of this structure is a MIME part.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>Mailbox</title>
-        
-        <para>
-          A mailbox will contain a given number of messages.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>Storage</title>
-        
-        <para>
-          A storage is a "physical" localisation of your mailbox. This
-          can be on a filesystem (local or remote disk, this is the
-          case of MH, mbox and maildir), or this can be on a remote
-          host (this is the case for POP3, IMAP or NNTP).
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>Folder</title>
-        
-        <para>
-          A storage, for the same user, can contain a given number of
-          mailboxes, depending the storage capabilities, then, the
-          storage driver capabilities. With etPan!, MH, IMAP and NNTP
-          storages can have more than one mailbox. The mailboxes will
-          be called folders. On storage where we only have one
-          mailbox, the unique mailbox is the unique folder.
-        </para>
-      </sect2>
-      
-      <sect2>
-        <title>Session</title>
-        
-        <para>
-          The session is the network connection or the entity to which
-          the commands of the drivers are given.
-        </para>
-      </sect2>
-    </sect1>
-
-    <sect1>
-      <title>Error codes</title>
-      
-      <para>
-        Error codes returned as integers can be one of the following :
-      </para>
-      
-      <programlisting role="C">
-enum {
-  MAIL_NO_ERROR = 0,
-  MAIL_NO_ERROR_AUTHENTICATED,
-  MAIL_NO_ERROR_NON_AUTHENTICATED,
-  MAIL_ERROR_NOT_IMPLEMENTED,
-  MAIL_ERROR_UNKNOWN,
-  MAIL_ERROR_CONNECT,
-  MAIL_ERROR_BAD_STATE,
-  MAIL_ERROR_FILE,
-  MAIL_ERROR_STREAM,
-  MAIL_ERROR_LOGIN,
-  MAIL_ERROR_CREATE, /* 10 */
-  MAIL_ERROR_DELETE,
-  MAIL_ERROR_LOGOUT,
-  MAIL_ERROR_NOOP,
-  MAIL_ERROR_RENAME,
-  MAIL_ERROR_CHECK,
-  MAIL_ERROR_EXAMINE,
-  MAIL_ERROR_SELECT,
-  MAIL_ERROR_MEMORY,
-  MAIL_ERROR_STATUS,
-  MAIL_ERROR_SUBSCRIBE, /* 20 */
-  MAIL_ERROR_UNSUBSCRIBE,
-  MAIL_ERROR_LIST,
-  MAIL_ERROR_LSUB,
-  MAIL_ERROR_APPEND,
-  MAIL_ERROR_COPY,
-  MAIL_ERROR_FETCH,
-  MAIL_ERROR_STORE,
-  MAIL_ERROR_SEARCH,
-  MAIL_ERROR_DISKSPACE,
-  MAIL_ERROR_MSG_NOT_FOUND,  /* 30 */
-  MAIL_ERROR_PARSE,
-  MAIL_ERROR_INVAL,
-  MAIL_ERROR_PART_NOT_FOUND,
-  MAIL_ERROR_REMOVE,
-  MAIL_ERROR_FOLDER_NOT_FOUND,
-  MAIL_ERROR_MOVE,
-  MAIL_ERROR_STARTTLS,
-  MAIL_ERROR_CACHE_MISS,
-  MAIL_ERROR_NO_TLS,
-  MAIL_ERROR_EXPUNGE,
-  /* misc errors */
-  MAIL_ERROR_MISC,
-  MAIL_ERROR_PROTOCOL,
-  MAIL_ERROR_CAPABILITY,
-  MAIL_ERROR_CLOSE,
-  MAIL_ERROR_FATAL,
-  MAIL_ERROR_READONLY,
-  MAIL_ERROR_NO_APOP,
-  MAIL_ERROR_COMMAND_NOT_SUPPORTED,
-  MAIL_ERROR_NO_PERMISSION,
-  MAIL_ERROR_PROGRAM_ERROR,
-  MAIL_ERROR_SUBJECT_NOT_FOUND,
-  MAIL_ERROR_CHAR_ENCODING_FAILED,
-  MAIL_ERROR_SEND,
-  MAIL_ERROR_COMMAND,
-};
-      </programlisting>
-    </sect1>
-    
-    <!-- Storage -->
-    <sect1>
-      <title>Storage</title>
-
-      <sect2 id="mailstorage-driver">
-        <title>Storage driver</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct mailstorage_driver mailstorage_driver;
-
-struct mailstorage_driver {
-  char * sto_name;
-  int (* sto_connect)(struct mailstorage * storage);
-  int (* sto_get_folder_session)(struct mailstorage * storage,
-      char * pathname, mailsession ** result);
-  void (* sto_uninitialize)(struct mailstorage * storage);
-};
-        </programlisting>
-
-        <para>
-          This is the driver for a storage.
-        </para>
-              
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sto_name</command> is the name of the driver.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_connect()</command> connects the storage to
-              the remote access or to the path in the local filesystem.
-            </para>
-         </listitem>
-          <listitem>
-            <para>
-              <command>sto_get_folder_session()</command> can have two
-              kinds of behaviour. Either it creates a new session and
-              independant from the session used by the storage and
-              select the given mailbox or it selects the given mailbox
-              in the current session. It depends on the efficiency of
-              the mail access.
-            </para>
-            <para>
-              <emphasis>XXX - in the future, this will be moved to the
-              folder driver</emphasis>
-            </para>
-         </listitem>
-          <listitem>
-            <para>
-              <command>sto_uninitialize()</command> frees the data
-              created with mailstorage constructor.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="mailstorage">
-        <title>Storage</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailstorage {
-  char * sto_id;
-  void * sto_data;
-  mailsession * sto_session;
-  mailstorage_driver * sto_driver;
-  clist * sto_shared_folders; /* list of (struct mailfolder *) */
-  
-  void * sto_user_data;
-};
-        </programlisting>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sto_id</command> is an identifier for the
-              storage. This can be <command>NULL</command>.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_data</command> is the internal data
-              of the storage. This can only be changed by the driver.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_session</command> is the session used by
-              the storage. The session can be used to send commands.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_driver</command> is the driver of the
-              storage.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_shared_folders</command> is the list of
-              folders that share the session with the storage.
-              This is used internally.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sto_user_data</command> is a field for free
-              use. The user can store any data in that field.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="mailstorage-new">
-        <title>mailstorage_new and mailstorage_free</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailstorage * mailstorage_new(char * sto_id);
-
-void mailstorage_free(struct mailstorage * storage);
-        </programlisting>
-        
-        <para>
-          <command>mailstorage_new()</command> initializes a storage
-          structure with an identifier (<command>sto_id</command>) and
-          with no driver.
-        </para>
-        
-        <para>
-          <command>mailstorage_free()</command> free the memory used
-          by a storage.
-        </para>
-      </sect2>
-
-      <sect2 id="mailstorage-connect">
-        <title>mailstorage_connect and mailstorage_disconnect</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailstorage_connect(struct mailstorage * storage);
-
-void mailstorage_disconnect(struct mailstorage * storage);
-        </programlisting>
-
-        <para>
-          <command>mailstorage_connect()</command> connects the storage.
-          This function can also be used to confirm that a storage
-          connection is valid when the storage is already connected.
-        </para>
-
-        <para>
-          <command>mailstorage_disconnect()</command> disconnects the 
-          storage.
-        </para>
-      </sect2>
-      
-      <sect2>
-        <title>IMAP storage</title>
-        
-        <programlisting role="C">
-int imap_mailstorage_init(struct mailstorage * storage,
-    char * imap_servername, uint16_t imap_port,
-    char * imap_command,
-    int imap_connection_type, int imap_auth_type,
-    char * imap_login, char * imap_password,
-    int imap_cached, char * imap_cache_directory);
-        </programlisting>
-      </sect2>
-      
-      <sect2>
-        <title>Example</title>
-        
-        <example>
-          <title>use of storage</title>
-          
-          <programlisting role="C">
-int main(void)
-{
-  struct mailstorage * storage;
-  int r;
-
-  storage = mailstorage_new(NULL);
-  
-  imap_mailstorage_init(storage, "imap.my-servers.org", 0,
-    NULL, CONNECTION_TYPE_TRY_STARTTLS, IMAP_AUTH_TYPE_PLAIN,
-    "my-login", "my-password", 1, "/home/login/.libetpan/cache");
-
-  r = mailstorage_connect(storage);
-  if (r == MAIL_NO_ERROR) {
-    mailstorage_disconnect(storage);
-  }
-  
-  mailstorage_free(storage);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-    
-    <!-- Folder -->
-    <sect1>
-      <title>Folder</title>
-      
-      <sect2 id="mailfolder-driver">
-        <title>Folder driver</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-typedef struct mailfolder_driver mailfolder_driver;
-
-struct mailfolder_driver {
-  int (* fld_get_session)(struct mailfolder * folder,
-    mailsession ** result);
-
-  int (* fld_noop)(struct mailfolder * folder);
-
-  int (* fld_check)(struct mailfolder * folder);
-
-  int (* fld_expunge)(struct mailfolder * folder);
-
-  int (* fld_status)(struct mailfolder * folder,
-    uint32_t * result_messages, uint32_t * result_recent,
-    uint32_t * result_unseen);
-
-  int (* fld_append_message)(struct mailfolder * folder,
-    char * message, size_t size);
-
-  int (* fld_get_messages_list)(struct mailfolder * folder,
-    struct mailmessage_list ** result);
-
-  int (* fld_get_envelopes_list)(struct mailfolder * folder,
-    struct mailmessage_list * result);
-
-  int (* fld_get_message)(struct mailfolder * folder,
-    uint32_t num, mailmessage ** result);
-
-  int (* fld_get_message_by_uid)(struct mailfolder * folder,
-    const char * uid, mailmessage ** result);
-}
-        </programlisting>
-
-        <para>
-          XXX - this will be implemented in the future.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_get_session()</command> will return the session
-              this folder should use.
-              </para>
-          </listitem>
-          <listitem>
-            <para>
-              For other method, you should see <xref
-                linkend="mailsession-driver">.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <sect2>
-        <title>Folder</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailfolder {
-  char * fld_pathname;
-  char * fld_virtual_name;
-  
-  struct mailstorage * fld_storage;
-
-  mailsession * fld_session;
-  int fld_shared_session;
-  clistiter * fld_pos;
-
-  struct mailfolder * fld_parent;
-  unsigned int fld_sibling_index;
-  carray * fld_children; /* array of (struct mailfolder *) */
-
-  void * fld_user_data;
-};
-        </programlisting>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fld_pathname</command> is the pathname specific to
-              the driver.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_virtual_name</command> is the identifier of
-              this folder. This can be <command>NULL</command>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_storage</command> is the storage used for this
-              folder (see <xref linkend="mailstorage">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_session</command> is the session used for this
-              folder.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_shared_session</command> is set to 1 if the
-              folder use the same session as the storage. This is used
-              internally.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_pos</command> is the 
-              position in the list of folders of the storage.
-              This is used internally.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              use of <command>fld_parent</command>,
-              <command>fld_sibling_index</command> and
-              <command>fld_children</command> is deprecated.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>fld_user_data</command> is a field for free
-              use. The user can store any data in that field.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <sect2 id="mailfolder-new">
-        <title>mailfolder_new and mail_folder_free</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailfolder * mailfolder_new(struct mailstorage * fld_storage,
-    char * fld_pathname, char * fld_virtual_name);
-
-void mailfolder_free(struct mailfolder * folder);
-        </programlisting>
-
-        <para>
-          <command>mailfolder_new()</command> initializes a folder
-          structure with an identifier
-          (<command>fld_virtual_name</command>) with path name
-          (<command>fld_pathname</command>). The folder will be owned
-          by the given storage (<command>fld_storage</command>).
-        </para>
-        
-        <para>
-          <command>mailfolder_free()</command> free the memory used
-          by the folder.
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-connect">
-        <title>mailfolder_connect and mailfolder_disconnect</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailfolder_connect(struct mailfolder * folder);
-
-void mailfolder_disconnect(struct mailfolder * folder);
-        </programlisting>
-
-        <para>
-          <command>mailfolder_connect()</command> connects the folder.
-          This function can also be used to confirm that a folder
-          connection is valid when the folder is already connected.
-          When doing operations with several folders, you have to be
-          sure that this function has been called before making calls
-          on folder.
-        </para>
-
-        <para>
-          <command>mailfolder_disconnect()</command> disconnects the 
-          folder.
-        </para>
-      </sect2>
-      
-      <sect2 id="mailfolder-noop">
-        <title>mailfolder_noop</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailfolder_noop(struct mailfolder * folder);
-        </programlisting>
-        
-        <para>
-          This function will only send noop to the mail access.
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-check">
-        <title>mailfolder_check</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailfolder_check(struct mailfolder * folder);
-        </programlisting>
-        
-        <para>
-          A call to this function will save to disk the internal state
-          of the selected mailbox (such as flags).
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-expunge">
-        <title>mailfolder_expunge</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailfolder_expunge(struct mailfolder * folder);
-        </programlisting>
-        
-        <para>
-          A call to this function will delete all messages marked for
-          deletion.
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-status">
-        <title>mailfolder_status</title>
-
-        <programlisting role="C">
-int mailfolder_status(struct mailfolder * folder,
-    uint32_t * result_messages, uint32_t * result_recent,
-    uint32_t * result_unseen);
-        </programlisting>
-        
-        <para>
-          A call to this function will return some counts of messages
-          in the mailbox.
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-append-message">
-        <title>mailfolder_append_message</title>
-
-        <programlisting role="C">
-int mailfolder_append_message(struct mailfolder * folder,
-    char * message, size_t size);
-        </programlisting>
-
-        <para>
-          This function will store a new message in the given folder.
-          The message is given by a string in memory
-          (<command>message</command>) and a size
-          (<command>size</command>).
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-get-messages-list">
-        <title>mailfolder_get_messages_list</title>
-
-        <programlisting role="C">
-int mailfolder_get_messages_list(struct mailfolder * folder,
-    struct mailmessage_list ** result);
-        </programlisting>
-        
-        <para>
-          This function will return the list of messages in the given
-          folder (see <xref linkend="mailmessage-list">).
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-get-envelopes-list">
-        <title>mailfolder_get_envelopes_list</title>
-
-        <programlisting role="C">
-int mailfolder_get_envelopes_list(struct mailfolder * folder,
-    struct mailmessage_list * result);
-        </programlisting>
-        
-        <para>
-          This function will fill the list of parsed header fields
-          structure in the <command>mailmessage</command> structures
-          of the given list of messages (<command>result</command>).
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-get-message">
-        <title>mailfolder_get_message</title>
-
-        <programlisting role="C">
-int mailfolder_get_message(struct mailfolder * folder,
-    uint32_t num, mailmessage ** result);
-        </programlisting>
-        
-        <para>
-          This function will return the message identified by a
-          message index (<command>num</command>)
-          This will return a <command>mailmessage</command> structure
-          in <command>(* result)</command> (see <xref
-          linkend="mailmessage">).
-        </para>
-      </sect2>
-
-      <sect2 id="mailfolder-get-message-by-uid">
-        <title>mailfolder_get_message_by_uid</title>
-
-        <programlisting role="C">
-int mailfolder_get_message_by_uid(struct mailfolder * folder,
-    const char * uid, mailmessage ** result);
-        </programlisting>
-
-        <para>
-          This function will return the message identified by a
-          unique identifier (<command>uid</command>)
-          This will return a <command>mailmessage</command> structure
-          in <command>(* result)</command> (see <xref
-          linkend="mailmessage">).
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>Example</title>
-
-        <example>
-          <title>use of folder</title>
-
-          <programlisting role="C">
-int main(void)
-{
-  struct mailstorage * storage;
-  int r;
-
-  storage = mailstorage_new(NULL);
-  
-  imap_mailstorage_init(storage, "imap.my-servers.org", 0,
-    NULL, CONNECTION_TYPE_TRY_STARTTLS, IMAP_AUTH_TYPE_PLAIN,
-    "my-login", "my-password", 1, "/home/login/.libetpan/cache");
-
-  r = mailstorage_connect(storage);
-  if (r == MAIL_NO_ERROR) {
-    struct mailfolder * folder;
-
-    folder = mailfolder_new(storage, "INBOX", NULL);
-    
-    r = mailfolder_connect(folder);
-    if (r == MAIL_NO_ERROR) {
-      struct mailmessage_list * msg_list;
-      
-      mailfolder_get_messages_list(folder, &amp;msg_list);
-      
-      /* do the things */
-      
-      mailmessage_list_free(msg_list);
-      
-      mailfolder_disconnect(folder);
-    }
-    
-    mailstorage_disconnect(storage);
-  }
-  
-  mailstorage_free(storage);
-}
-          </programlisting>
-        </example>
-      </sect2>
-
-    </sect1>
-    
-    <!-- Message -->
-    <sect1>
-      <title>Message</title>
-      
-      <sect2 id="mailmessage-driver">
-        <title>Message driver</title>
-      
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmessage_driver {
-  char * msg_name;
-
-  int (* msg_initialize)(mailmessage * msg_info);
-  
-  void (* msg_uninitialize)(mailmessage * msg_info);
-  
-  void (* msg_flush)(mailmessage * msg_info);
-
-  void (* msg_check)(mailmessage * msg_info);
-
-  void (* msg_fetch_result_free)(mailmessage * msg_info,
-			     char * msg);
-
-  int (* msg_fetch)(mailmessage * msg_info,
-		char ** result,
-		size_t * result_len);
-       
-  int (* msg_fetch_header)(mailmessage * msg_info,
-		       char ** result,
-		       size_t * result_len);
-  
-  int (* msg_fetch_body)(mailmessage * msg_info,
-		     char ** result, size_t * result_len);
-
-  int (* msg_fetch_size)(mailmessage * msg_info,
-		     size_t * result);
-  
-  int (* msg_get_bodystructure)(mailmessage * msg_info,
-			    struct mailmime ** result);
-  
-  int (* msg_fetch_section)(mailmessage * msg_info,
-			struct mailmime * mime,
-			char ** result, size_t * result_len);
-  
-  int (* msg_fetch_section_header)(mailmessage * msg_info,
-			       struct mailmime * mime,
-			       char ** result,
-			       size_t * result_len);
-  
-  int (* msg_fetch_section_mime)(mailmessage * msg_info,
-			     struct mailmime * mime,
-			     char ** result,
-			     size_t * result_len);
-  
-  int (* msg_fetch_section_body)(mailmessage * msg_info,
-			     struct mailmime * mime,
-			     char ** result,
-			     size_t * result_len);
-
-  int (* msg_fetch_envelope)(mailmessage * msg_info,
-			 struct mailimf_fields ** result);
-
-  int (* msg_get_flags)(mailmessage * msg_info,
-		    struct mail_flags ** result);
-};
-        </programlisting>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>msg_name</command> is the name of the driver.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_initialize()</command> will initialize the
-              internal message state (field
-              <command>msg_data</command> of
-              <command>mailmessage</command> structure (see <xref
-              linkend="mailmessage">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_uninitialize()</command> will free the
-              internal message state.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>msg_flush()</command> will release memory used
-              by the MIME structure of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_check()</command> will store the flags of
-              the message into the session, so that the message can be
-              released without the flags are lost.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_result_free()</command> will free a
-              string returned by any fetch_XXX() function.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>msg_fetch()</command> will fetch a message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_header()</command> will fetch the
-              header fields of a message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_body()</command> will fetch a message
-              without its main header.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_size()</command> will return the size
-              of a message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_get_bodystructure</command> will retrieve
-              the MIME structure of the message. The returned
-              structure must <emphasis>NOT</emphasis> be freed.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_section()</command> will fetch the
-              content of the section of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_section_header()</command> will fetch
-              the header of a section of the message if the content of
-              the section is a message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_section_mime()</command> will fetch
-              the MIME header of a section of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_section_body()</command> will fetch
-              the body of a section (without the headers) of the
-              message if the content of the section is a message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fetch_envelope()</command> will return
-              a given number of parsed header fields.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_get_flags()</command> will return the
-              flags of the message.
-              The returned structure must <emphasis>NOT</emphasis> be
-              freed.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="mailmessage">
-        <title>Message</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmessage {
-  mailsession * msg_session;
-  mailmessage_driver * msg_driver;
-  uint32_t msg_index;
-  char * msg_uid;
-
-  size_t msg_size;
-  struct mailimf_fields * msg_fields;
-  struct mail_flags * msg_flags;
-
-  int msg_resolved;
-  struct mailimf_single_fields msg_single_fields;
-  struct mailmime * msg_mime;
-
-  /* internal data */
-
-  int msg_cached;
-  void * msg_data;
-  
- /*
-   msg_folder field :
-   used to reference the mailfolder, this is a workaround due
-   to the problem with initial conception, where folder notion
-   did not exist.
- */
-  void * msg_folder;
-  /* user data */
-  void * msg_user_data;
-};
-        </programlisting>
-
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>msg_session</command> is the session related to
-              the message
-              (see <xref linkend="mailsession">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_driver</command> is the driver used for the
-              message
-              (see <xref linkend="mailmessage-driver">).
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>msg_index</command> is an index to indentify
-              the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_uid</command> is the unique identifier of
-              the message, valid accross disconnections.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_size</command> is the size of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_fields</command> is the list of parsed
-              header fields of the message. This can be
-              <command>NULL</command>
-              (see <xref linkend="mailimf-fields">).
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>msg_flags</command> is the flags of the
-              message. This can be <command>NULL</command>
-              (see <xref linkend="mail-flags">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_resolved</command> will tell if the field
-              <command>msg_single_fields</command> has been initialized.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_single_fields</command> will be filled
-              using <command>msg_fields</command>
-              (see <xref linkend="mailimf-single-fields">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_mime</command> is the MIME structure of the 
-              message. It is intialized at least when
-              <command>get_bodystructure()</command> is called once.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_cached</command> is 1 when the message was
-              cached. This is used internally.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_data</command> is the internal state of the
-              message. The content depends on the driver.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_folder</command> is used to reference the
-              mailfolder, this is a workaround due to the problem with
-              initial conception, where folder notion did not exist.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>msg_user_data</command> is a field for free
-              use. The user can store any data in that field.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="mailmessage-new">
-        <title>mailmessage_new</title>
-      
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-mailmessage * mailmessage_new(void);
-
-void mailmessage_free(mailmessage * info);
-        </programlisting>
-        
-        <para>
-          <command>mailmessage_new()</command> will create a new
-          message (without driver). This is used internally by
-          drivers.
-        </para>
-        
-        <para>
-          <command>mailmessage_free()</command> will free the memory
-          used by the given message.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-init">
-        <title>mailmessage_init</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_init(mailmessage * msg_info,
-		     mailsession * session,
-		     mailmessage_driver * driver,
-		     uint32_t index, size_t size);
-        </programlisting>
-        
-        <para>
-          <command>mailmessage_init()</command> will initialize a
-          message with a driver.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>msg_info</command> is the message to initialize
-              (see <xref linkend="mailmessage">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>session</command> is the session related to the
-              message
-              (see <xref linkend="mailsession">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>driver</command> is the driver to use for the
-              message
-              (see <xref linkend="mailmessage-driver">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>index</command> is the index of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>size</command> is the size of the message.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="mailmessage-flush">
-        <title>mailmessage_flush</title>
-      
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_flush(mailmessage * info);
-        </programlisting>
-        
-        <para>
-          This function will release the memory used by the MIME
-          structure of the message.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-check">
-        <title>mailmessage_check</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_check(mailmessage * info);
-        </programlisting>
-        
-        <para>
-          After you set some flags, if you want to notify them to the
-          session before destroying the message, you can use this function.
-        </para>
-      </sect2>
-      
-      <sect2 id="mailmessage-fetch-result-free">
-        <title>mailmessage_fetch_result_free</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_result_free(mailmessage * msg_info,
-				  char * msg);
-        </programlisting>
-        
-        <para>
-          This function will free a string returned by any
-          mailmessage_fetch_XXX() function.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch">
-        <title>mailmessage_fetch</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch(mailmessage * msg_info,
-		      char ** result,
-		      size_t * result_len);
-        </programlisting>
-        
-        <para>
-          This function returns the content of the message (headers
-          and text).
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-header">
-        <title>mailmessage_fetch_header</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_header(mailmessage * msg_info,
-			     char ** result,
-			     size_t * result_len);
-        </programlisting>
-        
-        <para>
-          This function returns the header of the message as a string.
-        </para>
-        
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-body">
-        <title>mailmessage_fetch_body</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_body(mailmessage * msg_info,
-			   char ** result, size_t * result_len);
-        </programlisting>
-
-        <para>
-          This function returns the content of the message (without
-          headers).
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-size">
-        <title>mailmessage_fetch_size</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_size(mailmessage * msg_info,
-			   size_t * result);
-        </programlisting>
-        
-        <para>
-          This function returns the size of the message content.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-get-bodystructure">
-        <title>mailmessage_get_bodystructure</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_get_bodystructure(mailmessage * msg_info,
-				  struct mailmime ** result);
-        </programlisting>
-        
-        <para>
-          This functions returns the MIME structure of the message.
-          The returned information <emphasis>MUST</emphasis> not be
-          freed by hand. It is freed by
-          <command>mailmessage_flush()</command> or
-          <command>mailmessage_free()</command>
-          (see <xref linkend="mailmime">).
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-section">
-        <title>mailmessage_fetch_section</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_section(mailmessage * msg_info,
-			      struct mailmime * mime,
-			      char ** result, size_t * result_len);
-        </programlisting>
-        
-        <para>
-          This function returns the content of a MIME part.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-section-header">
-        <title>mailmessage_fetch_section_header</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_section_header(mailmessage * msg_info,
-				     struct mailmime * mime,
-				     char ** result,
-				     size_t * result_len);
-        </programlisting>
-
-        <para>
-          This function returns the header of the message contained
-          in the given MIME part.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-section-mime">
-        <title>mailmessage_fetch_section_mime</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_section_mime(mailmessage * msg_info,
-				   struct mailmime * mime,
-				   char ** result,
-				   size_t * result_len);
-        </programlisting>
-        
-        <para>
-          This function returns the MIME header of the given MIME
-          part.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-section-body">
-        <title>mailmessage_fetch_section_body</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_section_body(mailmessage * msg_info,
-				   struct mailmime * mime,
-				   char ** result,
-				   size_t * result_len);
-        </programlisting>
-
-        <para>
-          This function returns the text part of the message contained
-          in the given MIME part.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-fetch-envelope">
-        <title>mailmessage_fetch_envelope</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_fetch_envelope(mailmessage * msg_info,
-			       struct mailimf_fields ** result);
-        </programlisting>
-      </sect2>
-
-      <sect2 id="mailmessage-get-flags">
-        <title>mailmessage_get_flags</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailmessage_get_flags(mailmessage * msg_info,
-			  struct mail_flags ** result);
-        </programlisting>
-        
-        <para>
-          This function returns the flags related to the message.
-          The returned information MUST not be freed by hand. It is freed by
-          <command>mailmessage_free()</command>.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-resolve-single-fields">
-        <title>mailmessage_resolve_single_fields</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-void mailmessage_resolve_single_fields(mailmessage * msg_info);
-        </programlisting>
-        
-        <para>
-          This function will use the fields information to fill
-          the single_fields structure in the mailmessage structure.
-        </para>
-      </sect2>
-      
-      <sect2 id="mailmessage-list">
-        <title>Message list</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmessage_list {
-  carray * msg_tab; /* elements are (mailmessage *) */
-};
-
-struct mailmessage_list * mailmessage_list_new(carray * msg_tab);
-
-void mailmessage_list_free(struct mailmessage_list * env_list);
-        </programlisting>
-
-        <para>
-          This is a list of messages.
-        </para>
-        
-        <para>
-          <command>msg_tab</command> is an array containing the
-          messages (see linkend="carray").
-        </para>
-        
-        <para>
-          <command>mailmessage_list_new()</command> will initialize a
-          list of messages, using a given array of messages.
-        </para>
-        
-        <para>
-          <command>mailmessage_list_free()</command> will free the
-          memory used by the list of messages. This will also free the
-          messages.
-        </para>
-      </sect2>
-
-      <sect2 id="mailmessage-tree">
-        <title>Message tree</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailmessage_tree {
-  struct mailmessage_tree * node_parent;
-  char * node_msgid;
-  time_t node_date;
-  mailmessage * node_msg;
-  carray * node_children; /* array of (struct mailmessage_tree *) */
-
-  /* private, used for threading */
-  int node_is_reply;
-  char * node_base_subject;
-};
-
-
-struct mailmessage_tree *
-mailmessage_tree_new(char * node_msgid, time_t node_date,
-    mailmessage * node_msg);
-
-void mailmessage_tree_free(struct mailmessage_tree * tree);
-
-void mailmessage_tree_free_recursive(struct mailmessage_tree * tree);
-        </programlisting>
-
-        <para>
-          This is a node of a tree of messages.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>node_parent</command> is the parent of this
-              node.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_msgid</command> is the content of the
-              field <command>Message-ID</command> of the message.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_date</command> is the date in UNIX
-              format.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_msg</command> is the message of the node.
-              The message should have the <command>msg_fields</command>
-              field initialized.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_children</command> is the list of
-              children of this node.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_is_reply</command> is set to 1 if the
-              message is a reply.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>node_base_subject</command> is the base subject
-              of the message (base subject is defined in definition of
-              IMAP thread draft). 
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailmessage_tree_new()</command> will initialize a
-          message node.
-        </para>
-        
-        <para>
-          <command>mailmessage_tree_free()</command> will release
-          memory used by the node. This will <emphasis>NOT</emphasis>
-          free the message.
-        </para>
-      </sect2>
-
-      <sect2 id="mail-flags">
-        <title>Message flags</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-enum {
-  MAIL_FLAG_NEW       = 1 &lt;&lt; 0,
-  MAIL_FLAG_SEEN      = 1 &lt;&lt; 1,
-  MAIL_FLAG_FLAGGED   = 1 &lt;&lt; 2,
-  MAIL_FLAG_DELETED   = 1 &lt;&lt; 3,
-  MAIL_FLAG_ANSWERED  = 1 &lt;&lt; 4,
-  MAIL_FLAG_FORWARDED = 1 &lt;&lt; 5,
-  MAIL_FLAG_CANCELLED = 1 &lt;&lt; 6,
-};
-
-struct mail_flags {
-  uint32_t fl_flags;
-  clist * fl_extension; /* elements are (char *) */
-};
-
-struct mail_flags * mail_flags_new(uint32_t fl_flags, clist * fl_ext);
-
-void mail_flags_free(struct mail_flags * flags);
-
-int mail_flags_add_extension(struct mail_flags * flags,
-			     char * ext_flag);
-
-int mail_flags_remove_extension(struct mail_flags * flags,
-				char * ext_flag);
-
-int mail_flags_has_extension(struct mail_flags * flags,
-			     char * ext_flag);
-        </programlisting>
-
-        <para>
-          This is the structure containing the message flags.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>fl_flags</command> will contain the standards
-              flags. The value will be a combinaison (with or binary
-              operation) of <command>MAIL_FLAG_XXX</command> values.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>fl_extension</command> will be a list (see
-              <xref linkend="clist">) of strings representing the
-              non-standard flags.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2>
-        <title>Example</title>
-
-        <example>
-          <title>use of message</title>
-
-          <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-#define DEST_CHARSET "iso-8859-1"
-
-enum {
-  NO_ERROR,
-  ERROR_FILE,
-  ERROR_MEMORY,
-  ERROR_INVAL,
-  ERROR_FETCH,
-};
-
-/* returns TRUE is given MIME part is a text part */
-
-int etpan_mime_is_text(struct mailmime * build_info)
-{
-  if (build_info-&gt;mm_type == MAILMIME_SINGLE) {
-    if (build_info-&gt;mm_content_type != NULL) {
-      if (build_info-&gt;mm_content_type-&gt;ct_type-&gt;tp_type ==
-          MAILMIME_TYPE_DISCRETE_TYPE) {
-        if (build_info-&gt;mm_content_type-&gt;ct_type-&gt;tp_data.tp_discrete_type-&gt;dt_type ==
-            MAILMIME_DISCRETE_TYPE_TEXT)
-          return 1;
-      }
-    }
-    else
-      return 1;
-  }
-
-  return 0;
-}
-
-
-/* display content type */
-
-int show_part_info(FILE * f,
-    struct mailmime_single_fields * mime_fields,
-    struct mailmime_content * content)
-{
-  char * description;
-  char * filename;
-  int col;
-  int r;
-
-  description = mime_fields-&gt;fld_description;
-  filename = mime_fields-&gt;fld_disposition_filename;
-
-  col = 0;
-
-  r = fprintf(f, " [ Part ");
-  if (r &lt; 0)
-    goto err;
-
-  if (content != NULL) {
-    r = mailmime_content_type_write(f, &amp;col, content);
-    if (r != MAILIMF_NO_ERROR)
-      goto err;
-  }
-
-  if (filename != NULL) {
-    r = fprintf(f, " (%s)", filename);
-    if (r &lt; 0)
-      goto err;
-  }
-
-  if (description != NULL) {
-    r = fprintf(f, " : %s", description);
-    if (r &lt; 0)
-      goto err;
-  }
-
-  r = fprintf(f, " ]\n\n");
-  if (r &lt; 0)
-    goto err;
-
-  return NO_ERROR;
-  
- err:
-  return ERROR_FILE;
-}
-
-/* fetch message and decode if it is base64 or quoted-printable */
-
-int etpan_fetch_message(mailmessage * msg_info,
-    struct mailmime * mime_part,
-    struct mailmime_single_fields * fields,
-    char ** result, size_t * result_len)
-{
-  char * data;
-  size_t len;
-  int r;
-  int encoding;
-  char * decoded;
-  size_t decoded_len;
-  size_t cur_token;
-  int res;
-  int encoded;
-
-  encoded = 0;
-
-  r = mailmessage_fetch_section(msg_info,
-      mime_part, &amp;data, &amp;len);
-  if (r != MAIL_NO_ERROR) {
-    res = ERROR_FETCH;
-    goto err;
-  }
-
-  encoded = 1;
-
-  /* decode message */
-
-  if (encoded) {
-    if (fields-&gt;fld_encoding != NULL)
-      encoding = fields-&gt;fld_encoding-&gt;enc_type;
-    else 
-      encoding = MAILMIME_MECHANISM_8BIT;
-  }
-  else {
-    encoding = MAILMIME_MECHANISM_8BIT;
-  }
-
-  cur_token = 0;
-  r = mailmime_part_parse(data, len, &amp;cur_token,
-			  encoding, &amp;decoded, &amp;decoded_len);
-  if (r != MAILIMF_NO_ERROR) {
-    res = ERROR_FETCH;
-    goto free; 
-  }
-
-  mailmessage_fetch_result_free(msg_info, data);
-  
-  * result = decoded;
-  * result_len = decoded_len;
-  
-  return NO_ERROR;
-  
- free:
-  mailmessage_fetch_result_free(msg_info, data);
- err:
-  return res;
-}
-
-/* fetch fields */
-
-struct mailimf_fields * fetch_fields(mailmessage * msg_info,
-    struct mailmime * mime)
-{
-  char * data;
-  size_t len;
-  int r;
-  size_t cur_token;
-  struct mailimf_fields * fields;
-
-  r = mailmessage_fetch_section_header(msg_info, mime,
-    &amp;data, &amp;len);
-  if (r != MAIL_NO_ERROR)
-    return NULL;
-
-  cur_token = 0;
-  r = mailimf_envelopes_fields_parse(data, len,
-    &amp;cur_token, &amp;fields);
-  if (r != MAILIMF_NO_ERROR) {
-    mailmessage_fetch_result_free(msg_info, data);
-    return NULL;
-  }
-
-  mailmessage_fetch_result_free(msg_info, data);
-
-  return fields;
-}
-
-/* render message */
-
-static int etpan_render_mime(FILE * f, mailmessage * msg_info,
-    struct mailmime * mime)
-{
-  int r;
-  clistiter * cur;
-  int col;
-  int text;
-  int show;
-  struct mailmime_single_fields fields;
-  int res;
-
-  mailmime_single_fields_init(&amp;fields, mime-&gt;mm_mime_fields,
-      mime-&gt;mm_content_type);
-  
-  text = etpan_mime_is_text(mime);
-  
-  r = show_part_info(f, &amp;fields, mime-&gt;mm_content_type);
-  if (r != NO_ERROR) {
-    res = r;
-    goto err;
-  }
-
-  switch(mime-&gt;mm_type) {
-  case MAILMIME_SINGLE:
-    show = 0;
-    if (text)
-      show = 1;
-    
-    if (show) {
-      char * data;
-      size_t len;
-      char * converted;
-      size_t converted_len;
-      char * source_charset;
-      size_t write_len;
-
-      /* viewable part */
-          
-      r = etpan_fetch_message(msg_info, mime,
-          &amp;fields, &amp;data, &amp;len);
-      if (r != NO_ERROR) {
-        res = r;
-        goto err;
-      }
-          
-      source_charset = fields.fld_content_charset;
-      if (source_charset == NULL)
-        source_charset = DEST_CHARSET;
-      
-      r = charconv_buffer(source_charset, DEST_CHARSET,
-          data, len, &amp;converted, &amp;converted_len);
-      if (r != MAIL_CHARCONV_NO_ERROR) {
-        
-        r = fprintf(f, "[ error converting charset from %s to %s ]\n",
-            source_charset, DEST_CHARSET);
-          if (r &lt; 0) {
-            res = ERROR_FILE;
-            goto err;
-          }
-          
-          write_len = fwrite(data, 1, len, f);
-          if (write_len != len) {
-            mailmime_decoded_part_free(data);
-            res = r;
-            goto err;
-          }
-        }
-        else {
-          write_len = fwrite(converted, 1, converted_len, f);
-          if (write_len != len) {
-            charconv_buffer_free(converted);
-            mailmime_decoded_part_free(data);
-            res = r;
-            goto err;
-          }
-              
-          charconv_buffer_free(converted);
-        }
-            
-        write_len = fwrite("\r\n\r\n", 1, 4, f);
-        if (write_len &lt; 4) {
-          mailmime_decoded_part_free(data);
-          res = ERROR_FILE;
-          goto err;
-        }
-          
-      mailmime_decoded_part_free(data);
-    }
-    else {
-      /* not viewable part */
-
-      r = fprintf(f, "   (not shown)\n\n");
-      if (r &lt; 0) {
-        res = ERROR_FILE;
-        goto err;
-      }
-    }
-
-    break;
-    
-  case MAILMIME_MULTIPLE:
-
-    if (strcasecmp(mime-&gt;mm_content_type-&gt;ct_subtype,
-      "alternative") == 0) {
-      struct mailmime * prefered_body;
-      int prefered_score;
-
-      /* case of multiple/alternative */
-
-      /*
-        we choose the better part,
-        alternative preference :
-
-	text/plain =&gt; score 3
-	text/xxx   =&gt; score 2
-	other      =&gt; score 1
-      */
-
-      prefered_body = NULL;
-      prefered_score = 0;
-
-      for(cur = clist_begin(mime-&gt;mm_data.mm_multipart.mm_mp_list) ;
-          cur != NULL ; cur = clist_next(cur)) {
-	struct mailmime * submime;
-	int score;
-
-	score = 1;
-	submime = clist_content(cur);
-        if (etpan_mime_is_text(submime))
-          score = 2;
-
-	if (submime-&gt;mm_content_type != NULL) {
-          if (strcasecmp(submime-&gt;mm_content_type-&gt;ct_subtype,
-            "plain") == 0)
-            score = 3;
-	}
-
-	if (score &gt; prefered_score) {
-	  prefered_score = score;
-	  prefered_body = submime;
-	}
-      }
-
-      if (prefered_body != NULL) {
-	r = etpan_render_mime(f, msg_info, prefered_body);
-	if (r != NO_ERROR) {
-	  res = r;
-          goto err;
-        }
-      }
-    }
-    else {
-      for(cur = clist_begin(mime-&gt;mm_data.mm_multipart.mm_mp_list) ;
-          cur != NULL ; cur = clist_next(cur)) {
-        
-        r = etpan_render_mime(f, msg_info, clist_content(cur));
-        if (r != NO_ERROR) {
-          res = r;
-          goto err;
-        }
-      }
-    }
-
-    break;
-      
-  case MAILMIME_MESSAGE:
-
-    if (mime-&gt;mm_data.mm_message.mm_fields != NULL) {
-      struct mailimf_fields * fields;
-      
-      if (msg_info != NULL) {
-        fields = fetch_fields(msg_info, mime);
-        if (fields == NULL) {
-          res = ERROR_FETCH;
-          goto err;
-        }
-        
-        col = 0;
-        r = mailimf_fields_write(f, &amp;col, fields);
-        if (r != NO_ERROR) {
-          mailimf_fields_free(fields);
-          res = r;
-          goto err;
-        }
-        
-        mailimf_fields_free(fields);
-      }
-      else {
-        col = 0;
-        r = fields_write(f, &amp;col, mime-&gt;mm_data.mm_message.mm_fields);
-        if (r != NO_ERROR) {
-          res = r;
-          goto err;
-        }
-      }
-      
-      r = fprintf(f, "\r\n");
-      if (r &lt; 0) {
-        res = ERROR_FILE;
-        goto err;
-      }
-    }
-    
-    if (mime-&gt;mm_data.mm_message.mm_msg_mime != NULL) {
-      r = etpan_render_mime(f, msg_info,
-        mime-&gt;mm_data.mm_message.mm_msg_mime);
-      if (r != NO_ERROR) {
-        res = r;
-        goto err;
-      }
-    }
-
-    break;
-  }
-
-  return NO_ERROR;
-
- err:
-  return res;
-}
-
-
-
-int main(void)
-{
-  struct mailstorage * storage;
-  int r;
-
-  storage = mailstorage_new(NULL);
-  
-  imap_mailstorage_init(storage, "imap.my-servers.org", 0,
-    NULL, CONNECTION_TYPE_TRY_STARTTLS, IMAP_AUTH_TYPE_PLAIN,
-    "my-login", "my-password", 1, "/home/login/.libetpan/cache");
-
-  r = mailstorage_connect(storage);
-  if (r == MAIL_NO_ERROR) {
-    struct mailfolder * folder;
-
-    folder = mailfolder_new(storage, "INBOX", NULL);
-    
-    r = mailfolder_connect(folder);
-    if (r == MAIL_NO_ERROR) {
-      struct mailmessage_list * msg_list;
-      mailmessage * msg;
-      
-      mailfolder_get_messages_list(folder, &amp;msg_list);
-      
-      if (carray_count(msg_list-&gt;msg_tab) &gt; 0) {
-        struct mailmime * mime;
-      
-        msg = carray_get(msg_list-&gt;msg_tab, 0);
-        
-        mailmessage_get_bodystructure(msg, &amp;mime);
-        
-        recursive_fetch(msg, mime);
-        
-        /* do the things */
-        
-        mailmessage_flush(msg);
-      }
-      mailmessage_list_free(msg_list);
-      
-      mailfolder_disconnect(folder);
-    }
-    
-    mailstorage_disconnect(storage);
-  }
-  
-  mailstorage_free(storage);
-}
-          </programlisting>
-        </example>
-      </sect2>
-    </sect1>
-
-    <!-- Session -->
-    <sect1>
-      <title>Session</title>
-      
-      <sect2 id="mailsession-driver">
-        <title>Session driver</title>
-        
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailsession_driver {
-  char * sess_name;
-
-  int (* sess_initialize)(mailsession * session);
-  void (* sess_uninitialize)(mailsession * session);
-
-  int (* sess_parameters)(mailsession * session,
-      int id, void * value);
-
-  int (* sess_connect_stream)(mailsession * session, mailstream * s);
-  int (* sess_connect_path)(mailsession * session, char * path);
-
-  int (* sess_starttls)(mailsession * session);
-
-  int (* sess_login)(mailsession * session, char * userid, char * password);
-  int (* sess_logout)(mailsession * session);
-  int (* sess_noop)(mailsession * session);
-
-  /* folders operations */
-
-  int (* sess_build_folder_name)(mailsession * session, char * mb,
-      char * name, char ** result);
-
-  int (* sess_create_folder)(mailsession * session, char * mb);
-  int (* sess_delete_folder)(mailsession * session, char * mb);
-  int (* sess_rename_folder)(mailsession * session, char * mb,
-      char * new_name);
-  int (* sess_check_folder)(mailsession * session);
-  int (* sess_examine_folder)(mailsession * session, char * mb);
-  int (* sess_select_folder)(mailsession * session, char * mb);
-  int (* sess_expunge_folder)(mailsession * session);
-  int (* sess_status_folder)(mailsession * session, char * mb,
-      uint32_t * result_num, uint32_t * result_recent,
-      uint32_t * result_unseen);
-  int (* sess_messages_number)(mailsession * session, char * mb,
-      uint32_t * result);
-  int (* sess_recent_number)(mailsession * session, char * mb,
-      uint32_t * result);
-  int (* sess_unseen_number)(mailsession * session, char * mb,
-      uint32_t * result);
-
-  int (* sess_list_folders)(mailsession * session, char * mb,
-      struct mail_list ** result);
-  int (* sess_lsub_folders)(mailsession * session, char * mb,
-      struct mail_list ** result);
-
-  int (* sess_subscribe_folder)(mailsession * session, char * mb);
-  int (* sess_unsubscribe_folder)(mailsession * session, char * mb);
-
-  /* messages operations */
-
-  int (* sess_append_message)(mailsession * session,
-      char * message, size_t size);
-  int (* sess_copy_message)(mailsession * session,
-      uint32_t num, char * mb);
-  int (* sess_move_message)(mailsession * session,
-      uint32_t num, char * mb);
-
-  int (* sess_get_message)(mailsession * session,
-      uint32_t num, mailmessage ** result);
-
-  int (* sess_get_message_by_uid)(mailsession * session,
-      const char * uid, mailmessage ** result);
-  
-  int (* sess_get_messages_list)(mailsession * session,
-      struct mailmessage_list ** result);
-  int (* sess_get_envelopes_list)(mailsession * session,
-      struct mailmessage_list * env_list);
-  int (* sess_remove_message)(mailsession * session, uint32_t num);
-};
-        </programlisting>
-
-        <para>
-          This is a driver for a session.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sess_name</command> is the name of the driver.
-            </para>
-          </listitem>
-  
-          <listitem>
-            <para>
-              <command>sess_initialize()</command> is the function
-              that will initializes a data structure (field
-              <command>sess_data</command> in the session) specific to
-              the driver.
-              The field data (field <command>sess_data</command> in
-              the session) is the state of the session,
-              the internal data structure used by the driver.
-              It is called when creating the
-              <command>mailsession</command> structure with
-              <command>mailsession_new()</command>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_uninitialize()</command> frees the structure
-              created with <command>sess_initialize()</command>
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_parameters()</command> implements
-              functions specific to the given mail access.
-            </para>
-          </listitem>
-  
-          <listitem>
-            <para>
-              <command>sess_connect_stream()</command> connects a
-              stream to the session.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_connect_path()</command> notify a main
-              path to the session.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_starttls()</command> changes the current
-              stream to a TLS stream
-              (see <xref linkend="mailstream-ssl">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_login()</command> notifies the user and
-              the password to authenticate to the session.
-            </para>
-          </listitem>
-            
-          <listitem>
-            <para>
-              <command>sess_logout()</command> exits the session and
-              closes the stream.
-            </para>
-          </listitem>
-            
-          <listitem>
-            <para>
-              <command>sess_noop()</command> does no operation on the
-              session, but it can be used to poll for the status of
-              the connection.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_build_folder_name()</command> will return an
-              allocated string with that contains the complete path of
-              the folder to create.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_create_folder()</command> creates the
-              folder that corresponds to the given name.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_delete_folder()</command> deletes the folder
-              that corresponds to the given name.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_rename_folder()</command> change the name
-              of the folder.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_check_folder()</command> makes a
-              checkpoint of the session.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_examine_folder()</command> selects a mailbox as
-              readonly.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_select_folder()</command> selects a mailbox.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_expunge_folder()</command> deletes all
-              messages marked \Deleted.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_status_folder()</command> queries the
-              status of the folder (number of messages, number of
-              recent messages, number of unseen messages).
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_messages_number()</command> queries the
-              number of messages in the folder.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_recent_number()</command> queries the
-              number of recent messages in the folder.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_unseen_number()</command> queries the number of
-              unseen messages in the folder.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_list_folders()</command> returns the list of
-              all sub-mailboxes of the given mailbox.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_lsub_folders()</command> returns the list of
-              subscribed sub-mailboxes of the given mailbox.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_subscribe_folder()</command> subscribes to
-              the given mailbox.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_unsubscribe_folder()</command> unsubscribes to
-              the given mailbox.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_append_message()</command> adds a RFC 2822
-              message to the current given mailbox.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_copy_message()</command> copies a message
-              whose number is given to a given mailbox. The mailbox
-              must be accessible from the same session.
-              <emphasis>Use of this method is deprecated</emphasis>.
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_move_message()</command> moves a message whose
-              number is given to
-              a given mailbox. The mailbox must be accessible from the
-              same session.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_messages_list()</command> returns the list
-              of message numbers
-              of the current mailbox
-              (see <xref linkend="mailmessage-list">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_envelopes_list()</command> fills the parsed
-              fields in the <command>mailmessage</command> structures
-              (see <xref linkend="mailmessage">)
-              of the <command>mailmessage_list</command>
-              (see <xref linkend="mailmessage-list">).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_remove_message()</command> removes the given
-              message from the mailbox.
-              The message is permanently deleted.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_get_message()</command> returns a
-              mailmessage structure
-              (see <xref linkend="mailmessage">)
-              that corresponds
-              to the given message number.
-              <emphasis>Use of this method is deprecated</emphasis>.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_message_by_uid()</command> returns a
-              mailmessage structure
-              (see <xref linkend="mailmessage">)
-              that corresponds 
-              to the given message unique identifier.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          mandatory functions are the following :
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sess_connect_stream()</command> or
-              <command>connect_path()</command>
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_logout()</command>
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_messages_list()</command>
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_envelopes_list()</command>
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          we advise you to implement these functions :
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sess_select_folder()</command> (in case a session
-              can access several folders).
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <command>sess_noop()</command> (to check if the server is
-              responding)
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_check_folder()</command> (to make a checkpoint
-              of the session)
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_status_folder()</command>,
-              <command>sess_messages_number()</command>,
-              <command>sess_recent_number()</command>,
-              <command>sess_unseen_number()</command>
-              (to get stat of the folder)
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_append_message()</command> (but can't be done
-              in the case of POP3 at least).
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_login()</command> in a case of an
-              authenticated driver.
-            </para>
-          </listitem>          
-          
-          <listitem> 
-            <para>
-              <command>sess_starttls()</command> in a case of a stream
-              driver, if the procotol supports STARTTLS.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              <command>sess_get_message_by_uid()</command> so that the
-              application can remember the messages 
-              by UID and build its own list of messages.
-            </para>
-          </listitem>
-          
-          <listitem>
-            <para>
-              Everything that is specific to the driver will be
-              implemented in <command>sess_parameters()</command>.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <sect2 id="mailsession">
-        <title>Session</title>
-
-        <programlisting role="C">
-#include &lt;libetpan/libetpan.h&gt;
-
-struct mailsession {
-  void * sess_data;
-  mailsession_driver * sess_driver;
-};
-
-mailsession * mailsession_new(mailsession_driver * sess_driver);
-
-void mailsession_free(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This is a session. This is an abstraction used to access the
-          storage, using the network or the filesystem.
-        </para>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>sess_data</command> is the state of the
-              session. This is specific to the driver.
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>sess_driver</command> is the driver of the
-              session.
-            </para>
-          </listitem>
-        </itemizedlist>
-        
-        <para>
-          <command>mailsession_new()</command> will create a new session
-          using the given driver (<command>sess_driver</command>).
-        </para>
-
-        <para>
-          <command>mailsession_free()</command> will release the memory
-          used by the session.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_parameters</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_parameters(mailsession * session,
-			   int id, void * value);
-        </programlisting>
-
-        <para>
-          This function make calls specific to the driver
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_connect_stream</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_connect_stream(mailsession * session, mailstream * s);
-        </programlisting>
-        
-        <para>
-          There are drivers of two kinds : stream drivers (driver that
-          connects to servers through TCP or other means of connection)
-          and file drivers (driver that are based on filesystem)
-
-          This function can only be used by stream drivers and
-          this connects a stream to the session
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_connect_path</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_connect_path(mailsession * session, char * path);
-        </programlisting>
-        
-        <para>
-          This function can only be used by file drivers and
-          selects the main path of the session.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_starttls</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_starttls(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This switches the current connection to TLS (secure layer).
-          This will only work with stream drivers.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_login</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_login(mailsession * session,
-		      char * userid, char * password);
-        </programlisting>
-        
-        <para>
-          This notifies the login and the password to authenticate
-          to the session.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_logout</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_logout(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This function disconnects the session and closes the stream.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_noop</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_noop(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This function does no operation on the session, but it can be
-          used to poll for the status of the connection.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_check_folder</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_check_folder(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This function makes a checkpoint of the session.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_select_folder</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_select_folder(mailsession * session, char * mb);
-        </programlisting>
-        
-        <para>
-          This function selects a mailbox.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_expunge_folder</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_expunge_folder(mailsession * session);
-        </programlisting>
-        
-        <para>
-          This function deletes all messages marked for deletion.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_status_folder</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_status_folder(mailsession * session, char * mb,
-    uint32_t * result_messages, uint32_t * result_recent,
-    uint32_t * result_unseen);
-        </programlisting>
-        
-        <para>
-          This function queries the status of the folder
-          (number of messages, number of recent messages, number of
-          unseen messages).
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_messages_number</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_messages_number(mailsession * session, char * mb,
-				uint32_t * result);
-        </programlisting>
-        
-        <para>
-          This function queries the number of messages in the folder.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_recent_number</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_recent_number(mailsession * session,
-			      char * mb, uint32_t * result);
-        </programlisting>
-        
-        <para>
-          This function queries the number of recent messages in the
-          folder.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_unseen_number</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_unseen_number(mailsession * session, char * mb,
-			      uint32_t * result);
-        </programlisting>
-        
-        <para>
-          This function queries the number of unseen messages in the
-          folder.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_append_message</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_append_message(mailsession * session,
-			       char * message, size_t size);
-        </programlisting>
-        
-        <para>
-          This adds a RFC 2822 message to the current mailbox.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_get_messages_list</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_get_messages_list(mailsession * session,
-				  struct mailmessage_list ** result);
-        </programlisting>
-        
-        <para>
-          This function returns the list of messages
-          of the current mailbox.
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_get_envelopes_list</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_get_envelopes_list(mailsession * session,
-				   struct mailmessage_list * result);
-        </programlisting>
-        
-        <para>
-          This function fills the parsed fields in the
-          <command>mailmessage</command> structures
-          (see <xref linkend="mailmessage">)
-          of the mailmessage_list
-          (see <xref linkend="mailmessage-list">).
-        </para>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_get_message</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_get_message(mailsession * session,
-			    uint32_t num, mailmessage ** result);
-        </programlisting>
-
-        <para>
-          This function returns a <command>mailmessage</command>
-          (see <xref linkend="mailmessage">) structure that
-          corresponds to the given message number.
-        </para>
-        
-        <warning>
-          <para>
-            <command>mailsession_get_message_by_uid()</command> should
-            be used instead.
-          </para>
-        </warning>
-      </sect2>
-
-      <sect2>
-        <title>mailsession_get_message_by_uid</title>
-        
-        <programlisting>
-#include &lt;libetpan/libetpan.h&gt;
-
-int mailsession_get_message_by_uid(mailsession * session,
-    const char * uid, mailmessage ** result);
-        </programlisting>
-        
-        <para>
-          This function returns a mailmessage structure
-          that corresponds to the given message unique identifier.
-          This is currently implemented only for cached drivers.
-        </para>
-        <warning>
-          <para>
-            That deprecates the use of
-            <command>mailsession_get_message()</command>.
-          </para>
-        </warning>
-      </sect2>
-    </sect1>
-  </chapter>
-
-</book>

+ 0 - 654
deltachat-ios/libraries/libetpan/doc/DOCUMENTATION

@@ -1,654 +0,0 @@
-1/ Introduction
----------------
-
-libEtPan! is mainly a library that will handle all kind of mailbox access.
-For example: IMAPrev4, POP3, NNTP, mbox, MH.
-
-You have two kinds of mailbox access, either using low-level functions
-with a different interface for each kind of access or using higher-level
-functions, using a driver to wrap the higher-level API.
-
-
-2/ Low-level
-------------
-
-2.1/ IMAP4rev1 - Internet Message Access Protocol - Version 4rev1
------------------------------------------------------------------
-
-Each command of the IMAP4rev1 Standard (RFC 2060) is implemented in
-the IMAP4rev1 module. Directory imap/.
-
-2.1.1/ References
-
-- RFC 2060 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
-- draft-crispin-imapv-15.txt
-
-Not yet implemented :
-
-- draft-crispin-imapv-20.txt
-
-2.1.2/ Dependencies
-
-- tools/
-
-2.1.3/ Files descriptions
-
-description of header files :
-mailimap.[ch]              -- functions that implements each IMAP4rev1 command
-mailimap_helper.[ch]       -- helper interface for the previous functions
-mailimap_types.[ch]        -- definition of types and constructors for these
-                                types
-mailimap_types_helper.[ch] -- contains function definitions that will help
-                              to create data necessary to use IMAP4rev1 module
-mailimap_socket.[ch]       -- provides a function to connect to an
-	                        IMAP4rev1 server over TCP
-mailimap_ssl.[ch]          -- provides a function to connect to an
-                                IMAP4rev1 server over TLS layer
-
-2.1.4/ Interface
-
-Include for this module is mailimap.h and includes all other headers.
-
-
-The interface of IMAP4rev1 is documented in the following files :
-
-mailimap.h
-mailimap_types.h
-mailimap_types_helper.h
-
-
-2.2/ POP3 - Post Office Protocol - Version 3
---------------------------------------------
-
-Each command of the POP3 Standard (RFC 1939 and RFC 2449) is implemented
-in the POP3 module. Directory pop3/.
-
-2.1.1/ References
-
-- RFC 1939 - Post Office Protocol - Version 3
-- RFC 2449 - POP3 Extension Mechanism (CAPA)
-
-Not yet implemented :
-
-- RFC 1734 - POP3 AUTHentication command
-
-2.1.2/ Dependencies
-
-- tools/
-
-2.2.3/ Files descriptions
-
-mailpop3.[ch]         -- functions that implements each POP3 command
-mailpop3_helper.[ch]  -- helper interface for the previous functions
-mailpop3_socket.[ch]  -- provides a function to connect to a
-                           POP3 server over TCP
-mailpop3_ssl.[ch]     -- provides a function to connect to a
-                           POP3 server over TLS layer
-
-2.2.4/ Interface
-
-Include for this module is mailpop3.h and includes all other headers.
-
-There is not yet documentation for POP3 module.
-
-
-2.3/ NNTP - Network News Transfer Protocol
-------------------------------------------
-
-Each command of the NNTP Standard (RFC 977 and RFC 2980) is implemented
-in the NNTP module. Directory nntp/.
-
-2.3.1/ References
-
-- RFC 977 - Network News Transfer Protocol
-- RFC 2980 - Common NNTP Extensions
-
-Not yet implemented :
-
-- RFC 1036 - Standard for Interchange of USENET Messages
-- son of RFC 1036 : FTP://zoo.toronto.edu/pub/news.txt.Z
-
-2.3.2/ Dependencies
-
-- tools/
-
-2.3.3/ Files descriptions
-
-newsnntp.[ch]         -- functions that implements each NNTP command
-newsnntp_socket.[ch]  -- provides a function to connect to a
-                           NNTP server over TCP
-newsnntp_ssl.[ch]     -- provides a function to connect to a
-                           POP3 server over TLS layer
-
-2.3.4/ Interface
-
-Include for this module is newsnntp.h and includes all other headers.
-
-There is not yet documentation for NNTP module.
-
-
-2.4/ mbox
----------
-
-The mbox module provides a set of functions to manipulate mbox mailboxes.
-These functions make a safe lock on the mailbox they work with.
-This module will assign to each message a unique message identifier
-so that we can work with message numbers in mbox files without other
-programs interfer.
-Directory mbox/.
-
-2.4.1/ References
-
-- http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/content-length.html
-- http://www.qmail.org/qmail-manual-html/man5/mbox.html
-
-2.4.2/ Dependencies
-
-- tools/
-- imf/
-
-2.5.3/ Specific to libEtPan!
-
-- "X-LibEtPan-UID" header
-
-2.5.4/ Files descriptions
-
-mailmbox.[ch]       -- functions to manipulate mbox mailboxes.
-mailmbox_parse.[ch] -- this module is in charge of parsing the
-                         mbox file content
-mailmbox_types.[ch] -- definition of types and constructors for these
-                         types
-
-2.4.5/ Interface
-
-Include for this module is mailmbox.h and includes all other headers.
-
-There is not yet documentation for mbox module.
-
-
-2.5/ MH
--------
-
-The MH module provides a set of functions to manipulate MH mailboxes.
-Directory mh/.
-
-2.5.1/ References
-
-- almost none
-
-2.5.2/ Dependencies
-
-- tools/
-
-2.5.3/ Files descriptions
-
-mailmh.[ch] -- functions to manipulate MH mailboxes.
-
-
-2.5.4/ Interface
-
-Include for this module is mailmh.h.
-
-There is not yet documentation for MH module.
-
-
-2.6/ IMF - Internet Message Format
-----------------------------------
-
-The IMF module provides functions to parse data given in RFC 2822
-format (Internet Message Format).
-Directory imf/.
-
-2.6.1/ References
-
-- RFC 2822 - Internet Message Format (Not entirely implemented)
-- RFC 2076 - Common Internet Message Headers
-
-Not yet implemented :
-
-- RFC 2298 - An Extensible Message Format
-               for Message Disposition Notifications
-
-2.6.2/ Dependencies
-
-- tools/
-
-2.6.3/ Files descriptions
-
-mailimf.[ch]              -- functions to parse RFC 2822 messages.
-mailimf_types.[ch]        -- definition of types and constructors for these
-                               types
-mailimf_types_helper.[ch] -- contains function definitions that will help
-                              to create data necessary to use IMF module.
-mailimf_write.[ch]        -- functions that output RFC 2822 messages or
-	                       sub-part of the messages in a (FILE *).
-
-2.6.4/ Interface
-
-Include for this module is mailimf.h and includes all other headers.
-
-The interface of IMAP4rev1 is documented in the following files :
-
-mailimf.h
-mailimf_types.h
-mailimf_types_helper.h
-mailimf_write.h
-
-
-2.7/ MIME - Multipurpose Internet Mail Extensions
--------------------------------------------------
-
-The MIME module provides functions to parse structure of MIME messages.
-Directory mime/.
-
-2.7.1/ References
-
-- RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of
-               Internet Message Bodies.
-- RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: Message
-               Header Extensions for Non-ASCII Text. 
-- RFC 2183 - Communicating Presentation Information in Internet Messages:
-               The Content-Disposition Header Field
-
-Not implemented :
-
-- RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media
-               Types.
-
-2.7.2/ Dependencies
-
-- tools/
-- imf/
-
-2.7.3/ Files descriptions
-
-mailmime.[ch]               -- functions to parse the MIME fields (RFC 2045).
-mailmime_content.[ch]       -- functions to parse the MIME message. You get
-                                 the different parts and you can decode them.
-mailmime_decode.[ch]        -- functions to parse the MIME-encoded fields.
-mailmime_disposition.[ch]   -- functions to parse the Content-Disposition field
-                                 (RFC 2183)
-mailmime_types.[ch]         -- definition of types and constructors for these
-                                 types
-mailmime_types_helper.[ch]  -- contains function definitions that will help
-                                 to create data necessary to use MIME module.
-mailmime_write.[ch]         -- functions that output MIME messages or
-	                         sub-part of the messages in a (FILE *).
-
-2.7.4/ Interface
-
-Include for this module is mailmime.h and includes all other headers.
-
-There is not yet documentation for MIME module.
-
-
-2.8/ SMTP - Simple Mail Transfer Protocol
------------------------------------------
-
-Each command of the SMTP Standard (RFC 2821 and RFC 1891) is implemented
-in the SMTP module. Directory smtp/.
-
-2.8.1/ References
-
-- RFC 2821 - Simple Mail Transfer Protocol (Not entirely implemented)
-- RFC 1891 - SMTP Service Extension for Delivery Status Notifications
-
-2.8.2/ Depencencies
-
-- tools/
-
-2.8.3/ Files descriptions
-
-mailsmtp.[ch]         -- functions that implements each SMTP command
-mailsmtp_helper.[ch]  -- functions to get an easier use of SMTP module
-mailsmtp_socket.[ch]  -- provides a function to connect to a
-                           SMTP server over TCP
-mailsmtp_ssl.[ch]     -- provides a function to connect to a
-                           SMTP server over TLS layer
-mailsmtp_types.h      -- definition of types
-
-2.8.4/ Interface
-
-Include for this module is mailsmtp.h and includes all other headers.
-
-There is not yet documentation for MIME module.
-
-
-2.9/ Miscellaneous
-
-2.9.1/ References
-
-- RFC 2234 - Augmented BNF for Syntax Specifications: ABNF
-- RFC 2595 - Using TLS with IMAP, POP3 and ACAP
-
-2.9.2/ Tools
-
-tools/ directory contains some tools functions and useful data structures.
-
-alloc.h                 -- a wrapper on malloc()
-carray.[ch]             -- an array, that grows automatically when elements
-                             are added.
-charconv.[ch]           -- character set converter. For example, it will
-                             translate an iso-8859-1 string to an utf-8 string.
-chash.[ch]              -- a hash table which keys can be anything
-cinthash.[ch]           -- a hash table which keys are integers
-                             (should be removed and replaced with chash)
-clist.[ch]              -- a double-linked list
-connect.[ch]            -- easy interface to connect a TCP server
-hmac_md5.h
-md5.[ch]
-md5global.h             -- MD5 calculation
-mail.h                  -- some constants
-maildb_helper.[ch]      -- wrappers to DB 2.x 3.x or 4.x
-maillock.[ch]           -- safely lock a given file
-mailstream.[ch]         -- stream interface - buffered reading and writing
-                             on files/socket/SSL connection
-mailstream_helper.[ch]  -- useful functions for stream
-                             (for example: read a line)
-mailstream_low.[ch]     -- driver interface for a stream
-mailstream_socket.[ch]  -- stream driver for file descriptors (includes socket)
-mailstream_ssl.[ch]     -- stream driver for SSL connection
-mailstream_types.h      -- data structure definition
-mapping.[ch]            -- map parts of files in memory (no more used)
-mmapstring.[ch]         -- a string, that grows automatically when data
-                             are added.
-
-
-3/ Higher-level
----------------
-
-The higher level will allow us to query folder informations or to get
-messages information or content.
-
-There is four kinds of identities :
-- storage
-- folders
-- session
-- messages
-
-In the higher-level interface, you manipulate data types from IMF and
-MIME module, plus additionnal data types of higher-level.
-
-
-3.1/ Objects
-------------
-
-3.1.1/ Storage
-
-A storage (struct mail_storage) represents whether a server or
-a main path, It can be an IMAP server, the root path of a MH or a mbox file.
-
-
-3.1.2/ Folders
-
-A folder can be created from a storage.
-Folders (struct mail_folder) are the mailboxes we can choose in the
-server or as sub-folder of the main path.
-
-Folders for IMAP are the IMAP mailboxes, for MH this is one of the
-folder of the MH storage, for mbox, there is only one folder, the
-mbox file content;
-
-
-3.1.3/ Session
-
-Storage and folders communicate with the lower-layer through the
-mail session data structure.
-
-A mail session (struct mailsession) is a mail access to a server
-or a mail access in the local file system. It allow us to send commands
-to the mail access.
-
-A mail storage is using a mail session to communicate.
-A folder folder also uses a mail session to get information or to send
-information. It can be the same session or not, depdending of the
-implementation.
-
-
-3.1.4/ Messages
-
-From a session, we can get a message (struct mailmessage) to read.
-
-
-3.2/ Drivers
-------------
-
-For a mail access, three drivers exist.
-One for storage, one for session, one for message.
-Note that the folder access rely only on session driver.
-
-
-3.2.1/ storage driver interface
-
-  mail_storage_driver is the driver structure for mail storage
-
-  - name is the name of the driver
-  
-  - connect() connects the storage to the remote access or to
-      the path in the local filesystem.
-      
-  - get_folder() can have two kinds of behaviour.
-      Either it creates a new session and independant from the session
-      used by the storage and select the given mailbox or
-      it selects the given mailbox in the current session.
-      It depends on the efficiency of the mail driver.
-
-  - free_data() frees the data created with mail_storage constructor.
-
-  a constructor for each kind of access has to be implemented.
-  
-
-3.2.2/ session driver interface
-
-  maildriver is the driver structure for mail sessions
-
-  - name is the name of the driver
-  
-  - initialize() is the function that will initializes a data structure
-      specific to the driver, it returns a value that will be stored
-      in the field data of the session.
-      The field data of the session is the state of the session,
-      the internal data structure used by the driver.
-      It is called when creating the mailsession structure with
-      mailsession_new().
-  
-  - uninitialize() frees the structure created with initialize()
-
-  - parameters() implements functions specific to the given mail access
-  
-  - connect_stream() connects a stream to the session
-
-  - connect_path() notify a main path to the session
-
-  - starttls() changes the current stream to a TLS stream
-  
-  - login() notifies the user and the password to authenticate to the
-      session
-
-  - logout() exits the session and closes the stream
-
-  - noop() does no operation on the session, but it can be
-      used to poll for the status of the connection.
-
-  - check_folder() makes a checkpoint of the session
-
-  - select_folder() selects a mailbox
-
-  - expunge_folder() deletes all messages marked \Deleted
-
-  - status_folder() queries the status of the folder
-      (number of messages, number of recent messages, number of
-      unseen messages)
-
-  - append_message() adds a RFC 2822 message to the current
-      given mailbox
-
-  - get_messages_list() returns the list of message numbers
-      of the current mailbox.
-
-  - get_envelopes_list() fills the parsed fields in the
-      mailmessage structures of the mail_envelopes_list.
-
-  - remove_message() removes the given message from the mailbox.
-      The message is permanently deleted.
-
-  - get_message returns a mailmessage structure that corresponds
-      to the given message number.
-
-
-3.2.3/ message driver interface
-
-  mailmessage_driver is the driver structure to get information from messages.
-  
-  - name is the name of the driver
-
-  - initialize() is the function that will initializes a data structure
-      specific to the driver, it returns a value that will be stored
-      in the field data of the mailsession.
-      The field data of the session is the state of the session,
-      the internal data structure used by the driver.
-      It is called when initializing the mailmessage structure with
-      mailmessage_init().
-  
-  - uninitialize() frees the structure created with initialize().
-      It will be called by mailmessage_free().
-
-  - flush() will free from memory all temporary structures of the message
-      (for example, the MIME structure of the message).
-
-  - fetch_result_free() will free all strings resulted by fetch() or
-      any fetch_xxx() functions that returns a string.
-
-  - fetch() returns the content of the message (headers and text).
-
-  - fetch_header() returns the content of the headers.
-
-  - fetch_body() returns the message text (message content without headers)
-
-  - fetch_size() returns the size of the message content.
-
-  - get_bodystructure() returns the MIME structure of the message.
-
-  - fetch_section() returns the content of a given MIME part
-
-  - fetch_section_header() returns the header of the message
-      contained by the given MIME part.
-
-  - fetch_section_mime() returns the MIME headers of the
-      given MIME part.
-
-  - fetch_section_body() returns the text (if this is a message, this is the
-      message content without headers) of the given MIME part.
-
-  - fetch_envelope() returns a mailimf_fields structure, with a list of
-      fields chosen by the driver.
-
-  - get_flags() returns a the flags related to the message.
-      When you want to get flags of a message, you have to make sure to
-      call get_flags() at least once before using directly message->flags.
-
-
-3.3/ Higher level interface
----------------------------
-
-3.3.1/ Files descriptions
-
-generic_cache.[ch]              -- functions that implements cache and
-                                     flags storing mechanism
-imapdriver.[ch]                 -- IMAP driver for session
-imapdriver_cached.[ch]          -- IMAP driver for session, using cache,
-                                     IMAP already has flags.
-imapdriver_cached_message.[ch]  -- IMAP driver for message, using cache
-                                     IMAP already has flags.
-imapdriver_message.[ch]         -- IMAP driver for message
-imapdriver_types.[ch]           -- tools function for IMAP driver (types
-                                     conversion from IMAP module).
-imapstorage.[ch]                -- IMAP driver for storage
-imfcache.[ch]                   -- implements cache for parsed fields
-libetpan.h                      -- includes all necessary header files to
-                                     use libEtPan!
-maildriver.[ch]                 -- wrappers to calls to the session driver
-maildriver_tools.[ch]           -- default implementation for drivers,
-                                     when the driver does not parse the
-                                     messages.
-maildriver_types.[ch]           -- data types declaration and constructors
-maildriver_types_helper.[ch]    -- easy data creation
-mailmessage.[ch]                -- wrappers to calls to the message driver
-mailstorage.[ch]                -- storage creation, calls to the storage
-                                     driver and implementation of folders.
-mailstorage_tools.[ch]          -- tools for storage (connection)
-mailthread.[ch]                 -- threading: collection of the mails
-                                     into a treee
-mboxdriver.[ch]                 -- mbox driver for session
-mboxdriver_cached.[ch]          -- mbox driver for session, using flags
-                                     and cache
-mboxdriver_cached_message.[ch]  -- mbox driver for message, using flags
-                                     and cache
-mboxdriver_message.[ch]         -- mbox driver for message
-mboxdriver_tools.[ch]           -- mbox driver common functions
-mboxstorage.[ch]                -- mbox driver for storage
-mhdriver.[ch]                   -- MH driver for session
-mhdriver_cached.[ch]            -- MH driver for session, using flags
-                                     and cache
-mhdriver_cached_message.[ch]    -- MH driver for message, using flags
-                                     and cache.
-mhdriver_message.[ch]           -- MH driver for message
-mhdriver_tools.[ch]             -- MH driver common functions
-mhstorage.[ch]                  -- MH driver for storage
-nntpdriver.[ch]                 -- NNTP driver for session
-nntpdriver_cached.[ch]          -- NNTP driver for session, using flags
-                                     and cache
-nntpdriver_cached_message.[ch]  -- NNTP driver for message, using flags
-                                     and cache
-nntpdriver_message.[ch]         -- NNTP driver for message
-nntpdriver_tools.[ch]           -- NNTP driver common functions
-nntpstorage.[ch]                -- NNTP driver for storage
-pop3driver.[ch]                 -- POP3 driver for session
-pop3driver_cached.[ch]          -- POP3 driver for session, using flags
-                                     and cache
-pop3driver_cached_message.[ch]  -- POP3 driver for message, using flags
-                                     and cache
-pop3driver_message.[ch]         -- POP3 driver for message
-pop3driver_tools.[ch]           -- POP3 driver common functions
-pop3storage.[ch]                -- POP3 driver for storage
-
-
-3.3.2/ Interfaces
-
-Include for this module is libetpan.h and includes all other headers.
-
-
-The interface of higher layer is documented in the following files :
-
-maildriver.h
-maildriver_types.h
-maildriver_types_helper.h
-mailmessage.h
-mailstorage.h
-mailstorage_types.[h]
-mailthread.h
-
-
-4/ Architecture
----------------
-
-(see layer.fig)
-
-
-5/ Example of use
------------------
-
-You can find some example in tests/
-
-
-6/ Constraints
---------------
-
-- libEtPan! must run on a system where mmap() is available.
-
-- for mbox particularly, libEtPan! make assumption on the fact that a
-    file can be entirely mapped into memory. But if you don't read
-	mailboxes of 1 Go, it should be fine.
-
-
-	

+ 0 - 58
deltachat-ios/libraries/libetpan/doc/Makefile.am

@@ -1,58 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-EXTRA_DIST = API.sgml depend.dot DOCUMENTATION layer.fig README.sgml
-
-# DSL = /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl
-DSL = /usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
-JADE = jade
-HTML_RENDER = lynx -force_html -nolist -dump
-
-# FIXME: This needs more work.  CLEANFILES/DISTCLEANFILES need to be
-# defined.  Maybe some documentation should be maintainer-generated
-# and distributed.  The rules below could be more fine-grained.
-
-SRC = API README
-
-doc:
-	@for i in $(SRC); do \
-		echo $$i - building html; \
-		$(JADE) -t sgml -V nochunks -d $(DSL) $$i.sgml > $$i.html; \
-		\
-		echo $$i - building txt; \
-		$(HTML_RENDER) $$i.html > $$i.txt; \
-		\
-		echo $$i - building multipage HTML; \
-		mkdir -p $$i; \
-		cd $$i; \
-		$(JADE) -t sgml -d $(DSL) ../$$i.sgml; \
-		cd ..; \
-	done

+ 0 - 388
deltachat-ios/libraries/libetpan/doc/README.sgml

@@ -1,388 +0,0 @@
-<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
-
-<book id="libetpan-readme">
-  <bookinfo>
-    <date>2003-12-03</date>
-    <title>libEtPan!</title>
-    <authorgroup>
-      <author>
-        <firstname>Viet Hoa</firstname>
-        <surname>DINH</surname>
-      </author>
-    </authorgroup>
-    <copyright>
-      <year>2003</year>
-      <holder>DINH Viet Hoa</holder>
-    </copyright>
-  </bookinfo>
-  <toc></toc>
-  
-  <chapter id="introduction">
-    <title>Introduction</title>
-    
-    <!-- description -->
-    <sect1 id="description">
-      <title>Description</title>
-      <para>
-        The purpose of this mail library is to provide a portable,
-        efficient middleware for different kinds of mail access
-        (IMAPrev4, POP3, NNTP, mbox, MH, Maildir).
-      </para>
-      
-      <para>
-        You have two kinds of mailbox access, either using low-level
-        functions with a different interface for each kind of access
-        or using higher-level functions, using a driver to wrap the
-        higher-level API. The API will be the same for each kind of
-        mail access using the higher-level API.
-      </para>
-    </sect1>
-    
-    <!-- authors -->
-    <sect1 id="author">
-      <title>Author</title>
-      <sect2 id="main-auth">
-        <title>Main author</title>
-        <para>
-          DINH Viet Hoa <email>hoa@users.sourceforge.net</email>
-        </para>
-      </sect2>
-      <sect2 id="contrib">
-        <title>Contributors</title>
-        <para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                Wim Delvaux <!-- wim.delvaux.adaptiveplanet.com -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                Melvin Hadasht <!-- melvin.hadasht@free.fr -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                David Woodhouse <!-- dwmw2@infradead.org -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                Juergen Graf <!-- libetpan@codeguy.org -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                Zsolt VARGA <!-- redax@redax.hu -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                Gael Roualland <!-- gael.roualland@dial.oleane.com -->
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                Toni Willberg <!-- toniw@iki.fi -->
-              </para>
-            </listitem>
-			<listitem>
-			  <para>
-			    Rajko Albrecht <!-- ral@alwins-world.de -->
-			  </para>
-			</listitem>
-			<listitem>
-			  <para>
-			    Nikita V. Youshchenko <!-- yoush@cs.msu.su -->
-			  </para>
-			</listitem>
-			<listitem>
-			  <para>
-			    Frederic Devernay <!-- Frederic.Devernay@inrialpes.fr -->
-			  </para>
-			</listitem>
-			<listitem>
-			  <para>
-			    Michael Leupold <!-- leupold@leunet.de -->
-			  </para>
-			</listitem>
-			<listitem>
-			  <para>
-			    Colin Leroy <!-- colin@colino.net -->
-			  </para>
-			</listitem>
-          </itemizedlist>
-        </para>
-      </sect2>
-    </sect1>
-  </chapter>
-  
-  <!-- installation -->
-  <chapter id="installation">
-    <title>Installation</title>
-    
-    <sect1 id="dependencies">
-      <title>Dependencies</title>
-      
-      <!-- dependencies for users -->
-      <sect2 id="depend-users">
-        <title>Dependencies for users</title>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <ulink url="http://www.openssl.org">OpenSSL</ulink>
-              (optional but recommended)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <ulink url="http://www.sleepycat.com">Berkeley
-              DB</ulink> (optional but recommended)
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              POSIX Thread (required)
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      <!-- dependencies for developers -->
-      <sect2 id="depend-developers">
-        <title>Dependencies for developers</title>
-        
-        <itemizedlist>
-          <listitem>
-            <para>
-              <ulink url="http://www.gnu.org/software/autoconf">
-                autoconf
-              </ulink>
-              2.13
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <ulink url="http://www.gnu.org/software/automake">
-                automake
-              </ulink>
-              1.4
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <ulink
-                url="http://www.gnu.org/software/libtool/libtool.html">
-                libtool
-              </ulink>
-              1.4.3
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              jade and some SGML tools will be required
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-    </sect1>
-    <!-- packages -->
-    <sect1 id="packages">
-      <title>Existing packages</title>
-
-      <para>
-        Before you try to compile it, you have to know that packages 
-        exist for some systems.
-      </para>
-      
-      <!-- FreeBSD -->
-      <sect2 id="package-freebsd">
-        <title>FreeBSD</title>
-        <para>
-          you can find it in ports/mail/libetpan.
-        </para>
-      </sect2>
-
-	  <!-- Debian -->
-	  <sect2 id="package-debian">
-	    <title>Debian</title>
-		<para>
-		  This is in the package collection.
-		</para>
-      </sect2>
-	  
-      <!-- Mandrake -->
-      <sect2 id="package-mandrake">
-        <title>Mandrake Linux</title>
-        <para>
-          This is in the package collection.
-        </para>
-      </sect2>
-    </sect1>
-    
-    <!-- compilation -->
-    <sect1 id="compilation">
-      <title>Compilation</title>
-      
-      <para>
-        Generic installation instructions are in the
-        <filename>INSTALL</filename> file
-        You can pass the following extra options to configure :
-      </para>
-
-      <!-- FreeBSD -->
-      <sect2 id="compile-freebsd">
-        <title>FreeBSD</title>
-        <itemizedlist>
-          <listitem>
-            <para>
-              make sure libiconv is installed from the ports collection (see
-              <command>pkg_info</command>).
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              issue configure with the following parameter:
-              <screen>
-<prompt>$</prompt> <userinput>./configure --with-libiconv-prefix=/usr/local</userinput>
-              </screen>
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <!-- MacOS X -->
-      <sect2 id="compile-macosx">
-        <title>Mac OS X</title>
-        <itemizedlist>
-          <listitem>
-            <para>
-              in tests/option-parser.c, change the inclusion
-              of <filename>getopt.h</filename> to
-              <filename>gnugetopt/getopt.h</filename>
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              in <filename>tests/Makefile</filename>, add
-              <command>-I/sw/include</command> for the
-              <command>CFLAGS</command> and
-                -L/sw/lib -lgnugetopt for the LDFLAGS.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <!-- Linux -->
-      <sect2 id="linux">
-        <title>Linux</title>
-        <itemizedlist>
-          <listitem>
-            <warning>
-              <para>
-                Since libEtPan! is making high usage of
-                <command>mmap()</command> even for
-                writing, when your mailboxes are on
-                <command>NFS</command> filesystem with
-                a Linux server, it is advised to use option
-                <command>no_subtree_check</command> in
-                <filename>/etc/exports</filename>.
-                This should avoid corruption of data.
-              </para>
-              <para>
-                The problem exist in Linux 2.4.22 and earlier versions.
-              </para>
-            </warning>
-          </listitem>
-          <listitem>
-            <para>
-              On RedHat systems, you have to configure using the
-              following command line :
-              <command>./configure --with-openssl=/usr/kerberos</command>
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              On Debian systems, if the <command>./autogen</command>
-              script fails on missing <command>AM_ICONV</command>, you
-              have to install <command>gettext</command> package.
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      
-      <!-- configure -->
-      <sect2 id="configure">
-        <title>configure</title>
-        <para>
-          You can use the following options :
-        </para>
-        <itemizedlist>
-          <listitem>
-            <para>
-              <command>--enable-debug</command>    Compiles with
-              debugging turned on
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>--enable-optim</command>    Turns on some
-              optimizations flags for gcc
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <command>--without-openssl</command> Disables OpenSSL (do
-              not look for it)
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-      <sect2 id="install">
-        <title>Compile and install</title>
-        <para>
-          Download the package and do the following :
-        </para>
-        <programlisting>
-$ tar xzvf libetpan-XX.XX.tar.gz      # to decompress the package
-
-$ cd libetpan-XX.XX
-
-$ ./configure --help                 # to get options of configure
-
-$ ./configure                        # you can specify your own options
-
-$ make                               # to compile the package
-
-$ su
-
-# make install
-
-# logout
-        </programlisting>
-      </sect2>
-    </sect1>
-  </chapter>
-
-  <chapter id="use">
-    <title>Use of libEtPan!</title>
-    
-    <sect1 id="hotmail">
-      <title>How to open an Hotmail mailbox</title>
-      <para>
-        If you wish to access hotmail using libEtPan!, you can, by
-        using <ulink url="http://hotwayd.sf.net">hotwayd</ulink>.
-        Then, create a POP3 storage with the given parameters :
-        command as clear text for connection type
-        (<command>CONNECTION_TYPE_COMMAND</command>),
-        <command>"/usr/bin/hotwayd"</command>
-        as command, plain text authentication
-        (<command>ePOP3_AUTH_TYPE_PLAIN</command>),
-        full hotmail address as login
-        (<command>foobar@hotmail.com</command> or
-        <command>foobar@hotmail.com/mailbox_name</command> if you want
-        to access a specific mailbox) and give your password.
-      </para>
-    </sect1>
-  </chapter>
-</book>

+ 0 - 54
deltachat-ios/libraries/libetpan/doc/depend.dot

@@ -1,54 +0,0 @@
-digraph "etPan! library" {
-	mime -> imf;
-	
-	"session/message" -> imf;
-	"session/message" -> mime;
-	
-	"storage/folder" -> "session/message";
-}
-
-digraph "imap driver" {
-	"imap driver" -> imap;
-	"imap driver" -> imf;
-	"imap driver" -> mime;
-	"imap driver" -> "session/message";
-
-	mime -> imf;
-}
-
-digraph "mbox driver" {
-	"mbox driver" -> mbox;
-	"mbox driver" -> imf;
-	"mbox driver" -> mime;
-	"mbox driver" -> "session/message";
-	"mbox" -> imf;
-
-	mime -> imf;
-}
-
-digraph "mh driver" {
-	"mh driver" -> mh;
-	"mh driver" -> imf;
-	"mh driver" -> mime;
-	"mh driver" -> "session/message";
-
-	mime -> imf;
-}
-
-digraph "pop3 driver" {
-	"pop3 driver" -> pop3;
-	"pop3 driver" -> imf;
-	"pop3 driver" -> mime;
-	"pop3 driver" -> "session/message";
-
-	mime -> imf;
-}
-
-digraph "nntp driver" {
-	"nntp driver" -> nntp;
-	"nntp driver" -> imf;
-	"nntp driver" -> mime;
-	"nntp driver" -> "session/message";
-
-	mime -> imf;
-}

+ 0 - 39
deltachat-ios/libraries/libetpan/doc/layer.fig

@@ -1,39 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Metric
-A4      
-100.00
-Single
--2
-1200 2
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 900 3150 12150 3150 12150 3825 900 3825 900 3150
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
-	 900 3825 12150 3825 12150 4500 900 4500 900 3825
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2
-	 3150 3150 3150 3825
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2
-	 5400 3150 5400 3825
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2
-	 7650 3150 7650 3825
-2 1 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 2
-	 9900 3150 9900 3825
-2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 7
-	 12150 3150 900 3150 900 2475 12825 2475 12825 4500 12150 4500
-	 12150 3150
-2 3 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 7
-	 900 2475 900 1800 13500 1800 13500 4500 12825 4500 12825 2475
-	 900 2475
-2 3 0 1 0 7 50 0 -1 4.000 0 0 -1 0 0 8
-	 900 4500 225 4500 225 1125 13500 1125 13500 1800 900 1800
-	 900 4500 900 4500
-4 0 0 50 0 16 20 0.0000 4 210 1410 1305 3600 IMAP4rev1\001
-4 0 0 50 0 16 20 0.0000 4 210 450 10800 3600 MH\001
-4 0 0 50 0 16 20 0.0000 4 210 720 8370 3555 mbox\001
-4 0 0 50 0 16 20 0.0000 4 210 795 6120 3600 NNTP\001
-4 0 0 50 0 16 20 0.0000 4 210 765 3870 3600 POP3\001
-4 0 0 50 0 16 20 0.0000 4 270 1620 5670 2880 session layer\001
-4 0 0 50 0 16 20 0.0000 4 270 2730 5085 2250 storage / folders layer\001
-4 0 0 50 0 16 20 0.0000 4 210 1500 5760 4275 IMF / MIME\001
-4 0 0 50 0 16 20 0.0000 4 270 1395 5670 1575 application\001

+ 0 - 34
deltachat-ios/libraries/libetpan/include/Makefile.am

@@ -1,34 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-# The links are deleted with the target "clean".
-clean-local:
-	rm -fR libetpan

+ 0 - 43
deltachat-ios/libraries/libetpan/libetpan-config.h.in

@@ -1,43 +0,0 @@
-@ifndef LIBETPAN_CONFIG_H
-
-@define LIBETPAN_CONFIG_H
-
-#ifndef CONFIG_H
-#define CONFIG_H
-#include "config.h"
-#endif
-@if WIN32
-@	define MMAP_UNAVAILABLE
-@endif
-@ifdef _MSC_VER
-@	define inline __inline
-@endif
-#ifdef HAVE_LIMITS_H
-@include <limits.h>
-#endif
-@ifndef PATH_MAX
-@define PATH_MAX 4096
-@endif
-#ifdef HAVE_SYS_PARAM_H
-/* support for ARM platforms with a 2.95.3 arm-gcc suite */
-@include <sys/param.h>
-#endif
-#if HAVE_INTTYPES_H
-@include <inttypes.h>
-#endif
-
-@define MAIL_DIR_SEPARATOR '/'
-
-@define MAIL_DIR_SEPARATOR_S "/"
-
-@ifdef _MSC_VER
-@    ifdef LIBETPAN_DLL
-@       define LIBETPAN_EXPORT __declspec(dllexport)
-@   else
-@        define LIBETPAN_EXPORT __declspec(dllimport)
-@   endif
-@else
-@   define LIBETPAN_EXPORT
-@endif
-
-@endif

+ 0 - 60
deltachat-ios/libraries/libetpan/libetpan-config.in

@@ -1,60 +0,0 @@
-#!/bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-exec_prefix_set=no
-
-usage="\
-Usage: libetpan-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
-
-if test $# -eq 0; then
-      echo "${usage}" 1>&2
-      exit 1
-fi
-
-while test $# -gt 0; do
-  case "$1" in
-  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  case $1 in
-    --prefix=*)
-      prefix=$optarg
-      if test $exec_prefix_set = no ; then
-        exec_prefix=$optarg
-      fi
-      ;;
-    --prefix)
-      echo $prefix
-      ;;
-    --exec-prefix=*)
-      exec_prefix=$optarg
-      exec_prefix_set=yes
-      ;;
-    --exec-prefix)
-      echo $exec_prefix
-      ;;
-    --version)
-      echo @VERSION@
-      ;;
-    --cflags)
-      if test "@includedir@" = "/usr/include" ; then
-          includedir=""
-      else
-	  includedir=-I@includedir@
-      fi
-      echo $includedir
-      ;;
-    --libs)
-      libdir=-L@libdir@
-      echo $libdir -letpan@LIBSUFFIX@ @LDFLAGS@ @SSLLIBS@ @GNUTLSLIB@ @LIBICONV@ @DBLIB@ @LIBS@ @SASLLIBS@
-      ;;
-    *)
-      echo "${usage}" 1>&2
-      exit 1
-      ;;
-  esac
-  shift
-done
-

+ 0 - 1
deltachat-ios/libraries/libetpan/m4/README

@@ -1 +0,0 @@
-This folder must exist so that a README file is here.

+ 0 - 157
deltachat-ios/libraries/libetpan/rules.mk

@@ -1,157 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-
-
-# Description of the build system
-# ===============================
-
-# The build system uses automake and autoconf mostly in the usual way.
-# A typical work flow for working with the SVN version would be:
-
-# $ autoreconf
-# $ ./configure --enable-maintainer-mode
-# $ make
-
-# All Makefile.am files must contain:
-
-# include $(top_srcdir)/rules.mk
-
-# If BUILT_SOURCES are desired, they need to be defined *after* the
-# above include by a += directive, for example:
-
-# BUILT_SOURCES += foo.h
-
-# This is because rules.mk defines BUILT_SOURCES for its own purposes.
-
-
-# Header Link Farm
-# ================
-
-# The public header files of libetpan are scattered throughout the
-# source tree and defined by libetpaninclude_HEADERS automake variables.
-# (The corresponding libetpanincludedir is defined in rules.mk).  Before
-# building anything else in the project, we prepare a header link farm
-# in include/libetpan (this directory will be created).  The header link
-# farm is generated automatically when any Makefile (or other
-# configure-generated file) is modified, for example by editing
-# Makefile.am in maintainer mode.  This ensures that all modifications
-# to libetpaninclude_HEADERS variables are picked up properly.
-
-# The header link farm is built using the BUILT_SOURCES mechanism of
-# automake, which means that it will only be built by "make all", "make
-# check" and "make install".  This means that eithr of these commands
-# needs to be used before targeting individual project files works.  If
-# the header link farm should be generated or updated manually, the
-# following command can be used in the *top-level build directory*:
-
-# $ rm stamp-prepare; make stamp-prepare
-
-
-
-# Public header files are defined by libetpaninclude_HEADERS variables.
-etpanincludedir = $(includedir)/libetpan
-
-# We add a recursive target "prepare" which creates the desired links
-# in include/libetpan from libetpan include files scattered throughout
-# the source.  See also README.rules.
-
-# We hook into the BUILT_SOURCES mechanism of automake, see Section
-# "Built sources" in the automake manual for details.
-BUILT_SOURCES = $(top_builddir)/stamp-prepare
-
-# The stamp file depends on all files generated by configure.  This
-# naturally includes all Makefiles which define
-# libetpaninclude_HEADERS variables for public header files, which are
-# the files we want.  There are some more files in this list, but we
-# don't mind regenerating the header link farm a bit more often than
-# necessary.  Usually you won't notice a difference as
-# configure-generated files are updated very rarely.
-$(top_builddir)/stamp-prepare: $(cfg_files)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) stamp-prepare-target
-	touch $(top_builddir)/stamp-prepare
-
-# This target should only be invoked in the top level directory (ie
-# indirectly through $(top_builddir)/stamp-prepare).  It is
-# responsible for updating the header link farm.  First, the header
-# link farm is deleted by invoking the clean target in the include
-# directory.  Then the header link farm is (re-)generated by
-# exploiting the recursive targets mechanism provided by automake.
-# Note that this is exploiting automake internals (automake currently
-# provides no official hooks for recursive targets).
-stamp-prepare-target: $(cfg_files)
-	cd include && $(MAKE) $(AM_MAKEFLAGS) clean
-	$(MAKE) $(AM_MAKEFLAGS) RECURSIVE_TARGETS=prepare-recursive prepare
-	touch stamp-prepare
-
-# Leaf directories (without SUBDIRS) do not have a target
-# $(RECURSIVE_TARGETS), so we need to terminate prepare-recursive for
-# them here.
-prepare-recursive:
-
-# The standard prepare target first recurses, and then calls the
-# individual rules.
-prepare: prepare-recursive prepare-am
-
-# The local prepare rules are first rules internal to this file
-# rules.mk, and second rules local to a single Makefile.am file.  The
-# internal rules here create symbolic links for each installed public
-# header file of libetpan under $(top_builddir)/include/libetpan/.
-prepare-am: prepare-local
-	@if test "$(etpaninclude_HEADERS)" != ""; then \
-          echo "$(mkinstalldirs) $(top_builddir)/include/libetpan/"; \
-          $(mkinstalldirs) $(top_builddir)/include/libetpan/;\
-	  echo "cd $(top_builddir)/include/libetpan/"; \
-	  cd $(top_builddir)/include/libetpan/ \
-	  && for hdr in $(etpaninclude_HEADERS) list_end; do \
-           if test $${hdr} != list_end; then \
-	         if test -e ../../$(subdir)/$${hdr}; then \
-	           echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \
-	           $(LN_S) -f ../../$(subdir)/$${hdr} .; \
-             else \
-	           echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \
-	           $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \
-             fi; \
-           fi; \
-	     done; \
-	fi
-
-# Use this target to extend the prepare rules in a single Makefile.am.
-prepare-local:
-
-
-#  Copyright 2007 g10 Code GmbH
-
-#  This file is free software; as a special exception the author gives
-#  unlimited permission to copy and/or distribute it, with or without
-#  modifications, as long as this notice is preserved.
-
-#  This file 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.

+ 0 - 85
deltachat-ios/libraries/libetpan/src/Makefile.am

@@ -1,85 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-EXTRA_DIST = versioninfo.rc.in
-
-if HAVE_MINGW32_SYSTEM
-
-LTRCCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(RC) \
-     `echo $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) | \
-     sed -e 's/-I/--include-dir /g;s/-D/--define /g'`
-
-SUFFIXES: .rc .lo
-
-.rc.lo:
-	$(LTRCCOMPILE) -i $< -o $@
-
-libetpan_res = versioninfo.lo
-no_undefined = -no-undefined
-
-libetpan_deps = $(libetpan_res)
-
-else
-
-libetpan_res =
-libetpan_res_ldflag =
-no_undefined =
-
-libetpan_deps =
-endif
-
-
-if HAVE_MINGW32_SYSTEM
-  arch_sources = dummy.cpp
-  arch_dir = windows
-  arch_lib = windows/libarch.la
-else
-  arch_sources =
-  arch_dir =
-  arch_lib =
-endif
-
-SUBDIRS = bsd $(arch_dir) data-types low-level driver main engine
-
-
-lib_LTLIBRARIES = libetpan@LIBSUFFIX@.la
-libetpan@LIBSUFFIX@_la_LDFLAGS = $(no_undefined) -version-info @API_VERSION@
-libetpan@LIBSUFFIX@_la_SOURCES = $(arch_sources)
-libetpan@LIBSUFFIX@_la_LIBADD = \
-	$(libetpan_res) \
-	data-types/libdata-types.la \
-	low-level/liblow-level.la \
-	driver/libdriver.la \
-	main/libmain.la \
-	engine/libengine.la \
-        $(arch_lib) \
-	@LIBS@ @SSLLIBS@ @LIBICONV@ @DBLIB@ @GNUTLSLIB@ @SASLLIBS@
-

+ 0 - 34
deltachat-ios/libraries/libetpan/src/bsd/Makefile.am

@@ -1,34 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-# Used by some tests if _MSC_VER, and is referenced in the VC project
-# files.
-EXTRA_DIST = getopt.c getopt.h getopt_long.c

+ 0 - 149
deltachat-ios/libraries/libetpan/src/bsd/getopt.c

@@ -1,149 +0,0 @@
-/*	$NetBSD: getopt.c,v 1.26 2003/08/07 16:43:40 agc Exp $	*/
-
-/*
- * Copyright (c) 1987, 1993, 1994
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/* 
-	Modified by Sebastien Marinier for windows OS
-*/
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getopt.c	8.3 (Berkeley) 4/27/95";
-#endif /* LIBC_SCCS and not lint */
-
-#ifdef _MSC_VER
-#	define  _getprogname() nargv[0]
-#else
-#	include <sys/cdefs.h>
-__FBSDID("$FreeBSD: /repoman/r/ncvs/src/lib/libc/stdlib/getopt.c,v 1.7 2004/03/06 17:05:45 ache Exp $");
-
-#include "namespace.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "un-namespace.h"
-
-#include "libc_private.h"
-#endif
-
-
-
-int	opterr = 1,		/* if error message should be printed */
-	optind = 1,		/* index into parent argv vector */
-	optopt,			/* character checked for validity */
-	optreset;		/* reset getopt */
-char	*optarg;		/* argument associated with option */
-
-#define	BADCH	(int)'?'
-#define	BADARG	(int)':'
-#define	EMSG	""
-
-/*
- * getopt --
- *	Parse argc/argv argument vector.
- */
-int
-getopt(nargc, nargv, ostr)
-	int nargc;
-	char * const nargv[];
-	const char *ostr;
-{
-	static char *place = EMSG;		/* option letter processing */
-	char *oli;				/* option letter list index */
-
-	if (optreset || *place == 0) {		/* update scanning pointer */
-		optreset = 0;
-		place = nargv[optind];
-		if (optind >= nargc || *place++ != '-') {
-			/* Argument is absent or is not an option */
-			place = EMSG;
-			return (-1);
-		}
-		optopt = *place++;
-		if (optopt == '-' && *place == 0) {
-			/* "--" => end of options */
-			++optind;
-			place = EMSG;
-			return (-1);
-		}
-		if (optopt == 0) {
-			/* Solitary '-', treat as a '-' option
-			   if the program (eg su) is looking for it. */
-			place = EMSG;
-			if (strchr(ostr, '-') == NULL)
-				return (-1);
-			optopt = '-';
-		}
-	} else
-		optopt = *place++;
-
-	/* See if option letter is one the caller wanted... */
-	if (optopt == ':' || (oli = strchr(ostr, optopt)) == NULL) {
-		if (*place == 0)
-			++optind;
-		if (opterr && *ostr != ':')
-			(void)fprintf(stderr,
-			    "%s: illegal option -- %c\n", _getprogname(),
-			    optopt);
-		return (BADCH);
-	}
-
-	/* Does this option need an argument? */
-	if (oli[1] != ':') {
-		/* don't need argument */
-		optarg = NULL;
-		if (*place == 0)
-			++optind;
-	} else {
-		/* Option-argument is either the rest of this argument or the
-		   entire next argument. */
-		if (*place)
-			optarg = place;
-		else if (nargc > ++optind)
-			optarg = nargv[optind];
-		else {
-			/* option-argument absent */
-			place = EMSG;
-			if (*ostr == ':')
-				return (BADARG);
-			if (opterr)
-				(void)fprintf(stderr,
-				    "%s: option requires an argument -- %c\n",
-				    _getprogname(), optopt);
-			return (BADCH);
-		}
-		place = EMSG;
-		++optind;
-	}
-	return (optopt);			/* return option letter */
-}

+ 0 - 93
deltachat-ios/libraries/libetpan/src/bsd/getopt.h

@@ -1,93 +0,0 @@
-/*	$NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $	*/
-/*	$FreeBSD: /repoman/r/ncvs/src/include/getopt.h,v 1.6 2004/02/24 08:09:20 ache Exp $ */
-
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Dieter Baron and Thomas Klausner.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/* 
-	Modified by Sebastien Marinier for windows OS
-*/
-
-#ifndef _GETOPT_H_
-#define _GETOPT_H_
-
-#ifdef _MSC_VER
-#	define __BEGIN_DECLS
-#	define __END_DECLS
-#else
-#	include <sys/cdefs.h>
-#endif
-
-/*
- * GNU-like getopt_long()/getopt_long_only() with 4.4BSD optreset extension.
- * getopt() is declared here too for GNU programs.
- */
-#define no_argument        0
-#define required_argument  1
-#define optional_argument  2
-
-struct option {
-	/* name of long option */
-	const char *name;
-	/*
-	 * one of no_argument, required_argument, and optional_argument:
-	 * whether option takes an argument
-	 */
-	int has_arg;
-	/* if not NULL, set *flag to val when option found */
-	int *flag;
-	/* if flag not NULL, value to set *flag to; else return value */
-	int val;
-};
-
-__BEGIN_DECLS
-int	getopt_long(int, char * const *, const char *,
-	const struct option *, int *);
-int	getopt_long_only(int, char * const *, const char *,
-	const struct option *, int *);
-#ifndef _GETOPT_DECLARED
-#define	_GETOPT_DECLARED
-int	 getopt(int, char * const [], const char *);
-
-extern char *optarg;			/* getopt(3) external variables */
-extern int optind, opterr, optopt;
-#endif
-#ifndef _OPTRESET_DECLARED
-#define	_OPTRESET_DECLARED
-extern int optreset;			/* getopt(3) external variable */
-#endif
-__END_DECLS
- 
-#endif /* !_GETOPT_H_ */

+ 0 - 651
deltachat-ios/libraries/libetpan/src/bsd/getopt_long.c

@@ -1,651 +0,0 @@
-/*	$OpenBSD: getopt_long.c,v 1.17 2004/06/03 18:46:52 millert Exp $	*/
-/*	$NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $	*/
-
-/*
- * Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Sponsored in part by the Defense Advanced Research Projects
- * Agency (DARPA) and Air Force Research Laboratory, Air Force
- * Materiel Command, USAF, under agreement number F39502-99-1-0512.
- */
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Dieter Baron and Thomas Klausner.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/* 
-	Modified by Sebastien Marinier for windows OS
-*/
-
-#if 0
-#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: getopt_long.c,v 1.16 2004/02/04 18:17:25 millert Exp $";
-#endif /* LIBC_SCCS and not lint */
-#endif
-#ifdef _MSC_VER
-#include "getopt.h"
-	static void warnx() {
-	}
-#else
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: /repoman/r/ncvs/src/lib/libc/stdlib/getopt_long.c,v 1.12 2004/07/06 13:58:45 ache Exp $");
-
-#include <err.h>
-#include <errno.h>
-#include <getopt.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-
-#define GNU_COMPATIBLE		/* Be more compatible, configure's use us! */
-
-#ifndef GNU_COMPATIBLE
-#define	REPLACE_GETOPT		/* use this getopt as the system getopt(3) */
-#endif
-
-#ifdef REPLACE_GETOPT
-int	opterr = 1;		/* if error message should be printed */
-int	optind = 1;		/* index into parent argv vector */
-int	optopt = '?';		/* character checked for validity */
-int	optreset;		/* reset getopt */
-char    *optarg;		/* argument associated with option */
-#endif
-
-#define PRINT_ERROR	((opterr) && (*options != ':'))
-
-#define FLAG_PERMUTE	0x01	/* permute non-options to the end of argv */
-#define FLAG_ALLARGS	0x02	/* treat non-options as args to option "-1" */
-#define FLAG_LONGONLY	0x04	/* operate as getopt_long_only */
-
-/* return values */
-#define	BADCH		(int)'?'
-#define	BADARG		((*options == ':') ? (int)':' : (int)'?')
-#define	INORDER 	(int)1
-
-#define	EMSG		""
-
-#ifdef GNU_COMPATIBLE
-#define NO_PREFIX	(-1)
-#define D_PREFIX	0
-#define DD_PREFIX	1
-#define W_PREFIX	2
-#endif
-
-static int getopt_internal(int, char * const *, const char *,
-			   const struct option *, int *, int);
-static int parse_long_options(char * const *, const char *,
-			      const struct option *, int *, int, int);
-static int gcd(int, int);
-static void permute_args(int, int, int, char * const *);
-
-static char *place = EMSG; /* option letter processing */
-
-/* XXX: set optreset to 1 rather than these two */
-static int nonopt_start = -1; /* first non option argument (for permute) */
-static int nonopt_end = -1;   /* first option after non options (for permute) */
-
-/* Error messages */
-static const char recargchar[] = "option requires an argument -- %c";
-static const char illoptchar[] = "illegal option -- %c"; /* From P1003.2 */
-#ifdef GNU_COMPATIBLE
-static int dash_prefix = NO_PREFIX;
-static const char gnuoptchar[] = "invalid option -- %c";
-
-static const char recargstring[] = "option `%s%s' requires an argument";
-static const char ambig[] = "option `%s%.*s' is ambiguous";
-static const char noarg[] = "option `%s%.*s' doesn't allow an argument";
-static const char illoptstring[] = "unrecognized option `%s%s'";
-#else
-static const char recargstring[] = "option requires an argument -- %s";
-static const char ambig[] = "ambiguous option -- %.*s";
-static const char noarg[] = "option doesn't take an argument -- %.*s";
-static const char illoptstring[] = "unknown option -- %s";
-#endif
-
-/*
- * Compute the greatest common divisor of a and b.
- */
-static int
-gcd(int a, int b)
-{
-	int c;
-
-	c = a % b;
-	while (c != 0) {
-		a = b;
-		b = c;
-		c = a % b;
-	}
-
-	return (b);
-}
-
-/*
- * Exchange the block from nonopt_start to nonopt_end with the block
- * from nonopt_end to opt_end (keeping the same order of arguments
- * in each block).
- */
-static void
-permute_args(int panonopt_start, int panonopt_end, int opt_end,
-	char * const *nargv)
-{
-	int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
-	char *swap;
-
-	/*
-	 * compute lengths of blocks and number and size of cycles
-	 */
-	nnonopts = panonopt_end - panonopt_start;
-	nopts = opt_end - panonopt_end;
-	ncycle = gcd(nnonopts, nopts);
-	cyclelen = (opt_end - panonopt_start) / ncycle;
-
-	for (i = 0; i < ncycle; i++) {
-		cstart = panonopt_end+i;
-		pos = cstart;
-		for (j = 0; j < cyclelen; j++) {
-			if (pos >= panonopt_end)
-				pos -= nnonopts;
-			else
-				pos += nopts;
-			swap = nargv[pos];
-			/* LINTED const cast */
-			((char **) nargv)[pos] = nargv[cstart];
-			/* LINTED const cast */
-			((char **)nargv)[cstart] = swap;
-		}
-	}
-}
-
-/*
- * parse_long_options --
- *	Parse long options in argc/argv argument vector.
- * Returns -1 if short_too is set and the option does not match long_options.
- */
-static int
-parse_long_options(char * const *nargv, const char *options,
-	const struct option *long_options, int *idx, int short_too, int flags)
-{
-	char *current_argv, *has_equal;
-#ifdef GNU_COMPATIBLE
-	char *current_dash;
-#endif
-	size_t current_argv_len;
-	int i, match, exact_match, second_partial_match;
-
-	current_argv = place;
-#ifdef GNU_COMPATIBLE
-	switch (dash_prefix) {
-		case D_PREFIX:
-			current_dash = "-";
-			break;
-		case DD_PREFIX:
-			current_dash = "--";
-			break;
-		case W_PREFIX:
-			current_dash = "-W ";
-			break;
-		default:
-			current_dash = "";
-			break;
-	}
-#endif
-	match = -1;
-	exact_match = 0;
-	second_partial_match = 0;
-
-	optind++;
-
-	if ((has_equal = strchr(current_argv, '=')) != NULL) {
-		/* argument found (--option=arg) */
-		current_argv_len = has_equal - current_argv;
-		has_equal++;
-	} else
-		current_argv_len = strlen(current_argv);
-
-	for (i = 0; long_options[i].name; i++) {
-		/* find matching long option */
-		if (strncmp(current_argv, long_options[i].name,
-		    current_argv_len))
-			continue;
-
-		if (strlen(long_options[i].name) == current_argv_len) {
-			/* exact match */
-			match = i;
-			exact_match = 1;
-			break;
-		}
-		/*
-		 * If this is a known short option, don't allow
-		 * a partial match of a single character.
-		 */
-		if (short_too && current_argv_len == 1)
-			continue;
-
-		if (match == -1)        /* first partial match */
-			match = i;
-		else if ((flags & FLAG_LONGONLY) ||
-			 long_options[i].has_arg !=
-			     long_options[match].has_arg ||
-			 long_options[i].flag != long_options[match].flag ||
-			 long_options[i].val != long_options[match].val)
-			second_partial_match = 1;
-	}
-	if (!exact_match && second_partial_match) {
-		/* ambiguous abbreviation */
-		if (PRINT_ERROR)
-			warnx(ambig,
-#ifdef GNU_COMPATIBLE
-			     current_dash,
-#endif
-			     (int)current_argv_len,
-			     current_argv);
-		optopt = 0;
-		return (BADCH);
-	}
-	if (match != -1) {		/* option found */
-		if (long_options[match].has_arg == no_argument
-		    && has_equal) {
-			if (PRINT_ERROR)
-				warnx(noarg,
-#ifdef GNU_COMPATIBLE
-				     current_dash,
-#endif
-				     (int)current_argv_len,
-				     current_argv);
-			/*
-			 * XXX: GNU sets optopt to val regardless of flag
-			 */
-			if (long_options[match].flag == NULL)
-				optopt = long_options[match].val;
-			else
-				optopt = 0;
-#ifdef GNU_COMPATIBLE
-			return (BADCH);
-#else
-			return (BADARG);
-#endif
-		}
-		if (long_options[match].has_arg == required_argument ||
-		    long_options[match].has_arg == optional_argument) {
-			if (has_equal)
-				optarg = has_equal;
-			else if (long_options[match].has_arg ==
-			    required_argument) {
-				/*
-				 * optional argument doesn't use next nargv
-				 */
-				optarg = nargv[optind++];
-			}
-		}
-		if ((long_options[match].has_arg == required_argument)
-		    && (optarg == NULL)) {
-			/*
-			 * Missing argument; leading ':' indicates no error
-			 * should be generated.
-			 */
-			if (PRINT_ERROR)
-				warnx(recargstring,
-#ifdef GNU_COMPATIBLE
-				    current_dash,
-#endif
-				    current_argv);
-			/*
-			 * XXX: GNU sets optopt to val regardless of flag
-			 */
-			if (long_options[match].flag == NULL)
-				optopt = long_options[match].val;
-			else
-				optopt = 0;
-			--optind;
-			return (BADARG);
-		}
-	} else {			/* unknown option */
-		if (short_too) {
-			--optind;
-			return (-1);
-		}
-		if (PRINT_ERROR)
-			warnx(illoptstring,
-#ifdef GNU_COMPATIBLE
-			      current_dash,
-#endif
-			      current_argv);
-		optopt = 0;
-		return (BADCH);
-	}
-	if (idx)
-		*idx = match;
-	if (long_options[match].flag) {
-		*long_options[match].flag = long_options[match].val;
-		return (0);
-	} else
-		return (long_options[match].val);
-}
-
-/*
- * getopt_internal --
- *	Parse argc/argv argument vector.  Called by user level routines.
- */
-static int
-getopt_internal(int nargc, char * const *nargv, const char *options,
-	const struct option *long_options, int *idx, int flags)
-{
-	char *oli;				/* option letter list index */
-	int optchar, short_too;
-	int posixly_correct;
-
-	if (options == NULL)
-		return (-1);
-
-	/*
-	 * Disable GNU extensions if POSIXLY_CORRECT is set or options
-	 * string begins with a '+'.
-	 */
-	posixly_correct = (getenv("POSIXLY_CORRECT") != NULL);
-#ifdef GNU_COMPATIBLE
-	if (*options == '-')
-		flags |= FLAG_ALLARGS;
-	else if (posixly_correct || *options == '+')
-		flags &= ~FLAG_PERMUTE;
-#else
-	if (posixly_correct || *options == '+')
-		flags &= ~FLAG_PERMUTE;
-	else if (*options == '-')
-		flags |= FLAG_ALLARGS;
-#endif
-	if (*options == '+' || *options == '-')
-		options++;
-
-	/*
-	 * XXX Some GNU programs (like cvs) set optind to 0 instead of
-	 * XXX using optreset.  Work around this braindamage.
-	 */
-	if (optind == 0)
-		optind = optreset = 1;
-
-	optarg = NULL;
-	if (optreset)
-		nonopt_start = nonopt_end = -1;
-start:
-	if (optreset || !*place) {		/* update scanning pointer */
-		optreset = 0;
-		if (optind >= nargc) {          /* end of argument vector */
-			place = EMSG;
-			if (nonopt_end != -1) {
-				/* do permutation, if we have to */
-				permute_args(nonopt_start, nonopt_end,
-				    optind, nargv);
-				optind -= nonopt_end - nonopt_start;
-			}
-			else if (nonopt_start != -1) {
-				/*
-				 * If we skipped non-options, set optind
-				 * to the first of them.
-				 */
-				optind = nonopt_start;
-			}
-			nonopt_start = nonopt_end = -1;
-			return (-1);
-		}
-		if (*(place = nargv[optind]) != '-' ||
-#ifdef GNU_COMPATIBLE
-		    place[1] == '\0') {
-#else
-		    (place[1] == '\0' && strchr(options, '-') == NULL)) {
-#endif
-			place = EMSG;		/* found non-option */
-			if (flags & FLAG_ALLARGS) {
-				/*
-				 * GNU extension:
-				 * return non-option as argument to option 1
-				 */
-				optarg = nargv[optind++];
-				return (INORDER);
-			}
-			if (!(flags & FLAG_PERMUTE)) {
-				/*
-				 * If no permutation wanted, stop parsing
-				 * at first non-option.
-				 */
-				return (-1);
-			}
-			/* do permutation */
-			if (nonopt_start == -1)
-				nonopt_start = optind;
-			else if (nonopt_end != -1) {
-				permute_args(nonopt_start, nonopt_end,
-				    optind, nargv);
-				nonopt_start = optind -
-				    (nonopt_end - nonopt_start);
-				nonopt_end = -1;
-			}
-			optind++;
-			/* process next argument */
-			goto start;
-		}
-		if (nonopt_start != -1 && nonopt_end == -1)
-			nonopt_end = optind;
-
-		/*
-		 * If we have "-" do nothing, if "--" we are done.
-		 */
-		if (place[1] != '\0' && *++place == '-' && place[1] == '\0') {
-			optind++;
-			place = EMSG;
-			/*
-			 * We found an option (--), so if we skipped
-			 * non-options, we have to permute.
-			 */
-			if (nonopt_end != -1) {
-				permute_args(nonopt_start, nonopt_end,
-				    optind, nargv);
-				optind -= nonopt_end - nonopt_start;
-			}
-			nonopt_start = nonopt_end = -1;
-			return (-1);
-		}
-	}
-
-	/*
-	 * Check long options if:
-	 *  1) we were passed some
-	 *  2) the arg is not just "-"
-	 *  3) either the arg starts with -- we are getopt_long_only()
-	 */
-	if (long_options != NULL && place != nargv[optind] &&
-	    (*place == '-' || (flags & FLAG_LONGONLY))) {
-		short_too = 0;
-#ifdef GNU_COMPATIBLE
-		dash_prefix = D_PREFIX;
-#endif
-		if (*place == '-') {
-			place++;		/* --foo long option */
-#ifdef GNU_COMPATIBLE
-			dash_prefix = DD_PREFIX;
-#endif
-		} else if (*place != ':' && strchr(options, *place) != NULL)
-			short_too = 1;		/* could be short option too */
-
-		optchar = parse_long_options(nargv, options, long_options,
-		    idx, short_too, flags);
-		if (optchar != -1) {
-			place = EMSG;
-			return (optchar);
-		}
-	}
-
-	if ((optchar = (int)*place++) == (int)':' ||
-	    (optchar == (int)'-' && *place != '\0') ||
-	    (oli = strchr(options, optchar)) == NULL) {
-		/*
-		 * If the user specified "-" and  '-' isn't listed in
-		 * options, return -1 (non-option) as per POSIX.
-		 * Otherwise, it is an unknown option character (or ':').
-		 */
-		if (optchar == (int)'-' && *place == '\0')
-			return (-1);
-		if (!*place)
-			++optind;
-#ifdef GNU_COMPATIBLE
-		if (PRINT_ERROR)
-			warnx(posixly_correct ? illoptchar : gnuoptchar,
-			      optchar);
-#else
-		if (PRINT_ERROR)
-			warnx(illoptchar, optchar);
-#endif
-		optopt = optchar;
-		return (BADCH);
-	}
-	if (long_options != NULL && optchar == 'W' && oli[1] == ';') {
-		/* -W long-option */
-		if (*place)			/* no space */
-			/* NOTHING */;
-		else if (++optind >= nargc) {	/* no arg */
-			place = EMSG;
-			if (PRINT_ERROR)
-				warnx(recargchar, optchar);
-			optopt = optchar;
-			return (BADARG);
-		} else				/* white space */
-			place = nargv[optind];
-#ifdef GNU_COMPATIBLE
-		dash_prefix = W_PREFIX;
-#endif
-		optchar = parse_long_options(nargv, options, long_options,
-		    idx, 0, flags);
-		place = EMSG;
-		return (optchar);
-	}
-	if (*++oli != ':') {			/* doesn't take argument */
-		if (!*place)
-			++optind;
-	} else {				/* takes (optional) argument */
-		optarg = NULL;
-		if (*place)			/* no white space */
-			optarg = place;
-		/* XXX: disable test for :: if PC? (GNU doesn't) */
-		else if (oli[1] != ':') {	/* arg not optional */
-			if (++optind >= nargc) {	/* no arg */
-				place = EMSG;
-				if (PRINT_ERROR)
-					warnx(recargchar, optchar);
-				optopt = optchar;
-				return (BADARG);
-			} else
-				optarg = nargv[optind];
-		} else if (!(flags & FLAG_PERMUTE)) {
-			/*
-			 * If permutation is disabled, we can accept an
-			 * optional arg separated by whitespace so long
-			 * as it does not start with a dash (-).
-			 */
-			if (optind + 1 < nargc && *nargv[optind + 1] != '-')
-				optarg = nargv[++optind];
-		}
-		place = EMSG;
-		++optind;
-	}
-	/* dump back option letter */
-	return (optchar);
-}
-
-#ifdef REPLACE_GETOPT
-/*
- * getopt --
- *	Parse argc/argv argument vector.
- *
- * [eventually this will replace the BSD getopt]
- */
-int
-getopt(int nargc, char * const *nargv, const char *options)
-{
-
-	/*
-	 * We don't pass FLAG_PERMUTE to getopt_internal() since
-	 * the BSD getopt(3) (unlike GNU) has never done this.
-	 *
-	 * Furthermore, since many privileged programs call getopt()
-	 * before dropping privileges it makes sense to keep things
-	 * as simple (and bug-free) as possible.
-	 */
-	return (getopt_internal(nargc, nargv, options, NULL, NULL, 0));
-}
-#endif /* REPLACE_GETOPT */
-
-/*
- * getopt_long --
- *	Parse argc/argv argument vector.
- */
-int
-getopt_long(nargc, nargv, options, long_options, idx)
-	int nargc;
-	char * const *nargv;
-	const char *options;
-	const struct option *long_options;
-	int *idx;
-{
-
-	return (getopt_internal(nargc, nargv, options, long_options, idx,
-	    FLAG_PERMUTE));
-}
-
-/*
- * getopt_long_only --
- *	Parse argc/argv argument vector.
- */
-int
-getopt_long_only(nargc, nargv, options, long_options, idx)
-	int nargc;
-	char * const *nargv;
-	const char *options;
-	const struct option *long_options;
-	int *idx;
-{
-
-	return (getopt_internal(nargc, nargv, options, long_options, idx,
-	    FLAG_PERMUTE|FLAG_LONGONLY));
-}

+ 0 - 55
deltachat-ios/libraries/libetpan/src/data-types/Makefile.am

@@ -1,55 +0,0 @@
-# libEtPan! -- a mail stuff library
-#
-# Copyright (C) 2007 g10 Code GmbH
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the libEtPan! project nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-include $(top_srcdir)/rules.mk
-
-etpaninclude_HEADERS = \
-	mmapstring.h mailstream.h mailstream_helper.h mail.h \
-        mailstream_low.h \
-        mailstream_socket.h mailstream_ssl.h mailstream_cfstream.h \
-        mailstream_compress.h \
-	mailstream_types.h \
-	carray.h clist.h chash.h \
-	charconv.h mailsem.h maillock.h
-
-AM_CPPFLAGS = -I$(top_builddir)/include
-
-noinst_LTLIBRARIES = libdata-types.la
-
-libdata_types_la_SOURCES = connect.h connect.c base64.h hmac-md5.h	\
-	md5global.h md5namespace.h md5.h md5.c mmapstring.c mailstream_helper.c	\
-	mailstream_low.c mailstream.c mailstream_socket.c		\
-	mailstream_ssl.c carray.c clist.c chash.c		        \
-	charconv.c maillock.c base64.c mail_cache_db_types.h		\
-	mail_cache_db.h mail_cache_db.c mailsem.c mailsasl.h		\
-	mailsasl.c mailstream_cancel_types.h mailstream_cancel.h	\
-	mailstream_cancel.c timeutils.h timeutils.c			\
-	mmapstring_private.h mailstream_ssl_private.h			\
-	mailstream_cfstream.c mailstream_cfstream.h \
-    mailstream_compress.c mailstream_compress.h

+ 0 - 148
deltachat-ios/libraries/libetpan/src/data-types/base64.c

@@ -1,148 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - Juergen Graf
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: base64.c,v 1.3 2005/06/01 12:21:57 smarinier Exp $
- */
-
-#include "base64.h"
-
-#include <stdlib.h>
-
-#define OUTPUT_SIZE 513
-#define CHAR64(c)  (((c) < 0 || (c) > 127) ? -1 : index_64[(c)])
-
-static char index_64[128] = {
-    -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-    -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-    -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
-    52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1,-1,-1,-1,
-    -1, 0, 1, 2,  3, 4, 5, 6,  7, 8, 9,10, 11,12,13,14,
-    15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
-    -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
-    41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
-};
-
-static char basis_64[] =
-   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-LIBETPAN_EXPORT
-char * encode_base64(const char * in, int len)
-{
-  char * output, * tmp;
-  unsigned char oval;
-  int out_len;
-  const unsigned char * uin = (const unsigned char *) in;
-
-  out_len = ((len + 2) / 3 * 4) + 1;
-
-  if ((len > 0) && (in == NULL))
-    return NULL;
-
-  output = malloc(out_len);
-  if (!output)
-    return NULL;
-    
-  tmp = output;
-  while (len >= 3) {
-    *tmp++ = basis_64[uin[0] >> 2];
-    *tmp++ = basis_64[((uin[0] << 4) & 0x30) | (uin[1] >> 4)];
-    *tmp++ = basis_64[((uin[1] << 2) & 0x3c) | (uin[2] >> 6)];
-    *tmp++ = basis_64[uin[2] & 0x3f];
-    uin += 3;
-    len -= 3;
-  }
-  if (len > 0) {
-    *tmp++ = basis_64[uin[0] >> 2];
-    oval = (uin[0] << 4) & 0x30;
-    if (len > 1) oval |= uin[1] >> 4;
-    *tmp++ = basis_64[oval];
-    *tmp++ = (len < 2) ? '=' : basis_64[(uin[1] << 2) & 0x3c];
-    *tmp++ = '=';
-  }
-
-  *tmp = '\0';
-    
-  return output;
-}
-
-LIBETPAN_EXPORT
-char * decode_base64(const char * in, int len)
-{
-  char * output, * out;
-  int i, c1, c2, c3, c4, out_len;
-
-  out_len = 0;
-  
-  output = malloc(OUTPUT_SIZE);
-  if (output == NULL)
-    return NULL;
-  out = output;
-
-  if (in[0] == '+' && in[1] == ' ')
-    in += 2;
-  
-  for (i = 0; i < (len / 4); i++) {
-    c1 = in[0];
-    c2 = in[1];
-    c3 = in[2];
-    c4 = in[3];
-    if (CHAR64(c1) == -1 || CHAR64(c2) == -1 || 
-        (c3 != '=' && CHAR64(c3) == -1) || 
-        (c4 != '=' && CHAR64(c4) == -1)) {
-      free(out);
-      return NULL;
-    }
-
-    in += 4;
-    *output++ = (CHAR64(c1) << 2) | (CHAR64(c2) >> 4);
-    if (++out_len >= OUTPUT_SIZE)
-      return NULL;
-
-    if (c3 != '=') {
-      *output++ = ((CHAR64(c2) << 4) & 0xf0) | (CHAR64(c3) >> 2);
-      if (++out_len >= OUTPUT_SIZE)
-        return NULL;
-      
-      if (c4 != '=') {
-        *output++ = ((CHAR64(c3) << 6) & 0xc0) | CHAR64(c4);  
-        if (++out_len >= OUTPUT_SIZE)
-          return NULL;
-      }
-    }
-  }
-  
-  *output = 0;
-  
-  return out;
-}
-
-

+ 0 - 65
deltachat-ios/libraries/libetpan/src/data-types/base64.h

@@ -1,65 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - Juergen Graf
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: base64.h,v 1.3 2005/06/01 12:21:57 smarinier Exp $
- */
-
-#ifndef BASE64_H
-#define BASE64_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef LIBETPAN_CONFIG_H
-#	include "libetpan-config.h"
-#endif
-
-/**
- * creates (malloc) a new base64 encoded string from a standard 8bit string 
- * don't forget to free it when time comes ;)
- */
-LIBETPAN_EXPORT
-char * encode_base64(const char * in, int len);
-
-/**
- * creates (malloc) a new standard 8bit string from an base64 encoded string
- * don't forget to free it when time comes ;)
- */
-LIBETPAN_EXPORT
-char * decode_base64(const char * in, int len);
-    
-#ifdef __cplusplus
-}
-#endif    
-
-#endif

+ 0 - 162
deltachat-ios/libraries/libetpan/src/data-types/carray.c

@@ -1,162 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * carray - Implements simple dynamic pointer arrays
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: carray.c,v 1.11 2008/02/20 22:15:50 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include "carray.h"
-
-#define MIN_ARRAY_SIZE 4
-
-LIBETPAN_EXPORT
-carray * carray_new(unsigned int initsize) {
-  carray * array;
-
-  array = (carray *) malloc(sizeof(carray));
-  if (!array) return NULL;
-  
-  if (initsize < MIN_ARRAY_SIZE)
-    initsize = MIN_ARRAY_SIZE;
-  
-  array->len = 0;
-  array->max = initsize;
-  array->array = (void **) malloc(sizeof(void *) * initsize);
-  if (!array->array) {
-    free(array);
-    return NULL;
-  }
-  return array;
-}
-
-LIBETPAN_EXPORT
-int carray_add(carray * array, void * data, unsigned int * indx) {
-  int r;
-  
-  r = carray_set_size(array, array->len + 1);
-  if (r < 0)
-    return r;
-
-  array->array[array->len - 1] = data;
-  if (indx != NULL)
-    * indx = array->len - 1;
-
-  return 0;
-}
-
-LIBETPAN_EXPORT
-int carray_set_size(carray * array, unsigned int new_size)
-{
-  if (new_size > array->max) {
-    unsigned int n = array->max * 2;
-    void * new;
-
-    while (n <= new_size)
-      n *= 2;
-
-    new = (void **) realloc(array->array, sizeof(void *) * n);
-    if (!new)
-      return -1;
-    array->array = new;
-    array->max = n;
-  }
-  array->len = new_size;
-
-  return 0;
-}
-
-LIBETPAN_EXPORT
-int carray_delete_fast(carray * array, unsigned int indx) {
-  if (indx >= array->len)
-    return -1;
-
-  array->array[indx] = NULL;
-
-  return 0;
-}
-
-LIBETPAN_EXPORT
-int carray_delete(carray * array, unsigned int indx) {
-  if (indx >= array->len)
-    return -1;
-
-  if (indx != --array->len)
-    array->array[indx] = array->array[array->len];
-  return 0;
-}
-
-LIBETPAN_EXPORT
-int carray_delete_slow(carray * array, unsigned int indx) {
-  if (indx >= array->len)
-    return -1;
-
-  if (indx != --array->len) 
-    memmove(array->array + indx, array->array + indx + 1,
-	    (array->len - indx) * sizeof(void *));
-  return 0;
-}
-
-#ifdef NO_MACROS
-LIBETPAN_EXPORT
-void ** carray_data(carray * array) {
-  return array->array;
-}
-
-LIBETPAN_EXPORT
-unsigned int carray_count(carray * array) {
-  return array->len;
-}
-
-LIBETPAN_EXPORT
-void * carray_get(carray * array, unsigned int indx) {
-  return array->array[indx];
-}
-
-LIBETPAN_EXPORT
-void carray_set(carray * array, unsigned int indx, void * value) {
-  array->array[indx] = value;
-}
-#endif
-
-LIBETPAN_EXPORT
-void carray_free(carray * array) {
-  free(array->array);
-  free(array);
-}

+ 0 - 149
deltachat-ios/libraries/libetpan/src/data-types/carray.h

@@ -1,149 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * carray - Implements simple dynamic pointer arrays
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: carray.h,v 1.18 2010/11/16 20:46:35 hoa Exp $
- */
-
-#ifndef CARRAY_H
-#define CARRAY_H
-
-#ifndef LIBETPAN_CONFIG_H
-#	include <libetpan/libetpan-config.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct carray_s {
-  void ** array;
-  unsigned int len;
-  unsigned int max;
-};
-
-typedef struct carray_s carray;
-
-/* Creates a new array of pointers, with initsize preallocated cells */
-LIBETPAN_EXPORT
-carray *   carray_new(unsigned int initsize);
-
-/* Adds the pointer to data in the array.
-   Returns the index of the pointer in the array or -1 on error */
-LIBETPAN_EXPORT
-int       carray_add(carray * array, void * data, unsigned int * indx);
-
-LIBETPAN_EXPORT
-int carray_set_size(carray * array, unsigned int new_size);
-
-/* Removes the cell at this index position. Returns TRUE on success.
-   Order of elements in the array IS changed. */
-LIBETPAN_EXPORT
-int       carray_delete(carray * array, unsigned int indx);
-
-/* Removes the cell at this index position. Returns TRUE on success.
-   Order of elements in the array IS not changed. */
-LIBETPAN_EXPORT
-int       carray_delete_slow(carray * array, unsigned int indx);
-
-/* remove without decreasing the size of the array */
-LIBETPAN_EXPORT
-int carray_delete_fast(carray * array, unsigned int indx);
-
-/* Some of the following routines can be implemented as macros to
-   be faster. If you don't want it, define NO_MACROS */
-#ifdef NO_MACROS
-
-/* Returns the array itself */
-LIBETPAN_EXPORT
-void **   carray_data(carray *);
-
-/* Returns the number of elements in the array */
-LIBETPAN_EXPORT
-unsigned int carray_count(carray *);
-
-/* Returns the contents of one cell */
-LIBETPAN_EXPORT
-void *    carray_get(carray * array, unsigned int indx);
-
-/* Sets the contents of one cell */
-LIBETPAN_EXPORT
-void      carray_set(carray * array, unsigned int indx, void * value);
-
-#else
-
-#if 0
-#define   carray_data(a)         (a->array)
-#define   carray_count(a)        (a->len)
-#define   carray_get(a, indx)    (a->array[indx])
-#define   carray_set(a, indx, v) do { a->array[indx]=v; } while(0)
-#endif
-
-#ifndef INLINE
-#ifdef _MSC_VER
-#define INLINE __inline
-#else
-#define INLINE inline
-#endif
-#endif
-
-static INLINE void ** carray_data(carray * array)
-{
-  return array->array;
-}
-
-static INLINE unsigned int carray_count(carray * array)
-{
-  return array->len;
-}
-
-static INLINE void * carray_get(carray * array, unsigned int indx)
-{
-  return array->array[indx];
-}
-
-static INLINE void carray_set(carray * array, unsigned int indx, void * value)
-{
-  array->array[indx] = value;
-}
-#endif
-
-LIBETPAN_EXPORT
-void carray_free(carray * array);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 348
deltachat-ios/libraries/libetpan/src/data-types/charconv.c

@@ -1,348 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: charconv.c,v 1.25 2011/03/29 14:39:55 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "charconv.h"
-
-#ifdef HAVE_ICONV
-#include <iconv.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <errno.h>
-
-#include "mmapstring.h"
-
-int (*extended_charconv)(const char * tocode, const char * fromcode, const char * str, size_t length,
-    char * result, size_t* result_len) = NULL;
-
-#ifdef HAVE_ICONV
-static size_t mail_iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft,
-    char **outbuf, size_t *outbytesleft,
-    char **inrepls, char *outrepl)
-{
-  size_t ret = 0, ret1;
-  /* XXX - force const to mutable */
-  char *ib = (char *) *inbuf;
-  size_t ibl = *inbytesleft;
-  char *ob = *outbuf;
-  size_t obl = *outbytesleft;
-
-  for (;;)
-  {
-#ifdef HAVE_ICONV_PROTO_CONST
-    ret1 = iconv (cd, (const char **) &ib, &ibl, &ob, &obl);
-#else
-    ret1 = iconv (cd, &ib, &ibl, &ob, &obl);
-#endif
-    if (ret1 != (size_t)-1)
-      ret += ret1;
-    if (ibl && obl && errno == EILSEQ)
-    {
-      if (inrepls)
-      {
-	/* Try replacing the input */
-	char **t;
-	for (t = inrepls; *t; t++)
-	{
-	  char *ib1 = *t;
-	  size_t ibl1 = strlen (*t);
-	  char *ob1 = ob;
-	  size_t obl1 = obl;
-#ifdef HAVE_ICONV_PROTO_CONST
-	  iconv (cd, (const char **) &ib1, &ibl1, &ob1, &obl1);
-#else
-	  iconv (cd, &ib1, &ibl1, &ob1, &obl1);
-#endif
-	  if (!ibl1)
-	  {
-	    ++ib, --ibl;
-	    ob = ob1, obl = obl1;
-	    ++ret;
-	    break;
-	  }
-	}
-	if (*t)
-	  continue;
-      }
-      if (outrepl)
-      {
-	/* Try replacing the output */
-	size_t n = strlen (outrepl);
-	if (n <= obl)
-	{
-	  memcpy (ob, outrepl, n);
-	  ++ib, --ibl;
-	  ob += n, obl -= n;
-	  ++ret;
-	  continue;
-	}
-      }
-    }
-    *inbuf = ib, *inbytesleft = ibl;
-    *outbuf = ob, *outbytesleft = obl;
-    return ret;
-  }
-}
-#endif
-
-static const char * get_valid_charset(const char * fromcode)
-{
-  if ((strcasecmp(fromcode, "GB2312") == 0) || (strcasecmp(fromcode, "GB_2312-80") == 0)) {
-    fromcode = "GBK";
-  }
-  else if ((strcasecmp(fromcode, "iso-8859-8-i") == 0) || (strcasecmp(fromcode, "iso_8859-8-i") == 0) ||
-           (strcasecmp(fromcode, "iso8859-8-i") == 0)) {
-    fromcode = "iso-8859-8";
-  }
-  else if ((strcasecmp(fromcode, "iso-8859-8-e") == 0) || (strcasecmp(fromcode, "iso_8859-8-e") == 0) ||
-           (strcasecmp(fromcode, "iso8859-8-e") == 0)) {
-    fromcode = "iso-8859-8";
-  }
-  else if (strcasecmp(fromcode, "ks_c_5601-1987") == 0) {
-    fromcode = "euckr";
-  }
-  else if (strcasecmp(fromcode, "iso-2022-jp") == 0) {
-    fromcode = "iso-2022-jp-2";
-  }
-  
-  return fromcode;
-}
-
-LIBETPAN_EXPORT
-int charconv(const char * tocode, const char * fromcode,
-    const char * str, size_t length,
-    char ** result)
-{
-#ifdef HAVE_ICONV
-	iconv_t conv;
-	size_t r;
-	char * pout;
-	size_t out_size;
-	size_t old_out_size;
-	size_t count;
-#endif
-	char * out;
-	int res;
-
-  fromcode = get_valid_charset(fromcode);
-  
-	if (extended_charconv != NULL) {
-		size_t		result_length;
-		result_length = length * 6;
-		*result = malloc( length * 6 + 1);
-		if (*result == NULL) {
-			res = MAIL_CHARCONV_ERROR_MEMORY;
-		} else {
-			res = (*extended_charconv)( tocode, fromcode, str, length, *result, &result_length);
-			if (res != MAIL_CHARCONV_NO_ERROR) {
-				free( *result);
-			} else {
-				out = realloc( *result, result_length + 1);
-				if (out != NULL) *result = out;
-				/* also a cstring, just in case */
-				(*result)[result_length] = '\0';
-			}
-		}
-		if (res != MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET)
-			return res;
-		/* else, let's try with iconv, if available */
-	}
-
-#ifndef HAVE_ICONV
-  return MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET;
-#else
-  
-  conv = iconv_open(tocode, fromcode);
-  if (conv == (iconv_t) -1) {
-    res = MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET;
-    goto err;
-  }
-
-  out_size = 6 * length; /* UTF-8 can be encoded up to 6 bytes */
-
-  out = malloc(out_size + 1);
-  if (out == NULL) {
-    res = MAIL_CHARCONV_ERROR_MEMORY;
-    goto close_iconv;
-  }
-
-  pout = out;
-  old_out_size = out_size;
-
-  r = mail_iconv(conv, &str, &length, &pout, &out_size, NULL, "?");
-
-  if (r == (size_t) -1) {
-    res = MAIL_CHARCONV_ERROR_CONV;
-    goto free;
-  }
-
-  iconv_close(conv);
-
-  * pout = '\0';
-  count = old_out_size - out_size;
-  pout = realloc(out, count + 1);
-  if (pout != NULL)
-    out = pout;
-
-  * result = out;
-
-  return MAIL_CHARCONV_NO_ERROR;
-
- free:
-  free(out);
- close_iconv:
-  iconv_close(conv);
- err:
-  return res;
-#endif
-}
-
-LIBETPAN_EXPORT
-int charconv_buffer(const char * tocode, const char * fromcode,
-		    const char * str, size_t length,
-		    char ** result, size_t * result_len)
-{
-#ifdef HAVE_ICONV
-	iconv_t conv;
-	size_t iconv_r;
-	int r;
-	char * out;
-	char * pout;
-	size_t out_size;
-	size_t old_out_size;
-	size_t count;
-#endif
-	int res;
-	MMAPString * mmapstr;
-
-  fromcode = get_valid_charset(fromcode);
-  
-	if (extended_charconv != NULL) {
-		size_t		result_length;
-		result_length = length * 6;
-		mmapstr = mmap_string_sized_new( result_length + 1);
-		*result_len = 0;
-		if (mmapstr == NULL) {
-			res = MAIL_CHARCONV_ERROR_MEMORY;
-		} else {
-			res = (*extended_charconv)( tocode, fromcode, str, length, mmapstr->str, &result_length);
-			if (res != MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET) {
-				if (res == MAIL_CHARCONV_NO_ERROR) {
-					*result = mmapstr->str;
-					res = mmap_string_ref(mmapstr);
-					if (res < 0) {
-						res = MAIL_CHARCONV_ERROR_MEMORY;
-						mmap_string_free(mmapstr);
-					} else {
-						mmap_string_set_size( mmapstr, result_length);	/* can't fail */
-						*result_len = result_length;
-					}
-				}
-                else {
-                    mmap_string_free(mmapstr);
-                }
-			}
-            else {
-                mmap_string_free(mmapstr);
-            }
-			return res;
-		}
-		/* else, let's try with iconv, if available */
-	}
-
-#ifndef HAVE_ICONV
-  return MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET;
-#else
-
-  conv = iconv_open(tocode, fromcode);
-  if (conv == (iconv_t) -1) {
-    res = MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET;
-    goto err;
-  }
-
-  out_size = 6 * length; /* UTF-8 can be encoded up to 6 bytes */
-
-  mmapstr = mmap_string_sized_new(out_size + 1);
-  if (mmapstr == NULL) {
-    res = MAIL_CHARCONV_ERROR_MEMORY;
-    goto err;
-  }
-
-  out = mmapstr->str;
-
-  pout = out;
-  old_out_size = out_size;
-
-  iconv_r = mail_iconv(conv, &str, &length, &pout, &out_size, NULL, "?");
-
-  if (iconv_r == (size_t) -1) {
-    res = MAIL_CHARCONV_ERROR_CONV;
-    goto free;
-  }
-
-  iconv_close(conv);
-
-  * pout = '\0';
-
-  count = old_out_size - out_size;
-
-  r = mmap_string_ref(mmapstr);
-  if (r < 0) {
-    res = MAIL_CHARCONV_ERROR_MEMORY;
-    goto free;
-  }
-
-  * result = out;
-  * result_len = count;
-
-  return MAIL_CHARCONV_NO_ERROR;
-
- free:
-  mmap_string_free(mmapstr);
- err:
-  return res;
-#endif
-}
-
-LIBETPAN_EXPORT
-void charconv_buffer_free(char * str)
-{
-  mmap_string_unref(str);
-}

+ 0 - 84
deltachat-ios/libraries/libetpan/src/data-types/charconv.h

@@ -1,84 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: charconv.h,v 1.13 2006/06/16 09:25:23 smarinier Exp $
- */
-
-#ifndef CHARCONV_H
-
-#define CHARCONV_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-
-#ifndef LIBETPAN_CONFIG_H
-#	include <libetpan/libetpan-config.h>
-#endif
-
-enum {
-  MAIL_CHARCONV_NO_ERROR = 0,
-  MAIL_CHARCONV_ERROR_UNKNOWN_CHARSET,
-  MAIL_CHARCONV_ERROR_MEMORY,
-  MAIL_CHARCONV_ERROR_CONV
-};
-
-/**
-*	define your own conversion. 
-*		- result is big enough to contain your converted string 
-*		- result_len contain the maximum size available (out value must contain the final converted size)
-*		- your conversion return an error code based on upper enum values
-*/
-LIBETPAN_EXPORT
-extern int (*extended_charconv)(const char * tocode, const char * fromcode, const char * str, size_t length,
-    char * result, size_t* result_len);
-
-LIBETPAN_EXPORT
-int charconv(const char * tocode, const char * fromcode,
-    const char * str, size_t length,
-    char ** result);
-
-LIBETPAN_EXPORT
-int charconv_buffer(const char * tocode, const char * fromcode,
-		    const char * str, size_t length,
-		    char ** result, size_t * result_len);
-
-LIBETPAN_EXPORT
-void charconv_buffer_free(char * str);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 414
deltachat-ios/libraries/libetpan/src/data-types/chash.c

@@ -1,414 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * chash - Implements generic hash tables.
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: chash.c,v 1.16 2006/05/22 13:39:40 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "chash.h"
-
-/* This defines the maximum (average) number of entries per bucket.
-   The hash is resized everytime inserting an entry makes the
-   average go over that value. */
-#define CHASH_MAXDEPTH    3
-
-static inline unsigned int chash_func(const char * key, unsigned int len) {
-#if 0
-  register unsigned int c = 0, t;
-  register const char * k = key;
-  
-  while (len--) {
-    c += (c << 4) + *k++;
-    if ((t = c & 0xF0000000)) {
-      c ^= t >> 24;
-      c ^= t;
-    }
-  }
-  return c;
-#endif
-  register unsigned int c = 5381;
-  register const char * k = key;
-  
-  while (len--) {
-    c = ((c << 5) + c) + *k++;
-  }
-  
-  return c;
-}
-
-static inline char * chash_dup(const void * data, unsigned int len)
-{
-  void * r;
-
-  r = (char *) malloc(len);
-  if (!r)
-    return NULL;
-  memcpy(r, data, len);
-  return r;
-}
-
-LIBETPAN_EXPORT
-chash * chash_new(unsigned int size, int flags)
-{
-  chash * h;
-
-  h = (chash *) malloc(sizeof(chash));
-  if (h == NULL)
-    return NULL;
-
-  if (size < CHASH_DEFAULTSIZE)
-    size = CHASH_DEFAULTSIZE;
-  
-  h->count = 0;
-  h->cells = (struct chashcell **) calloc(size, sizeof(struct chashcell *));
-  if (h->cells == NULL) {
-    free(h);
-    return NULL;
-  }
-  h->size = size;
-  h->copykey = flags & CHASH_COPYKEY;
-  h->copyvalue = flags & CHASH_COPYVALUE;
-  
-  return h;
-}
-
-LIBETPAN_EXPORT
-int chash_get(chash * hash,
-	      chashdatum * key, chashdatum * result)
-{
-  unsigned int func;
-  chashiter * iter;
-  
-  func = chash_func(key->data, key->len);
-
-  /* look for the key in existing cells */
-  iter = hash->cells[func % hash->size];
-  while (iter) {
-    if (iter->key.len == key->len && iter->func == func
-	&& !memcmp(iter->key.data, key->data, key->len)) {
-      * result = iter->value; /* found */
-
-      return 0;
-    }
-    iter = iter->next;
-  }
-
-  return -1;
-}
-
-LIBETPAN_EXPORT
-int chash_set(chash * hash,
-	      chashdatum * key,
-	      chashdatum * value,
-	      chashdatum * oldvalue)
-{
-  unsigned int func, indx;
-  chashiter * iter, * cell;
-  int r;
-
-  if (hash->count > hash->size * CHASH_MAXDEPTH) {
-    r = chash_resize(hash, (hash->count / CHASH_MAXDEPTH) * 2 + 1);
-    if (r < 0)
-      goto err;
-  }
-
-  func = chash_func(key->data, key->len);
-  indx = func % hash->size;
-
-  /* look for the key in existing cells */
-  iter = hash->cells[indx];
-  while (iter) {
-    if (iter->key.len == key->len && iter->func == func
-	&& !memcmp(iter->key.data, key->data, key->len)) {
-      /* found, replacing entry */
-      if (hash->copyvalue) {
-	char * data;
-
-	data = chash_dup(value->data, value->len);
-	if (data == NULL)
-	  goto err;
-
-	free(iter->value.data);
-	iter->value.data = data;
-	iter->value.len = value->len;
-      } else {
-	if (oldvalue != NULL) {
-	  oldvalue->data = iter->value.data;
-	  oldvalue->len = iter->value.len;
-	}
-	iter->value.data = value->data;
-	iter->value.len = value->len;
-      }
-      if (!hash->copykey)
-	iter->key.data = key->data;
-
-      if (oldvalue != NULL) {
-	oldvalue->data = value->data;
-	oldvalue->len = value->len;
-      }
-
-      return 0;
-    }
-    iter = iter->next;
-  }
-  
-  if (oldvalue != NULL) {
-    oldvalue->data = NULL;
-    oldvalue->len = 0;
-  }
-  
-  /* not found, adding entry */
-  cell = (struct chashcell *) malloc(sizeof(struct chashcell));
-  if (cell == NULL)
-    goto err;
-
-  if (hash->copykey) {
-    cell->key.data = chash_dup(key->data, key->len);
-    if (cell->key.data == NULL)
-      goto free;
-  }
-  else
-    cell->key.data = key->data;
-
-  cell->key.len = key->len;
-  if (hash->copyvalue) {
-    cell->value.data = chash_dup(value->data, value->len);
-    if (cell->value.data == NULL)
-      goto free_key_data;
-  }
-  else
-    cell->value.data = value->data;
-
-  cell->value.len = value->len;
-  cell->func = func;
-  cell->next = hash->cells[indx];
-  hash->cells[indx] = cell;
-  hash->count++;
-
-  return 0;
-  
- free_key_data:
-  if (hash->copykey)
-    free(cell->key.data);
- free:
-  free(cell);
- err:
-  return -1;
-}
-
-LIBETPAN_EXPORT
-int chash_delete(chash * hash, chashdatum * key, chashdatum * oldvalue)
-{
-  /*  chashdatum result = { NULL, TRUE }; */
-  unsigned int func, indx;
-  chashiter * iter, * old;
-
-  /*  
-  if (!keylen)
-    keylen = strlen(key) + 1;  
-  */
-
-  func = chash_func(key->data, key->len);
-  indx = func % hash->size;
-
-  /* look for the key in existing cells */
-  old = NULL;
-  iter = hash->cells[indx];
-  while (iter) {
-    if (iter->key.len == key->len && iter->func == func
-	&& !memcmp(iter->key.data, key->data, key->len)) {
-      /* found, deleting */
-      if (old)
-	old->next = iter->next;
-      else
-	hash->cells[indx] = iter->next;
-      if (hash->copykey)
-	free(iter->key.data);
-      if (hash->copyvalue)
-	free(iter->value.data);
-      else {
-	if (oldvalue != NULL) {
-	  oldvalue->data = iter->value.data;
-	  oldvalue->len = iter->value.len;
-	}
-      }
-      free(iter);
-      hash->count--;
-      return 0;
-    }
-    old = iter;
-    iter = iter->next;
-  }
-
-  return -1; /* not found */
-}
-
-LIBETPAN_EXPORT
-void chash_free(chash * hash) {
-  unsigned int indx;
-  chashiter * iter, * next;
-
-  /* browse the hash table */
-  for(indx = 0; indx < hash->size; indx++) {
-    iter = hash->cells[indx];
-    while (iter) {
-      next = iter->next;
-      if (hash->copykey)
-	free(iter->key.data);
-      if (hash->copyvalue)
-	free(iter->value.data);
-      free(iter);
-      iter = next;
-    }
-  }
-  free(hash->cells);
-  free(hash);
-}
-
-LIBETPAN_EXPORT
-void chash_clear(chash * hash) {
-  unsigned int indx;
-  chashiter * iter, * next;
-
-  /* browse the hash table */
-  for(indx = 0; indx < hash->size; indx++) {
-    iter = hash->cells[indx];
-    while (iter) {
-      next = iter->next;
-      if (hash->copykey)
-	free(iter->key.data);
-      if (hash->copyvalue)
-	free(iter->value.data);
-      free(iter);
-      iter = next;
-    }
-  }
-  memset(hash->cells, 0, hash->size * sizeof(* hash->cells));
-  hash->count = 0;
-}
-
-LIBETPAN_EXPORT
-chashiter * chash_begin(chash * hash) {
-  chashiter * iter;
-  unsigned int indx = 0;
-  
-  iter = hash->cells[0];
-  while(!iter) {
-    indx++;
-    if (indx >= hash->size)
-      return NULL;
-    iter = hash->cells[indx];
-  }
-  return iter;
-}
-
-LIBETPAN_EXPORT
-chashiter * chash_next(chash * hash, chashiter * iter) {
-  unsigned int indx;
-
-  if (!iter)
-    return NULL;
-
-  indx = iter->func % hash->size;
-  iter = iter->next;
-
-  while(!iter) {
-    indx++;
-    if (indx >= hash->size)
-      return NULL;
-    iter = hash->cells[indx];
-  }
-  return iter;
-}
-
-LIBETPAN_EXPORT
-int chash_resize(chash * hash, unsigned int size)
-{
-  struct chashcell ** cells;
-  unsigned int indx, nindx;
-  chashiter * iter, * next;
-  
-  if (hash->size == size)
-    return 0;
-
-  cells = (struct chashcell **) calloc(size, sizeof(struct chashcell *));
-  if (!cells)
-    return -1;
-
-  /* browse initial hash and copy items in second hash */
-  for(indx = 0; indx < hash->size; indx++) {
-    iter = hash->cells[indx];
-    while (iter) {
-      next = iter->next;
-      nindx = iter->func % size;
-      iter->next = cells[nindx];
-      cells[nindx] = iter;
-      iter = next;
-    }
-  }
-  free(hash->cells);
-  hash->size = size;
-  hash->cells = cells;
-
-  return 0;
-}
-
-#ifdef NO_MACROS
-LIBETPAN_EXPORT
-unsigned int chash_count(chash * hash) {
-  return hash->count;
-}
-
-LIBETPAN_EXPORT
-unsigned int chash_size(chash * hash) {
-  return hash->size;
-}
-
-LIBETPAN_EXPORT
-void chash_value(chashiter * iter, chashdatum * result) {
-  * result = iter->value;
-}
-
-LIBETPAN_EXPORT
-void chash_key(chashiter * iter, chashdatum * result) {
-  * result = iter->key;
-}
-#endif

+ 0 - 191
deltachat-ios/libraries/libetpan/src/data-types/chash.h

@@ -1,191 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * chash - Implements generic hash tables.
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: chash.h,v 1.16 2010/11/16 20:46:35 hoa Exp $
- */
-
-#ifndef CHASH_H
-#define CHASH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef LIBETPAN_CONFIG_H
-#	include <libetpan/libetpan-config.h>
-#endif
-
-typedef struct {
-  void * data;
-  unsigned int len;
-} chashdatum;
-
-struct chash {
-  unsigned int size;
-  unsigned int count;
-  int copyvalue;
-  int copykey;
-  struct chashcell ** cells; 
-};
-
-typedef struct chash chash;
-
-struct chashcell {
-  unsigned int func;
-  chashdatum key;
-  chashdatum value;
-  struct chashcell * next;
-};
-
-typedef struct chashcell chashiter;
-
-#define CHASH_COPYNONE    0
-#define CHASH_COPYKEY     1
-#define CHASH_COPYVALUE   2
-#define CHASH_COPYALL     (CHASH_COPYKEY | CHASH_COPYVALUE)
-
-#define CHASH_DEFAULTSIZE 13
-  
-/* Allocates a new (empty) hash using this initial size and the given flags,
-   specifying which data should be copied in the hash.
-    CHASH_COPYNONE  : Keys/Values are not copied.
-    CHASH_COPYKEY   : Keys are dupped and freed as needed in the hash.
-    CHASH_COPYVALUE : Values are dupped and freed as needed in the hash.
-    CHASH_COPYALL   : Both keys and values are dupped in the hash.
- */
-LIBETPAN_EXPORT
-chash * chash_new(unsigned int size, int flags);
-
-/* Frees a hash */
-LIBETPAN_EXPORT
-void chash_free(chash * hash);
-
-/* Removes all elements from a hash */
-LIBETPAN_EXPORT
-void chash_clear(chash * hash);
-
-/* Adds an entry in the hash table.
-   Length can be 0 if key/value are strings.
-   If an entry already exists for this key, it is replaced, and its value
-   is returned. Otherwise, the data pointer will be NULL and the length
-   field be set to TRUE or FALSe to indicate success or failure. */
-LIBETPAN_EXPORT
-int chash_set(chash * hash,
-	      chashdatum * key,
-	      chashdatum * value,
-	      chashdatum * oldvalue);
-
-/* Retrieves the data associated to the key if it is found in the hash table.
-   The data pointer and the length will be NULL if not found*/
-LIBETPAN_EXPORT
-int chash_get(chash * hash,
-	      chashdatum * key, chashdatum * result);
-
-/* Removes the entry associated to this key if it is found in the hash table,
-   and returns its contents if not dupped (otherwise, pointer will be NULL
-   and len TRUE). If entry is not found both pointer and len will be NULL. */
-LIBETPAN_EXPORT
-int chash_delete(chash * hash,
-		 chashdatum * key,
-		 chashdatum * oldvalue);
-
-/* Resizes the hash table to the passed size. */
-LIBETPAN_EXPORT
-int chash_resize(chash * hash, unsigned int size);
-
-/* Returns an iterator to the first non-empty entry of the hash table */
-LIBETPAN_EXPORT
-chashiter * chash_begin(chash * hash);
-
-/* Returns the next non-empty entry of the hash table */
-LIBETPAN_EXPORT
-chashiter * chash_next(chash * hash, chashiter * iter);
-
-/* Some of the following routines can be implemented as macros to
-   be faster. If you don't want it, define NO_MACROS */
-#ifdef NO_MACROS
-/* Returns the size of the hash table */
-LIBETPAN_EXPORT
-unsigned int          chash_size(chash * hash);
-
-/* Returns the number of entries in the hash table */
-LIBETPAN_EXPORT
-unsigned int          chash_count(chash * hash);
-
-/* Returns the key part of the entry pointed by the iterator */
-LIBETPAN_EXPORT
-void chash_key(chashiter * iter, chashdatum * result);
-
-/* Returns the value part of the entry pointed by the iterator */
-LIBETPAN_EXPORT
-void chash_value(chashiter * iter, chashdatum * result);
-
-#else
-
-#ifndef INLINE
-#ifdef _MSC_VER
-#define INLINE __inline
-#else
-#define INLINE inline
-#endif
-#endif
-
-static INLINE unsigned int chash_size(chash * hash)
-{
-  return hash->size;
-}
-
-static INLINE unsigned int chash_count(chash * hash)
-{
-  return hash->count;
-}
-
-static INLINE void chash_key(chashiter * iter, chashdatum * result)
-{
-  * result = iter->key;
-}
-
-static INLINE void chash_value(chashiter * iter, chashdatum * result)
-{
-  * result = iter->value;
-}
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 273
deltachat-ios/libraries/libetpan/src/data-types/clist.c

@@ -1,273 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * clist - Implements simple generic double-linked pointer lists
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: clist.c,v 1.11 2008/02/20 22:15:50 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include <stdlib.h>
-#ifndef LIBETPAN_CONFIG_H
-#	include "libetpan-config.h"
-#endif
-
-#include "clist.h"
-
-clist * clist_new(void) {
-  clist * lst;
-  
-  lst = (clist *) malloc(sizeof(clist));
-  if (!lst) return NULL;
-  
-  lst->first = lst->last = NULL;
-  lst->count = 0;
-  
-  return lst;
-}
-
-void clist_free(clist * lst) {
-  clistcell * l1, * l2;
-
-  l1 = lst->first;
-  while (l1) {
-    l2 = l1->next;
-    free(l1);
-    l1 = l2;
-  }
-
-  free(lst);
-}
-
-#ifdef NO_MACROS
-int clist_isempty(clist * lst) {
-  return ((lst->first==lst->last) && (lst->last==NULL));
-}
-
-clistiter * clist_begin(clist * lst) {
-  return lst->first;
-}
-
-clistiter * clist_end(clist * lst) {
-  return lst->last;
-}
-
-clistiter * clist_next(clistiter * iter) {
-  if (iter)
-    return iter->next;
-  else
-    return NULL;
-}
-
-clistiter * clist_previous(clistiter * iter) {
-  if (iter)
-    return iter->previous;
-  else
-    return NULL;
-}
-
-void * clist_content(clistiter * iter) {
-  if (iter)
-    return iter->data;
-  else
-    return NULL;
-}
-
-int clist_count(clist * lst) {
-  return lst->count;
-}
-
-int clist_prepend(clist * lst, void * data) {
-  return clist_insert_before(lst, lst->first, data);
-}
-
-int clist_append(clist * lst, void * data) {
-  return clist_insert_after(lst, lst->last, data);
-}
-#endif
-
-int clist_insert_before(clist * lst, clistiter * iter, void * data) {
-  clistcell * c;
-
-  c = (clistcell *) malloc(sizeof(clistcell));
-  if (!c) return -1;
-
-  c->data = data;
-  lst->count++;
-  
-  if (clist_isempty(lst)) {
-    c->previous = c->next = NULL;
-    lst->first = lst->last = c;
-    return 0;
-  }
-  
-  if (!iter) {
-    c->previous = lst->last;
-    c->previous->next = c;
-    c->next = NULL;
-    lst->last = c;
-    return 0;
-  }
-
-  c->previous = iter->previous;
-  c->next = iter;
-  c->next->previous = c;
-  if (c->previous)
-    c->previous->next = c;
-  else
-    lst->first = c;
-
-  return 0;
-}
-
-int clist_insert_after(clist * lst, clistiter * iter, void * data) {
-  clistcell * c;
-
-  c = (clistcell *) malloc(sizeof(clistcell));
-  if (!c) return -1;
-
-  c->data = data;
-  lst->count++;
-  
-  if (clist_isempty(lst)) {
-    c->previous = c->next = NULL;
-    lst->first = lst->last = c;
-    return 0;
-  }
-  
-  if (!iter) {
-    c->previous = lst->last;
-    c->previous->next = c;
-    c->next = NULL;
-    lst->last = c;
-    return 0;
-  }
-
-  c->previous = iter;
-  c->next = iter->next;
-  if (c->next)
-    c->next->previous = c;
-  else
-    lst->last = c;
-  c->previous->next = c;
-
-  return 0;
-}
-
-clistiter * clist_delete(clist * lst, clistiter * iter) {
-  clistiter * ret;
-  
-  if (!iter) return NULL;
-
-  if (iter->previous) 
-    iter->previous->next = iter->next;
-  else
-    lst->first = iter->next;
-
-  if (iter->next) {
-    iter->next->previous = iter->previous;
-    ret = iter->next;
-  }  else {
-    lst->last = iter->previous;
-    ret = NULL;
-  }
-
-  free(iter);
-  lst->count--;
-  
-  return ret;
-}
-
-
-
-void clist_foreach(clist * lst, clist_func func, void * data)
-{
-  clistiter * cur;
-
-  for(cur = clist_begin(lst) ; cur != NULL ; cur = cur->next)
-    func(cur->data, data);
-}
-
-void clist_concat(clist * dest, clist * src)
-{
-  if (src->first == NULL) {
-    /* do nothing */
-  }
-  else if (dest->last == NULL) {
-    dest->first = src->first;
-    dest->last = src->last;
-  }
-  else {
-    dest->last->next = src->first;
-    src->first->previous = dest->last;
-    dest->last = src->last;
-  }
-  
-  dest->count += src->count;
-  src->last = src->first = NULL;
-}
-
-static inline clistiter * internal_clist_nth(clist * lst, int indx)
-{
-  clistiter * cur;
-
-  cur = clist_begin(lst);
-  while ((indx > 0) && (cur != NULL)) {
-    cur = cur->next;
-    indx --;
-  }
-
-  if (cur == NULL)
-    return NULL;
-
-  return cur;
-}
-
-void * clist_nth_data(clist * lst, int indx)
-{
-  clistiter * cur;
-
-  cur = internal_clist_nth(lst, indx);
-  if (cur == NULL)
-    return NULL;
-  
-  return cur->data;
-}
-
-clistiter * clist_nth(clist * lst, int indx)
-{
-  return internal_clist_nth(lst, indx);
-}

+ 0 - 146
deltachat-ios/libraries/libetpan/src/data-types/clist.h

@@ -1,146 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * clist - Implements simple generic double-linked pointer lists
- *
- * Copyright (c) 1999-2005, Gaël Roualland <gael.roualland@iname.com>
- * interface changes - 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: clist.h,v 1.13 2011/05/09 21:49:46 hoa Exp $
- */
-
-#ifndef CLIST_H
-#define CLIST_H
-
-#ifndef LIBETPAN_CONFIG_H
-#       include <libetpan/libetpan-config.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct clistcell_s {
-  void * data;
-  struct clistcell_s * previous;
-  struct clistcell_s * next;
-} clistcell;
-
-struct clist_s {
-  clistcell * first;
-  clistcell * last;
-  int count;
-};
-
-typedef struct clist_s clist;
-typedef clistcell clistiter;
-
-/* Allocate a new pointer list */
-LIBETPAN_EXPORT
-clist *      clist_new(void);
-
-/* Destroys a list. Data pointed by data pointers is NOT freed. */
-LIBETPAN_EXPORT
-void        clist_free(clist *);
-
-/* Some of the following routines can be implemented as macros to
-   be faster. If you don't want it, define NO_MACROS */
-#ifdef NO_MACROS
-
-/* Returns TRUE if list is empty */
-int         clist_isempty(clist *);
-
-/* Returns the number of elements in the list */
-int         clist_count(clist *);
-
-/* Returns an iterator to the first element of the list */
-clistiter *   clist_begin(clist *);
-
-/* Returns an iterator to the last element of the list */
-clistiter *   clist_end(clist *);
-
-/* Returns an iterator to the next element of the list */
-clistiter *   clist_next(clistiter *);
-
-/* Returns an iterator to the previous element of the list */
-clistiter *   clist_previous(clistiter *);
-
-/* Returns the data pointer of this element of the list */
-void*       clist_content(clistiter *);
-
-/* Inserts this data pointer at the beginning of the list */
-int         clist_prepend(clist *, void *);
-
-/* Inserts this data pointer at the end of the list */
-int         clist_append(clist *, void *);
-#else
-#define     clist_isempty(lst)             (((lst)->first==(lst)->last) && ((lst)->last==NULL))
-#define     clist_count(lst)               ((lst)->count)
-#define     clist_begin(lst)               ((lst)->first)
-#define     clist_end(lst)                 ((lst)->last)
-#define     clist_next(iter)               (iter ? (iter)->next : NULL)
-#define     clist_previous(iter)           (iter ? (iter)->previous : NULL)
-#define     clist_content(iter)            (iter ? (iter)->data : NULL)
-#define     clist_prepend(lst, data)  (clist_insert_before(lst, (lst)->first, data))
-#define     clist_append(lst, data)   (clist_insert_after(lst, (lst)->last, data))
-#endif
-
-/* Inserts this data pointer before the element pointed by the iterator */
-LIBETPAN_EXPORT
-int         clist_insert_before(clist *, clistiter *, void *);
-
-/* Inserts this data pointer after the element pointed by the iterator */
-LIBETPAN_EXPORT
-int         clist_insert_after(clist *, clistiter *, void *);
-
-/* Deletes the element pointed by the iterator.
-   Returns an iterator to the next element. */
-LIBETPAN_EXPORT
-clistiter *   clist_delete(clist *, clistiter *);
-
-typedef void (* clist_func)(void *, void *);
-
-LIBETPAN_EXPORT
-void clist_foreach(clist * lst, clist_func func, void * data);
-
-LIBETPAN_EXPORT
-void clist_concat(clist * dest, clist * src);
-
-LIBETPAN_EXPORT
-void * clist_nth_data(clist * lst, int indx);
-
-LIBETPAN_EXPORT
-clistiter * clist_nth(clist * lst, int indx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 383
deltachat-ios/libraries/libetpan/src/data-types/connect.c

@@ -1,383 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: connect.c,v 1.29 2011/02/27 01:11:50 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "connect.h"
-
-#include "mailstream.h"
-
-#include <sys/types.h>
-#include <string.h>
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-
-#ifdef WIN32
-#	include "win_etpan.h"
-#else
-#	include <netdb.h>
-#	include <netinet/in.h>
-#	include <sys/socket.h>
-#	ifdef HAVE_SYS_POLL_H
-#		include <sys/poll.h>
-#	endif
-#	include <unistd.h>
-#	include <arpa/inet.h>
-#endif
-
-uint16_t mail_get_service_port(const char * name, char * protocol)
-{
-  struct servent * service;
-
-  service = getservbyname(name, protocol);
-
-  if (service == NULL)
-    return 0;
-
-  return ntohs(service->s_port);
-}
-
-static int prepare_fd(int fd)
-{
-#ifndef WIN32
-  int fd_flags;
-  int r;
-  
-  fd_flags = fcntl(fd, F_GETFL, 0);
-  fd_flags |= O_NDELAY;
-  r = fcntl(fd, F_SETFL, fd_flags);
-  if (r < 0)
-    return -1;
-#endif
-  
-  return 0;
-}
-
-#ifdef HAVE_IPV6
-static int verify_sock_errors(int s)
-{
-  socklen_t len;
-  int val;
-  len = sizeof(val);
-  if (getsockopt(s, SOL_SOCKET, SO_ERROR, &val, &len) < 0) {
-    return -1;
-  } else if (val != 0) {
-    return -1;
-  }
-  return 0;
-}
-#endif
-
-static int wait_connect(int s, int r, time_t timeout_seconds)
-{
-#if defined(WIN32) || !USE_POLL
-  fd_set fds;
-#else
-  struct pollfd pfd;
-#endif // WIN32
-  struct timeval timeout;
-  
-  if (r == 0) {
-    /* connected immediately */
-    return 0;
-  }
-  else if (r == -1) {
-    if (errno == EINPROGRESS) {
-      /* select */
-    }
-    else {
-      return -1;
-    }
-  }
-  
-  if (timeout_seconds == 0) {
-		timeout = mailstream_network_delay;
-	}
-	else {
-		timeout.tv_sec = timeout_seconds;
-		timeout.tv_usec = 0;
-	}
-  
-#if defined(WIN32) || !USE_POLL
-  FD_ZERO(&fds);
-  FD_SET(s, &fds);
-  /* TODO: how to cancel this ? -> could be cancelled using a cancel fd */
-  r = select(s + 1, NULL, &fds, NULL, &timeout);
-  if (r <= 0) {
-    return -1;
-  }
-  
-  if (!FD_ISSET(s, &fds)) {
-    /* though, it's strange */
-    return -1;
-  }
-#else
-  pfd.fd = s;
-  pfd.events = POLLOUT;
-  pfd.revents = 0;
-  
-  r = poll(&pfd, 1, timeout.tv_sec * 1000 + timeout.tv_usec / 1000);
-  if (r <= 0) {
-    return -1;
-  }
-  
-  if (pfd.revents & POLLOUT != POLLOUT) {
-    return -1;
-  }
-#endif
-
-  return 0;
-}
-
-int mail_tcp_connect(const char * server, uint16_t port)
-{
-  return mail_tcp_connect_with_local_address(server, port, NULL, 0);
-}
-
-int mail_tcp_connect_timeout(const char * server, uint16_t port, time_t timeout)
-{
-  return mail_tcp_connect_with_local_address_timeout(server, port, NULL, 0, timeout);
-}
-
-int mail_tcp_connect_with_local_address(const char * server, uint16_t port,
-    const char * local_address, uint16_t local_port)
-{
-	return mail_tcp_connect_with_local_address_timeout(server, port, local_address, local_port, 0);
-}
-
-#ifndef WIN32
-#include <sys/un.h>
-int mail_unix_connect_socket(const char *path)
-{
- struct sockaddr_un sa;
- int s;
-
- if (sizeof(sa.sun_path) <= strlen(path)) {
-    return -1;
- }
-
- if (!(memcpy(sa.sun_path, path, sizeof(sa.sun_path)))) {
-    return -1;
- }
- sa.sun_family = AF_UNIX;
-
-
- if (0 > (s = socket(AF_UNIX, SOCK_STREAM, 0)))
-    return -1;
-
- if (prepare_fd(s))
-    goto close_socket;
- if (connect(s, (struct sockaddr *) &sa, sizeof(struct sockaddr_un)))
-    goto close_socket;
- return s;
-
-close_socket:
- close(s);
- return -1;
-}
-#endif
-
-int mail_tcp_connect_with_local_address_timeout(const char * server, uint16_t port,
-    const char * local_address, uint16_t local_port, time_t timeout)
-{
-#ifndef HAVE_IPV6
-  struct hostent * remotehost;
-  struct sockaddr_in sa;
-#else /* HAVE_IPV6 */
-  struct addrinfo hints, *res, *ai;
-  struct addrinfo la_hints;
-  char port_str[6];
-#endif
-#ifdef WIN32
-  SOCKET s;
-  long r;
-#else
-  int s;
-  int r;
-
-  if ('/' == server[0])
-    return mail_unix_connect_socket(server);
-#endif
-
-#ifndef HAVE_IPV6
-  s = socket(PF_INET, SOCK_STREAM, 0);
-  if (s == -1)
-    goto err;
-
-  if ((local_address != NULL) || (local_port != 0)) {
-    struct sockaddr_in la;
-    
-    la.sin_family = AF_INET;
-    la.sin_port = htons(local_port);
-    if (local_address == NULL) {
-      la.sin_addr.s_addr = htonl(INADDR_ANY);
-    }
-    r = inet_aton(local_address, &la.sin_addr);
-    if (r == 0)
-      goto close_socket;
-    r = bind(s, (struct sockaddr *) &la, sizeof(struct sockaddr_in));
-    if (r == -1)
-      goto close_socket;
-  }
-  
-  remotehost = gethostbyname(server);
-  if (remotehost == NULL)
-    goto close_socket;
-
-  sa.sin_family = AF_INET;
-  sa.sin_port = htons(port);
-  memcpy(&sa.sin_addr, remotehost->h_addr, remotehost->h_length);
-  
-  r = prepare_fd(s);
-  if (r == -1) {
-    goto close_socket;
-  }
-  
-  r = connect(s, (struct sockaddr *) &sa, sizeof(struct sockaddr_in));
-  r = wait_connect(s, r, timeout);
-  if (r == -1) {
-    goto close_socket;
-  }
-#else /* HAVE_IPV6 */
-  memset(&hints, 0, sizeof(hints));
-  hints.ai_family = AF_UNSPEC;
-  hints.ai_socktype = SOCK_STREAM;
-  hints.ai_protocol = IPPROTO_TCP;
-  
-  memset(&la_hints, 0, sizeof(la_hints));
-  la_hints.ai_family = AF_UNSPEC;
-  la_hints.ai_socktype = SOCK_STREAM;
-  la_hints.ai_flags = AI_PASSIVE;
-  
-  /* convert port from integer to string. */
-  snprintf(port_str, sizeof(port_str), "%d", port);
-  
-  res = NULL;
-  if (getaddrinfo(server, port_str, &hints, &res) != 0)
-    goto err;
-
-  s = -1;
-  for (ai = res; ai != NULL; ai = ai->ai_next) {
-    s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
-
-    if (s == -1)
-      continue;
-    
-    // Christopher Lyon Anderson - prevent SigPipe
-#ifdef SO_NOSIGPIPE
-    int kOne = 1;
-    int err = setsockopt(s, SOL_SOCKET, SO_NOSIGPIPE, &kOne, sizeof(kOne));
-    if (err != 0)
-        continue;
-#endif
-
-    if ((local_address != NULL) || (local_port != 0)) {
-      char local_port_str[6];
-      char * p_local_port_str;
-      struct addrinfo * la_res;
-      
-      if (local_port != 0) {
-        snprintf(local_port_str, sizeof(local_port_str), "%d", local_port);
-        p_local_port_str = local_port_str;
-      }
-      else {
-        p_local_port_str = NULL;
-      }
-      la_res = NULL;
-      r = getaddrinfo(local_address, p_local_port_str, &la_hints, &la_res);
-      if (r != 0)
-        goto close_socket;
-      r = bind(s, (struct sockaddr *) la_res->ai_addr, la_res->ai_addrlen);
-      if (la_res != NULL)
-        freeaddrinfo(la_res);
-      if (r == -1)
-        goto close_socket;
-    }
-    
-    r = prepare_fd(s);
-    if (r == -1) {
-      goto close_socket;
-    }
-    
-    r = connect(s, ai->ai_addr, ai->ai_addrlen);
-    r = wait_connect(s, r, timeout);
-    
-    if (r != -1) {
-      r = verify_sock_errors(s);
-    }
-
-    if (r == -1) {
-      if (ai->ai_next) {
-#ifdef WIN32
-	  closesocket(s);
-#else
-	  close(s);
-#endif
-	  continue;
-      } else {
-        goto close_socket;
-      }
-    }
-    /* if we're here, we're good */
-    break;
-  }
-  
-  if (res != NULL)
-    freeaddrinfo(res);
-
-  if (ai == NULL)
-    goto err;
-#endif
-  return s;
-  
- close_socket:
-#ifdef HAVE_IPV6
-  if (res != NULL)
-    freeaddrinfo(res);
-#endif
-#ifdef WIN32
-  closesocket(s);
-#else
-  close(s);
-#endif
- err:
-  return -1;
-}

+ 0 - 62
deltachat-ios/libraries/libetpan/src/data-types/connect.h

@@ -1,62 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: connect.h,v 1.16 2007/06/30 12:58:21 hoa Exp $
- */
-
-#ifndef CONNECT_H
-
-#define CONNECT_H
-
-#ifdef HAVE_INTTYPES_H
-#	include <inttypes.h>
-#endif
-#include <time.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-uint16_t mail_get_service_port(const char * name, char * protocol);
-int mail_tcp_connect(const char * server, uint16_t port);
-int mail_tcp_connect_timeout(const char * server, uint16_t port, time_t timeout);
-int mail_tcp_connect_with_local_address(const char * server, uint16_t port,
-    const char * local_address, uint16_t local_port);
-int mail_tcp_connect_with_local_address_timeout(const char * server, uint16_t port,
-    const char * local_address, uint16_t local_port, time_t timeout);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-

+ 0 - 94
deltachat-ios/libraries/libetpan/src/data-types/hmac-md5.h

@@ -1,94 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* hmac-md5.h -- HMAC_MD5 functions
- */
-
-/*
- * $Id: hmac-md5.h,v 1.4 2004/11/21 21:53:31 hoa Exp $
- */
-
-#ifndef HMAC_MD5_H
-#define HMAC_MD5_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define HMAC_MD5_SIZE 16
-
-/* intermediate MD5 context */
-typedef struct HMAC_MD5_CTX_s {
-    MD5_CTX ictx, octx;
-} HMAC_MD5_CTX;
-
-/* intermediate HMAC state
- *  values stored in network byte order (Big Endian)
- */
-typedef struct HMAC_MD5_STATE_s {
-    UINT4 istate[4];
-    UINT4 ostate[4];
-} HMAC_MD5_STATE;
-
-/* One step hmac computation
- *
- * digest may be same as text or key
- */
-void hmac_md5(const unsigned char *text, int text_len,
-	      const unsigned char *key, int key_len,
-	      unsigned char digest[HMAC_MD5_SIZE]);
-
-/* create context from key
- */
-void hmac_md5_init(HMAC_MD5_CTX *hmac,
-		   const unsigned char *key, int key_len);
-
-/* precalculate intermediate state from key
- */
-void hmac_md5_precalc(HMAC_MD5_STATE *hmac,
-		      const unsigned char *key, int key_len);
-
-/* initialize context from intermediate state
- */
-void hmac_md5_import(HMAC_MD5_CTX *hmac, HMAC_MD5_STATE *state);
-
-#define hmac_md5_update(hmac, text, text_len) MD5Update(&(hmac)->ictx, (text), (text_len))
-
-/* finish hmac from intermediate result.  Intermediate result is zeroed.
- */
-void hmac_md5_final(unsigned char digest[HMAC_MD5_SIZE],
-		    HMAC_MD5_CTX *hmac);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* HMAC_MD5_H */

+ 0 - 56
deltachat-ios/libraries/libetpan/src/data-types/mail.h

@@ -1,56 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mail.h,v 1.8 2004/11/21 21:53:31 hoa Exp $
- */
-
-#ifndef MAIL_H
-
-#define MAIL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 500
deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db.c

@@ -1,500 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mail_cache_db.c,v 1.20 2006/05/22 13:39:40 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "mail_cache_db.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libetpan-config.h"
-
-#include "maillock.h"
-
-#if DBVERS >= 1
-#include <db.h>
-#endif
-
-#if DBVERS >= 1
-static struct mail_cache_db * mail_cache_db_new(DB * db)
-{
-  struct mail_cache_db * cache_db;
-  
-  cache_db = malloc(sizeof(* cache_db));
-  if (cache_db == NULL)
-    return NULL;
-  cache_db->internal_database = db;
-  
-  return cache_db;
-}
-
-static void mail_cache_db_free(struct mail_cache_db * cache_db)
-{
-  free(cache_db);
-}
-#endif
-
-int mail_cache_db_open(const char * filename,
-    struct mail_cache_db ** pcache_db)
-{
-#if DBVERS >= 1
-  DB * dbp;
-#if DBVERS > 1
-  int r;
-#endif
-  struct mail_cache_db * cache_db;
-
-#if DB_VERSION_MAJOR >= 3
-  r = db_create(&dbp, NULL, 0);
-  if (r != 0)
-    goto err;
-
-#if (DB_VERSION_MAJOR >= 4) && ((DB_VERSION_MAJOR > 4) || (DB_VERSION_MINOR >= 1))
-  r = dbp->open(dbp, NULL, filename, NULL, DB_BTREE, DB_CREATE,
-      S_IRUSR | S_IWUSR);
-#else
-  r = dbp->open(dbp, filename, NULL, DB_BTREE, DB_CREATE, S_IRUSR | S_IWUSR);
-#endif
-  if (r != 0)
-    goto close_db;
-#else
-#if DBVERS > 1  
-  r = db_open(filename, DB_BTREE, DB_CREATE, S_IRUSR | S_IWUSR,
-      NULL, NULL, &dbp);
-  if (r != 0)
-    goto err;
-#elif DBVERS == 1
-  dbp = dbopen(filename, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR, DB_BTREE, NULL);
-  if (dbp == NULL)
-    goto err;
-#else
-  goto err;
-#endif  
-#endif
-
-  cache_db = mail_cache_db_new(dbp);
-  if (cache_db == NULL)
-    goto close_db;
-  
-  * pcache_db = cache_db;
-
-  return 0;
-
- close_db:
-#if DBVERS > 1  
-  dbp->close(dbp, 0);
-#elif DBVERS == 1
-  dbp->close(dbp);
-#endif
- err:
-  return -1;
-#else
-  return -1;
-#endif
-}
-
-void mail_cache_db_close(struct mail_cache_db * cache_db)
-{
-#if DBVERS >= 1
-  DB * dbp;
-
-  dbp = cache_db->internal_database;
-
-#if DBVERS > 1  
-  dbp->close(cache_db->internal_database, 0);
-#elif DBVERS == 1
-  dbp->close(cache_db->internal_database);
-#endif
-  
-  mail_cache_db_free(cache_db);
-#endif
-}
-
-int mail_cache_db_open_lock(const char * filename,
-    struct mail_cache_db ** pcache_db)
-{
-  int r;
-  struct mail_cache_db * cache_db;
-  
-  r = maillock_write_lock(filename, -1);
-  if (r < 0)
-    goto err;
-
-  r = mail_cache_db_open(filename, &cache_db);
-  if (r < 0)
-    goto unlock;
-  
-  * pcache_db = cache_db;
-
-  return 0;
-
- unlock:
-  maillock_write_unlock(filename, -1);
- err:
-  return -1;
-}
-
-void mail_cache_db_close_unlock(const char * filename,
-    struct mail_cache_db * cache_db)
-{
-  mail_cache_db_close(cache_db);
-  maillock_write_unlock(filename, -1);
-}
-
-
-int mail_cache_db_put(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, const void * value, size_t value_len)
-{
-#if DBVERS >= 1
-  int r;
-  DBT db_key;
-  DBT db_data;
-  DB * dbp;
-  
-  dbp = cache_db->internal_database;
-
-  memset(&db_key, 0, sizeof(db_key));
-  memset(&db_data, 0, sizeof(db_data));
-  db_key.data = (void *) key;
-  db_key.size = key_len;
-  db_data.data = (void *) value;
-  db_data.size = value_len;
-  
-#if DBVERS > 1  
-  r = dbp->put(dbp, NULL, &db_key, &db_data, 0);
-#elif DBVERS == 1
-  r = dbp->put(dbp, &db_key, &db_data, 0);
-#else
-  r = -1;
-#endif
-  if (r != 0)
-    return -1;
-  
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-int mail_cache_db_get(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, void ** pvalue, size_t * pvalue_len)
-{
-#if DBVERS >= 1
-  int r;
-  DBT db_key;
-  DBT db_data;
-  DB * dbp;
-  
-  dbp = cache_db->internal_database;
-  
-  memset(&db_key, 0, sizeof(db_key));
-  memset(&db_data, 0, sizeof(db_data));
-  db_key.data = (void *) key;
-  db_key.size = key_len;
-  
-#if DBVERS > 1  
-  r = dbp->get(dbp, NULL, &db_key, &db_data, 0);
-#elif DBVERS == 1
-  r = dbp->get(dbp, &db_key, &db_data, 0);
-#else
-  r = -1;
-#endif
-  
-  if (r != 0)
-    return -1;
-  
-  * pvalue = db_data.data;
-  * pvalue_len = db_data.size;
-  
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-int mail_cache_db_del(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len)
-{
-#if DBVERS >= 1
-  int r;
-  DBT db_key;
-  DB * dbp;
-  
-  dbp = cache_db->internal_database;
-  
-  memset(&db_key, 0, sizeof(db_key));
-  db_key.data = (void *) key;
-  db_key.size = key_len;
-  
-#if DBVERS > 1  
-  r = dbp->del(dbp, NULL, &db_key, 0);
-#elif DBVERS == 1
-  r = dbp->del(dbp, &db_key, 0);
-#else
-  r = -1;
-#endif
-  if (r != 0)
-    return -1;
-  
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-#if DBVERS > 1  
-int mail_cache_db_clean_up(struct mail_cache_db * cache_db,
-    chash * exist)
-{
-  DB * dbp;
-  int r;
-  DBC * dbcp;
-  DBT db_key;
-  DBT db_data;
-  
-  dbp = cache_db->internal_database;
- 
-#if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 6
-  r = dbp->cursor(dbp, NULL, &dbcp);
-#else
-  r = dbp->cursor(dbp, NULL, &dbcp, 0);
-#endif  
-  if (r != 0)
-    return -1;
-  
-  memset(&db_key, 0, sizeof(db_key));
-  memset(&db_data, 0, sizeof(db_data));
-  
-  while (1) {
-    chashdatum hash_key;
-    chashdatum hash_data;
-    
-    r = dbcp->c_get(dbcp, &db_key, &db_data, DB_NEXT);
-    if (r != 0)
-      break;
-    
-    hash_key.data = db_key.data;
-    hash_key.len = db_key.size;
-
-    r = chash_get(exist, &hash_key, &hash_data);
-    if (r < 0) {
-      r = dbcp->c_del(dbcp, 0);
-      if (r != 0)
-        return -1;
-    }
-  }
-  
-  r = dbcp->c_close(dbcp);
-  if (r != 0)
-    return -1;
-  
-  return 0;
-}
-#elif DBVERS == 1
-int mail_cache_db_clean_up(struct mail_cache_db * cache_db,
-    chash * exist)
-{
-  DB * dbp;
-  int r;
-  DBT db_key;
-  DBT db_data;
-  
-  dbp = cache_db->internal_database;
-  
-  r = dbp->seq(dbp, &db_key, &db_data, R_FIRST);
-  if (r == -1)
-    return -1;
-  
-  while (r == 0) {
-    chashdatum hash_key;
-    chashdatum hash_data;
-    
-    hash_key.data = db_key.data;
-    hash_key.len = (unsigned int) db_key.size;
-
-    r = chash_get(exist, &hash_key, &hash_data);
-    if (r < 0) {
-      r = dbp->del(dbp, &db_key, 0);
-      if (r != 0)
-        return -1;
-    }
-    
-    r = dbp->seq(dbp, &db_key, &db_data, R_NEXT);
-    if (r < 0)
-      return -1;
-  }
-  
-  return 0;
-}
-#else
-int mail_cache_db_clean_up(struct mail_cache_db * cache_db,
-    chash * exist)
-{
-  return -1;
-}
-#endif
-
-int mail_cache_db_get_size(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, size_t * pvalue_len)
-{
-#if DBVERS >= 1
-  int r;
-  DBT db_key;
-  DBT db_data;
-  DB * dbp;
-  
-  dbp = cache_db->internal_database;
-  
-  memset(&db_key, 0, sizeof(db_key));
-  memset(&db_data, 0, sizeof(db_data));
-  db_key.data = (void *) key;
-  db_key.size = key_len;
-#if DBVERS > 1  
-  db_data.flags = DB_DBT_USERMEM;
-  db_data.ulen = 0;
-#endif
-  
-#if DBVERS > 1  
-  r = dbp->get(dbp, NULL, &db_key, &db_data, 0);
-#elif DBVERS == 1
-  r = dbp->get(dbp, &db_key, &db_data, 0);
-#else
-  r = -1;
-#endif
-  
-  if (r != 0)
-    return -1;
-  
-  * pvalue_len = db_data.size;
-  
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-#if DBVERS > 1  
-int mail_cache_db_get_keys(struct mail_cache_db * cache_db,
-    chash * keys)
-{
-  DB * dbp;
-  int r;
-  DBC * dbcp;
-  DBT db_key;
-  DBT db_data;
-  
-  dbp = cache_db->internal_database;
-  
-  r = dbp->cursor(dbp, NULL, &dbcp, 0);
-  if (r != 0)
-    return -1;
-  
-  memset(&db_key, 0, sizeof(db_key));
-  memset(&db_data, 0, sizeof(db_data));
-  
-  while (1) {
-    chashdatum hash_key;
-    chashdatum hash_data;
-    
-    r = dbcp->c_get(dbcp, &db_key, &db_data, DB_NEXT);
-    if (r != 0)
-      break;
-    
-    hash_key.data = db_key.data;
-    hash_key.len = db_key.size;
-    hash_data.data = NULL;
-    hash_data.len = 0;
-    
-    r = chash_set(keys, &hash_key, &hash_data, NULL);
-    if (r < 0) {
-      return -1;
-    }
-  }
-  
-  r = dbcp->c_close(dbcp);
-  if (r != 0)
-    return -1;
-  
-  return 0;
-}
-#elif DBVERS == 1
-int mail_cache_db_get_keys(struct mail_cache_db * cache_db,
-    chash * keys)
-{
-  DB * dbp;
-  int r;
-  DBT db_key;
-  DBT db_data;
-  
-  dbp = cache_db->internal_database;
-  
-  r = dbp->seq(dbp, &db_key, &db_data, R_FIRST);
-  if (r == -1)
-    return -1;
-  
-  while (r == 0) {
-    chashdatum hash_key;
-    chashdatum hash_data;
-    
-    hash_key.data = db_key.data;
-    hash_key.len = (unsigned int) db_key.size;
-    hash_data.data = NULL;
-    hash_data.len = 0;
-    
-    r = chash_set(keys, &hash_key, &hash_data, NULL);
-    if (r < 0) {
-      return -1;
-    }
-    
-    r = dbp->seq(dbp, &db_key, &db_data, R_NEXT);
-    if (r < 0)
-      return -1;
-  }
-  
-  return 0;
-}
-#else
-int mail_cache_db_get_keys(struct mail_cache_db * cache_db,
-    chash * keys)
-{
-  return -1;
-}
-#endif

+ 0 - 158
deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db.h

@@ -1,158 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mail_cache_db.h,v 1.6 2005/04/07 00:05:25 hoa Exp $
- */
-
-#ifndef MAIL_CACHE_DB_H
-
-#define MAIL_CACHE_DB_H
-
-#include <sys/types.h>
-#include "mail_cache_db_types.h"
-#include "chash.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-  this module will handle a database "f(key) -> value" in a file
-  
-  berkeley DB or other can be used for implementation of low-level file.
-*/
-
-/*
-  mail_cache_db_open()
-  
-  This function opens the file "filename".
-  The pointer return in pcache_db should be used for further references
-  to the database.
-*/
-
-int mail_cache_db_open(const char * filename,
-    struct mail_cache_db ** pcache_db);
-
-/*
-  mail_cache_db_close()
-  
-  This function closes the opened database.
-  The pointer cannot be used later.
-*/
-
-void mail_cache_db_close(struct mail_cache_db * cache_db);
-
-/*
-  mail_cache_db_open_lock()
-  
-  This function opens and locks the file "filename".
-  The pointer return in pcache_db should be used for further references
-  to the database.
-*/
-
-int mail_cache_db_open_lock(const char * filename,
-    struct mail_cache_db ** pcache_db);
-
-/*
-  mail_cache_db_open_unlock()
-  
-  This function closes and unlocks the opened database.
-  The pointer cannot be used later.
-*/
-
-void mail_cache_db_close_unlock(const char * filename,
-    struct mail_cache_db * cache_db);
-
-/*
-  mail_cache_db_put()
-  
-  This function will store a given key and value in the database.
-*/
-
-int mail_cache_db_put(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, const void * value, size_t value_len);
-
-/*
-  mail_cache_db_get()
-  
-  This function will retrieve the value corresponding to a given key
-  from the database.
-*/
-
-int mail_cache_db_get(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, void ** pvalue, size_t * pvalue_len);
-
-/*
-  mail_cache_db_get_size()
-  
-  This function will retrieve the size of the value corresponding
-  to a given key from the database.
-*/
-
-int mail_cache_db_get_size(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len, size_t * pvalue_len);
-
-/*
-  mail_cache_db_del()
-
-  This function will delete the given key and the corresponding value
-  from the database.
-*/
-
-int mail_cache_db_del(struct mail_cache_db * cache_db,
-    const void * key, size_t key_len);
-
-/*
-  mail_cache_clean_up()
-
-  This function will delete the key all the key/value pairs of the
-  database file which key does not exist in the given hash.
-*/
-
-int mail_cache_db_clean_up(struct mail_cache_db * cache_db,
-    chash * exist);
-
-/*
-  mail_cache_db_get_keys()
-
-  This function will get all keys of the database and will
-  store them to the given chash.
-*/
-
-int mail_cache_db_get_keys(struct mail_cache_db * cache_db,
-    chash * keys);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 52
deltachat-ios/libraries/libetpan/src/data-types/mail_cache_db_types.h

@@ -1,52 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mail_cache_db_types.h,v 1.2 2004/11/21 21:53:31 hoa Exp $
- */
-
-#ifndef MAIL_CACHE_DB_TYPES_H
-
-#define MAIL_CACHE_DB_TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct mail_cache_db {
-  void * internal_database;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 378
deltachat-ios/libraries/libetpan/src/data-types/maillock.c

@@ -1,378 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: maillock.c,v 1.19 2010/04/05 14:21:35 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "maillock.h"
-
-#include "libetpan-config.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-#	include <unistd.h>
-#endif
-#include <stdio.h>
-#include <time.h>
-#include <string.h>
-#ifdef WIN32
-#	include "win_etpan.h"
-#endif
-#ifdef HAVE_LIBLOCKFILE
-#include <lockfile.h>
-#endif
-
-/* ********************************************************************** */
-
-/* lock primitives */
-
-/* the lock code is modified from the dot lock file code from mail.local.c */
-
-/*
-			     SENDMAIL LICENSE
-
-The following license terms and conditions apply, unless a different
-license is obtained from Sendmail, Inc., 6425 Christie Ave, Fourth Floor,
-Emeryville, CA 94608, or by electronic mail at license@sendmail.com.
-
-License Terms:
-
-Use, Modification and Redistribution (including distribution of any
-modified or derived work) in source and binary forms is permitted only if
-each of the following conditions is met:
-
-1. Redistributions qualify as "freeware" or "Open Source Software" under
-   one of the following terms:
-
-   (a) Redistributions are made at no charge beyond the reasonable cost of
-       materials and delivery.
-
-   (b) Redistributions are accompanied by a copy of the Source Code or by an
-       irrevocable offer to provide a copy of the Source Code for up to three
-       years at the cost of materials and delivery.  Such redistributions
-       must allow further use, modification, and redistribution of the Source
-       Code under substantially the same terms as this license.  For the
-       purposes of redistribution "Source Code" means the complete compilable
-       and linkable source code of sendmail including all modifications.
-
-2. Redistributions of source code must retain the copyright notices as they
-   appear in each source code file, these license terms, and the
-   disclaimer/limitation of liability set forth as paragraph 6 below.
-
-3. Redistributions in binary form must reproduce the Copyright Notice,
-   these license terms, and the disclaimer/limitation of liability set
-   forth as paragraph 6 below, in the documentation and/or other materials
-   provided with the distribution.  For the purposes of binary distribution
-   the "Copyright Notice" refers to the following language:
-   "Copyright (c) 1998-2002 Sendmail, Inc.  All rights reserved."
-
-4. Neither the name of Sendmail, Inc. nor the University of California nor
-   the names of their contributors may be used to endorse or promote
-   products derived from this software without specific prior written
-   permission.  The name "sendmail" is a trademark of Sendmail, Inc.
-
-5. All redistributions must comply with the conditions imposed by the
-   University of California on certain embedded code, whose copyright
-   notice and conditions for redistribution are as follows:
-
-   (a) Copyright (c) 1988, 1993 The Regents of the University of
-       California.  All rights reserved.
-
-   (b) Redistribution and use in source and binary forms, with or without
-       modification, are permitted provided that the following conditions
-       are met:
-
-      (i)   Redistributions of source code must retain the above copyright
-            notice, this list of conditions and the following disclaimer.
-
-      (ii)  Redistributions in binary form must reproduce the above
-            copyright notice, this list of conditions and the following
-            disclaimer in the documentation and/or other materials provided
-            with the distribution.
-
-      (iii) Neither the name of the University nor the names of its
-            contributors may be used to endorse or promote products derived
-            from this software without specific prior written permission.
-
-6. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY
-   SENDMAIL, INC. AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
-   NO EVENT SHALL SENDMAIL, INC., THE REGENTS OF THE UNIVERSITY OF
-   CALIFORNIA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-*/
-
-/*
-  TODO : lock, prefer fcntl() over flock()
-         AND use dotlock code above
-*/
-
-#define LOCKTO_RM	300	/* timeout for stale lockfile removal */
-#define LOCKTO_GLOB	400	/* global timeout for lockfile creation */
-
-#ifdef WIN32
-#	define F_RDLCK	0
-#	define F_WRLCK	1
-#	include <sys/locking.h>
-#endif
-
-static int lock_common(const char * filename, int fd, short locktype)
-{
-#ifdef WIN32
-  time_t start;
-
-  /* SEB try implementation */
-#ifdef SEB_TRY
-  int reslock;
-
-  lseek( fd, 0L, SEEK_SET );
-  reslock = _locking( fd, _LK_NBLCK, LONG_MAX);
-  if (reslock == 0) return 0;
-  if (errno != EACCES) return -1;
-
-  time(&start);
-
-  while (1) {
-    time_t now;
-	sleep( 5);
-	reslock = _locking( fd, _LK_NBLCK, LONG_MAX);
-  if (reslock == 0) return 0;
-  if (errno != EACCES) return -1;
-	time(&now);
-    if (now > start + LOCKTO_GLOB) {
-		return -1;
-#else /* SEB_TRY */
-  if (fd != -1) {
-    lseek( fd, 0L, SEEK_SET );
-    if (_locking( fd, _LK_NBLCK, LONG_MAX) == 0) return 0;
-    
-    time(&start);
-    
-    while (1) {
-      time_t now;
-      sleep( 5);
-      if (_locking( fd, _LK_NBLCK, LONG_MAX) == 0) return 0;
-      time(&now);
-      if (now > start + LOCKTO_GLOB) {
-        return -1;
-      }
-#endif /* SEB_TRY */
-	}
-  }
-  return 0;	/* SEB 20070709 */
-  
-#else /* WIN32 */
-  char lockfilename[PATH_MAX];
-#ifndef HAVE_LIBLOCKFILE
-  struct flock lock;
-  /* dot lock file */
-  int statfailed = 0;
-  time_t start;
-  int r;
-#endif /* HAVE_LIBLOCKFILE */
-  int res;
-
-  /* dot lock file */
-
-  if (strlen(filename) + 6 > PATH_MAX) {
-    res = -1;
-    goto err;
-  }
-
-  snprintf(lockfilename, PATH_MAX, "%s.lock", filename);
-  
-#ifdef HAVE_LIBLOCKFILE
-  return lockfile_create(lockfilename, LOCKTO_GLOB, 0);
-#else
-
-  if (fd != -1) {
-    lock.l_start = 0;
-    lock.l_len = 0;
-    lock.l_pid = getpid();
-    lock.l_type = locktype;
-    lock.l_whence = SEEK_SET;
-
-    r = fcntl(fd, F_SETLKW, &lock);
-    if (r < 0) {
-      /* WARNING POSIX lock could not be applied */
-    }
-  }
-  
-  time(&start);
-  while (1) {
-    int fd2;
-    struct stat st;
-    time_t now;
-    
-    /* global timeout */
-    time(&now);
-    if (now > start + LOCKTO_GLOB) {
-      res = -1;
-      goto unlock;
-    }
-
-    fd2 = open(lockfilename, O_WRONLY|O_EXCL|O_CREAT, 0);
-    if (fd2 >= 0) {
-      /* defeat lock checking programs which test pid */
-      r = (int) write(fd2, "0", 2);
-      close(fd2);
-      break;
-    }
-    
-    /* libEtPan! - adds a delay of 5 seconds between each tries */
-    sleep(5);
-    
-    if (stat(lockfilename, &st) < 0) {
-      if (statfailed++ > 5) {
-	res = -1;
-	goto unlock;
-      }
-      continue;
-    }
-    statfailed = 0;
-    time(&now);
-
-    if (now < st.st_ctime + LOCKTO_RM)
-      continue;
-    
-    /* try to remove stale lockfile */
-    if (unlink(lockfilename) < 0) {
-      res = -1;
-      goto unlock;
-    }
-
-    /*
-      libEtPan! - removes this delay of 5 seconds,
-       maybe it was misplaced ?
-    */
-#if 0
-    sleep(5);
-#endif
-  }
-
-  return 0;
-
- unlock:
-  if (fd != -1) {
-    lock.l_start = 0;
-    lock.l_len = 0;
-    lock.l_pid = getpid();
-    lock.l_type = F_UNLCK;
-    lock.l_whence = SEEK_SET;
-
-    r = fcntl(fd, F_SETLK, &lock);
-    if (r < 0) {
-      /* WARNING POSIX lock could not be applied */
-    }
-  }
-#endif /* HAVE_LIBLOCKFILE */
- err:
-  return res;
-#endif /* WIN32 */
-}
-
-static int unlock_common(const char * filename, int fd)
-{
-/* SEB */
-#ifdef WIN32
-  if (fd != -1) {
-    lseek( fd, 0L, SEEK_SET );
-    _locking( fd, _LK_UNLCK, LONG_MAX);
-  }
-  return 0;
-#else
-  char lockfilename[PATH_MAX];
-#ifndef HAVE_LIBLOCKFILE
-  struct flock lock;
-  int r;
-#endif
-  
-  if (strlen(filename) + 6 > PATH_MAX)
-    return -1;
-
-  snprintf(lockfilename, PATH_MAX, "%s.lock", filename);
-
-#ifdef HAVE_LIBLOCKFILE
-  return lockfile_remove(lockfilename);
-#else
-  
-  unlink(lockfilename);
-
-  if (fd != -1) {
-    lock.l_start = 0;
-    lock.l_len = 0;
-    lock.l_pid = getpid();
-    lock.l_type = F_UNLCK;
-    lock.l_whence = SEEK_SET;
-
-    r = fcntl(fd, F_SETLK, &lock);
-    if (r < 0) {
-      /* WARNING POSIX lock could not be applied */
-    }
-  }
-  
-  return 0;
-#endif
-#endif /* WIN32 */
-}
-
-int maillock_read_lock(const char * filename, int fd)
-{
-  return lock_common(filename, fd, F_RDLCK);
-}
-
-int maillock_read_unlock(const char * filename, int fd)
-{
-  return unlock_common(filename, fd);
-}
-
-int maillock_write_lock(const char * filename, int fd)
-{
-  return lock_common(filename, fd, F_WRLCK);
-}
-
-int maillock_write_unlock(const char * filename, int fd)
-{
-  return unlock_common(filename, fd);
-}

+ 0 - 53
deltachat-ios/libraries/libetpan/src/data-types/maillock.h

@@ -1,53 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: maillock.h,v 1.5 2004/11/21 21:53:31 hoa Exp $
- */
-
-#ifndef MAILLOCK_H
-
-#define MAILLOCK_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int maillock_read_lock(const char * filename, int fd);
-int maillock_read_unlock(const char * filename, int fd);
-int maillock_write_lock(const char * filename, int fd);
-int maillock_write_unlock(const char * filename, int fd);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 143
deltachat-ios/libraries/libetpan/src/data-types/mailsasl.c

@@ -1,143 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2014 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "mailsasl.h"
-
-#ifdef USE_SASL
-
-#ifdef LIBETPAN_REENTRANT
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-#include <pthread.h>
-#elif (defined WIN32)
-#include <windows.h>
-#endif
-#endif
-
-#include <sasl/sasl.h>
-#include <stdlib.h>
-
-#ifdef LIBETPAN_REENTRANT
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-static pthread_mutex_t sasl_lock = PTHREAD_MUTEX_INITIALIZER;
-#elif (defined WIN32)
-static CRITICAL_SECTION sasl_lock = { 0 };
-static int sasl_lock_init_done =  0;
-#endif
-#endif
-
-#ifdef LIBETPAN_REENTRANT
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-#define LOCK_SASL() pthread_mutex_lock(&sasl_lock)
-#define UNLOCK_SASL() pthread_mutex_unlock(&sasl_lock)
-#elif (defined WIN32)
-#define LOCK_SASL() EnterCriticalSection(&sasl_lock)
-#define UNLOCK_SASL() LeaveCriticalSection(&sasl_lock)
-#endif
-#else
-#define LOCK_SASL() do {} while(0)
-#define UNLOCK_SASL() do {} while(0)
-#endif
-
-static int sasl_use_count = 0;
-
-#ifdef LIBETPAN_REENTRANT
-
-void mailsasl_init_lock(){
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-	// nothing to do
-#elif (defined WIN32)
-  static int volatile mainsasl_init_lock_done = 0;
-  if (InterlockedExchange(&mainsasl_init_lock_done, 1) == 0){
-    InitializeCriticalSection(&sasl_lock);
-  }
-#endif
-}
-
-void mailsasl_uninit_lock(){
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-	// nothing to do
-#elif (defined WIN32)
-	static int volatile mainsasl_init_lock_done = 0;
-	if (InterlockedExchange(&mainsasl_init_lock_done, 1) == 0){
-		DeleteCriticalSection(&sasl_lock);
-	}
-#endif
-}
-
-
-#endif
-
-void mailsasl_external_ref(void)
-{
-  LOCK_SASL();
-  sasl_use_count ++;
-  UNLOCK_SASL();
-}
-
-void mailsasl_ref(void)
-{
-  LOCK_SASL();
-  sasl_use_count ++;
-  if (sasl_use_count == 1)
-    sasl_client_init(NULL);
-  UNLOCK_SASL();
-}
-
-void mailsasl_unref(void)
-{
-  LOCK_SASL();
-  sasl_use_count --;
-  if (sasl_use_count == 0) {
-#if 0 /* workaround libsasl bug */
-    sasl_done();
-#endif
-  }
-  UNLOCK_SASL();
-}
-
-#else
-
-void mailsasl_external_ref(void)
-{
-}
-
-void mailsasl_ref(void)
-{
-}
-
-void mailsasl_unref(void)
-{
-}
-
-#endif

+ 0 - 50
deltachat-ios/libraries/libetpan/src/data-types/mailsasl.h

@@ -1,50 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2014 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef MAILSASL_H
-
-#define MAILSASL_H
-
-#ifdef __cplusplus
-extern"C"{
-#endif
-
-/* if Cyrus-SASL is used outside of libetpan */
-void mailsasl_external_ref(void);
-
-void mailsasl_ref(void);
-void mailsasl_unref(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif

+ 0 - 18
deltachat-ios/libraries/libetpan/src/data-types/mailsasl_private.h

@@ -1,18 +0,0 @@
-#ifndef MAILSASL_PRIVATE_H
-
-#define MAILSASL_PRIVATE_H
-
-#ifdef __cplusplus
-extern"C"{
-#endif
-
-extern void mailsasl_init_lock(void);
-
-extern void mailsasl_uninit_lock(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif

+ 0 - 286
deltachat-ios/libraries/libetpan/src/data-types/mailsem.c

@@ -1,286 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mailsem.c,v 1.11 2006/05/22 13:39:40 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "mailsem.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#ifndef _MSC_VER
-#include <unistd.h>
-#endif
-
-#ifdef LIBETPAN_REENTRANT
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-#include <pthread.h>
-#include <semaphore.h>
-#elif (defined WIN32)
-#include <windows.h>
-#endif
-#endif
-
-struct mailsem_internal {
-  /* Current count of the semaphore. */
-  unsigned int count;
-  
-  /* Number of threads that have called <sema_wait>. */
-  unsigned long waiters_count;
-  
-#ifdef LIBETPAN_REENTRANT
-#if defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)
-  /* Serialize access to <count> and <waiters_count>. */
-  pthread_mutex_t lock;
-  
-   /* Condition variable that blocks the <count> 0. */
-  pthread_cond_t count_nonzero;
-#elif (defined WIN32)
-  HANDLE semaphore;
-#endif
-#endif
-};
-
-#if (defined(LIBETPAN_REENTRANT) && defined(HAVE_PTHREAD_H) && !defined(IGNORE_PTHREAD_H)) || !defined(LIBETPAN_REENTRANT)
-
-static int mailsem_internal_init(struct mailsem_internal * s,
-    unsigned int initial_count)
-{
-#ifdef LIBETPAN_REENTRANT
-  int r;
-  
-  r = pthread_mutex_init(&s->lock, NULL);
-  if (r != 0)
-    goto err;
-  
-  r = pthread_cond_init(&s->count_nonzero, NULL);
-  if (r != 0)
-    goto destroy_mutex;
-  
-  s->count = initial_count;
-  s->waiters_count = 0;
-  
-  return 0;
-  
- destroy_mutex:
-  pthread_mutex_destroy(&s->lock);
- err:
-  return -1;
-#else
-  return -1;
-#endif
-}
-
-static void mailsem_internal_destroy(struct mailsem_internal * s)
-{
-#ifdef LIBETPAN_REENTRANT
-  pthread_cond_destroy(&s->count_nonzero);
-  pthread_mutex_destroy(&s->lock);
-#endif
-}
-
-int mailsem_internal_wait(struct mailsem_internal * s)
-{
-#ifdef LIBETPAN_REENTRANT
-  int r;
-  
-  /* Acquire mutex to enter critical section. */
-  r = pthread_mutex_lock(&s->lock);
-  if (r != 0)
-    goto err;
-  
-  /* Keep track of the number of waiters so that <sema_post> works correctly. */
-  s->waiters_count ++;
-  
-  /* Wait until the semaphore count is > 0, then atomically release */
-  /* <lock> and wait for <count_nonzero> to be signaled. */
-  while (s->count == 0) {
-    r = pthread_cond_wait(&s->count_nonzero, &s->lock);
-    if (r != 0)
-      goto unlock;
-  }
-  
-  /* <s->lock> is now held. */
-  
-  /* Decrement the waiters count. */
-  s->waiters_count --;
-  
-  /* Decrement the semaphore's count. */
-  s->count --;
-  
-  /* Release mutex to leave critical section. */
-  pthread_mutex_unlock(&s->lock);
-  
-  return 0;
-  
- unlock:
-  pthread_mutex_unlock(&s->lock);
- err:
-  return -1;
-#else
-  return -1;
-#endif
-}
-
-static int mailsem_internal_post(struct mailsem_internal * s)
-{
-#ifdef LIBETPAN_REENTRANT
-  int r;
-  
-  r = pthread_mutex_lock(&s->lock);
-  if (r != 0)
-    goto err;
-  
-  /* Always allow one thread to continue if it is waiting. */
-  if (s->waiters_count > 0) {
-    r = pthread_cond_signal(&s->count_nonzero);
-    if (r != 0)
-      goto unlock;
-  }
-  
-  /* Increment the semaphore's count. */
-  s->count ++;
-  
-  pthread_mutex_unlock(&s->lock);
-  
-  return 0;
-  
- unlock:
-  pthread_mutex_unlock(&s->lock);
- err:
-  return -1;
-#else
-  return -1;
-#endif
-}
-
-#elif (defined WIN32)
-
-static int mailsem_internal_init(struct mailsem_internal * s,
-  unsigned int initial_count)
-{
-  s->semaphore = CreateSemaphore(
-    NULL,           // default security attributes
-    initial_count,  // initial count
-    0x7FFFFFFF,  // maximum count
-    NULL);          // unnamed semaphore
-
-  return s->semaphore == NULL ? -1 : 0;
-}
-
-static void mailsem_internal_destroy(struct mailsem_internal * s)
-{
-  if (s->semaphore != NULL){
-    CloseHandle(s->semaphore);
-  }
-}
-
-int mailsem_internal_wait(struct mailsem_internal * s)
-{
-  DWORD dwWaitResult = WAIT_TIMEOUT;
-
-  while (dwWaitResult != WAIT_OBJECT_0 && dwWaitResult != WAIT_FAILED){
-    dwWaitResult = WaitForSingleObject(
-          s->semaphore,   // handle to semaphore
-          INFINITE);           // zero-second time-out interval
-  }
-
-  return dwWaitResult == WAIT_FAILED ? -1 : 0;
-}
-
-static int mailsem_internal_post(struct mailsem_internal * s)
-{
-  if (!ReleaseSemaphore(
-      s->semaphore,  // handle to semaphore
-      1,            // increase count by one
-      NULL) )       // not interested in previous count
-  {
-    return -1;
-  }
-  return 0;
-}
-
-#endif
-
-LIBETPAN_EXPORT
-struct mailsem * mailsem_new(void)
-{
-  struct mailsem * sem;
-  int r;
-  
-  sem = malloc(sizeof(* sem));
-  if (sem == NULL)
-    goto err;
-  
-  sem->sem_sem = malloc(sizeof(struct mailsem_internal));
-  if (sem->sem_sem == NULL)
-    goto free;
-  
-  r = mailsem_internal_init(sem->sem_sem, 0);
-  if (r < 0)
-    goto free_sem;
-  
-  return sem;
-  
- free_sem:
-  free(sem->sem_sem);
- free:
-  free(sem);
- err:
-  return NULL;
-}
-
-LIBETPAN_EXPORT
-void mailsem_free(struct mailsem * sem)
-{
-  mailsem_internal_destroy(sem->sem_sem);
-  free(sem->sem_sem);
-  free(sem);
-}
-
-LIBETPAN_EXPORT
-int mailsem_up(struct mailsem * sem)
-{
-  return mailsem_internal_post(sem->sem_sem);
-}
-
-LIBETPAN_EXPORT
-int mailsem_down(struct mailsem * sem)
-{
-  return mailsem_internal_wait(sem->sem_sem);
-}

+ 0 - 59
deltachat-ios/libraries/libetpan/src/data-types/mailsem.h

@@ -1,59 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mailsem.h,v 1.2 2004/11/21 21:53:31 hoa Exp $
- */
-
-#ifndef MAILSEM_H
-
-#define MAILSEM_H
-
-#include <libetpan/libetpan-config.h>
-
-struct mailsem {
-  void * sem_sem;
-  int sem_kind;
-};
-
-LIBETPAN_EXPORT
-struct mailsem * mailsem_new(void);
-
-LIBETPAN_EXPORT
-void mailsem_free(struct mailsem * sem);
-
-LIBETPAN_EXPORT
-int mailsem_up(struct mailsem * sem);
-
-LIBETPAN_EXPORT
-int mailsem_down(struct mailsem * sem);
-
-#endif

+ 0 - 422
deltachat-ios/libraries/libetpan/src/data-types/mailstream.c

@@ -1,422 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mailstream.c,v 1.25 2011/03/11 21:49:36 hoa Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#ifdef WIN32
-#	include "win_etpan.h"
-#endif
-
-#include "mailstream.h"
-#include "maillock.h"
-#include "mailstream_cfstream.h"
-#include "mailstream_compress.h"
-#include "mailstream_cancel.h"
-#include <string.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#define DEFAULT_NETWORK_TIMEOUT 300
-
-struct timeval mailstream_network_delay =
-{  DEFAULT_NETWORK_TIMEOUT, 0 };
-
-LIBETPAN_EXPORT
-mailstream * mailstream_new(mailstream_low * low, size_t buffer_size)
-{
-  mailstream * s;
-
-  s = malloc(sizeof(* s));
-  if (s == NULL)
-    goto err;
-
-  s->read_buffer = malloc(buffer_size);
-  if (s->read_buffer == NULL)
-    goto free_s;
-  s->read_buffer_len = 0;
-
-  s->write_buffer = malloc(buffer_size);
-  if (s->write_buffer == NULL)
-    goto free_read_buffer;
-  s->write_buffer_len = 0;
-
-  s->buffer_max_size = buffer_size;
-  s->low = NULL;
-  
-  s->idle = NULL;
-  s->idling = 0;
-  
-  s->logger = NULL;
-  s->logger_context = NULL;
-  
-  mailstream_set_low(s, low);
-  
-  return s;
-
- free_read_buffer:
-  free(s->read_buffer);
- free_s:
-  free(s);
- err:
-  return NULL;
-}
-
-static size_t write_to_internal_buffer(mailstream * s,
-				       const void * buf, size_t count)
-{
-  memcpy(s->write_buffer + s->write_buffer_len, buf, count);
-  s->write_buffer_len += count;
-
-  return count;
-}
-
-static ssize_t write_direct(mailstream * s, const void * buf, size_t count)
-{
-  size_t left;
-  const char * cur_buf;
-  ssize_t written;
-  
-  cur_buf = buf;
-  left = count;
-  while (left > 0) {
-    written = mailstream_low_write(s->low, cur_buf, left);
-
-    if (written < 0) {
-      if (count == left)
-	return -1;
-      else
-	return count - left;
-    }
-
-    cur_buf += written;
-    left -= written;
-  }
-  
-  return count;
-}
-
-LIBETPAN_EXPORT
-ssize_t mailstream_write(mailstream * s, const void * buf, size_t count)
-{
-  int r;
-
-  if (s == NULL)
-    return -1;
-
-  if (count + s->write_buffer_len > s->buffer_max_size) {
-    r = mailstream_flush(s);
-    if (r == -1)
-      return -1;
-
-    if (count > s->buffer_max_size)
-      return write_direct(s, buf, count);
-  }
-
-  return write_to_internal_buffer(s, buf, count);
-}
-
-LIBETPAN_EXPORT
-int mailstream_flush(mailstream * s)
-{
-  char * cur_buf;
-  size_t left;
-  ssize_t written;
-
-  if (s == NULL)
-    return -1;
-
-  cur_buf = s->write_buffer;
-  left = s->write_buffer_len;
-  while (left > 0) {
-    written = mailstream_low_write(s->low, cur_buf, left);
-
-    if (written < 0)
-      goto move_buffer;
-    cur_buf += written;
-    left -=  written;
-  }
-
-  s->write_buffer_len = 0;
-
-  return 0;
-
- move_buffer:
-  memmove(s->write_buffer, cur_buf, left);
-  s->write_buffer_len = left;
-  return -1;
-}
-
-static ssize_t read_from_internal_buffer(mailstream * s,
-					 void * buf, size_t count)
-{
-  if (count >= s->read_buffer_len)
-    count = s->read_buffer_len;
-  if (count != 0)
-    memcpy(buf, s->read_buffer, count);
-
-  s->read_buffer_len -= count;
-  if (s->read_buffer_len != 0)
-    memmove(s->read_buffer, s->read_buffer + count,
-	    s->read_buffer_len);
-
-  return count;
-}
-
-LIBETPAN_EXPORT
-ssize_t mailstream_read(mailstream * s, void * buf, size_t count)
-{
-  ssize_t read_bytes;
-  char * cur_buf;
-  size_t left;
-  
-  if (s == NULL)
-    return -1;
-
-  left = count;
-  cur_buf = buf;
-  read_bytes = read_from_internal_buffer(s, cur_buf, left);
-  cur_buf += read_bytes;
-  left -= read_bytes;
-
-  if (left == 0) {
-    return read_bytes;
-  }
-
-  if (left > s->buffer_max_size) {
-    read_bytes = mailstream_low_read(s->low, cur_buf, left);
-
-    if (read_bytes == -1) {
-      if (count == left)
-        return -1;
-      else {
-        return count - left;
-      }
-    }
-
-    cur_buf += read_bytes;
-    left -= read_bytes;
-
-    return count - left;
-  }
-
-  read_bytes = mailstream_low_read(s->low, s->read_buffer, s->buffer_max_size);
-  if (read_bytes < 0) {
-    if (left == count)
-      return -1;
-    else {
-      return count - left;
-    }
-  }
-  else
-    s->read_buffer_len += read_bytes;
-
-  read_bytes = read_from_internal_buffer(s, cur_buf, left);
-  cur_buf += read_bytes;
-  left -= read_bytes;
-
-  return count - left;
-}
-
-LIBETPAN_EXPORT
-mailstream_low * mailstream_get_low(mailstream * s)
-{
-  return s->low;
-}
-
-static void low_logger(mailstream_low * s, int log_type,
-  const char * str, size_t size, void * context)
-{
-  mailstream * stream = context;
-  if (stream->logger != NULL) {
-    stream->logger(context, log_type, str, size, stream->logger_context);
-  }
-}
-
-LIBETPAN_EXPORT
-void mailstream_set_low(mailstream * s, mailstream_low * low)
-{
-  s->low = low;
-  mailstream_low_set_logger(low, low_logger, s);
-}
-
-LIBETPAN_EXPORT
-int mailstream_close(mailstream * s)
-{
-  if (s->idle != NULL) {
-    mailstream_cancel_free(s->idle);
-  }
-  
-  mailstream_low_close(s->low);
-  mailstream_low_free(s->low);
-  
-  free(s->read_buffer);
-  free(s->write_buffer);
-  
-  free(s);
-
-  return 0;
-}
-
-LIBETPAN_EXPORT
-ssize_t mailstream_feed_read_buffer(mailstream * s)
-{
-  ssize_t read_bytes;
-  
-  if (s == NULL)
-    return -1;
-
-  if (s->read_buffer_len == 0) {
-    read_bytes = mailstream_low_read(s->low, s->read_buffer,
-				     s->buffer_max_size);
-    if (read_bytes < 0)
-      return -1;
-    s->read_buffer_len += read_bytes;
-  }
-
-  return s->read_buffer_len;
-}
-
-LIBETPAN_EXPORT
-void mailstream_cancel(mailstream * s)
-{
-  if (s == NULL)
-    return;
-  
-  mailstream_low_cancel(s->low);
-}
-
-LIBETPAN_EXPORT
-void mailstream_log_error(mailstream * s, char * buf, size_t count)
-{
-	mailstream_low_log_error(s->low, buf, count);
-}
-
-LIBETPAN_EXPORT
-void mailstream_set_privacy(mailstream * s, int can_be_public)
-{
-  mailstream_low_set_privacy(s->low, can_be_public);
-}
-
-LIBETPAN_EXPORT
-int mailstream_wait_idle(mailstream * s, int max_idle_delay)
-{
-  return mailstream_low_wait_idle(s->low, s->idle, max_idle_delay);
-}
-
-LIBETPAN_EXPORT
-int mailstream_setup_idle(mailstream * s)
-{
-  int r;
-  
-  if (s->idling) {
-    return -1;
-  }
-  
-  r = mailstream_low_setup_idle(s->low);
-  if (r < 0) {
-    s->idle = mailstream_cancel_new();
-    if (s->idle == NULL)
-      return -1;
-  }
-  
-  s->idling = 1;
-  
-  return 0;
-}
-
-LIBETPAN_EXPORT
-void mailstream_interrupt_idle(mailstream * s)
-{
-  int r;
-  
-  if (!s->idling) {
-    return;
-  }
-  
-  r = mailstream_low_interrupt_idle(s->low);
-  if (r < 0) {
-    mailstream_cancel_notify(s->idle);
-  }
-}
-
-LIBETPAN_EXPORT
-void mailstream_unsetup_idle(mailstream * s)
-{
-  int r;
-  
-  if (!s->idling) {
-    return;
-  }
-  
-  r = mailstream_low_unsetup_idle(s->low);
-  if (r < 0) {
-    mailstream_cancel_free(s->idle);
-	  s->idle = NULL;
-  }
-  
-  s->idling = 0;
-}
-
-LIBETPAN_EXPORT
-void mailstream_set_logger(mailstream * s, void (* logger)(mailstream * s, int log_type,
-  const char * str, size_t size, void * context), void * logger_context)
-{
-  s->logger = logger;
-  s->logger_context = logger_context;
-}
-
-LIBETPAN_EXPORT
-carray * mailstream_get_certificate_chain(mailstream * s)
-{
-  return mailstream_low_get_certificate_chain(s->low);
-}
-
-LIBETPAN_EXPORT
-void mailstream_certificate_chain_free(carray * certificate_chain)
-{
-  unsigned int i;
-  
-  if (certificate_chain == NULL)
-    return;
-  
-  for(i = 0 ; i < carray_count(certificate_chain) ; i ++) {
-    mmap_string_free(carray_get(certificate_chain, i));
-  }
-  carray_free(certificate_chain);
-}
-

+ 0 - 135
deltachat-ios/libraries/libetpan/src/data-types/mailstream.h

@@ -1,135 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id: mailstream.h,v 1.21 2011/03/11 21:49:36 hoa Exp $
- */
-
-#ifndef MAILSTREAM_H
-
-#define MAILSTREAM_H
-
-#ifndef _MSC_VER
-#	include <sys/time.h>
-#endif
-
-#include <libetpan/mailstream_low.h>
-#include <libetpan/mailstream_helper.h>
-#include <libetpan/mailstream_socket.h>
-#include <libetpan/mailstream_ssl.h>
-#include <libetpan/mailstream_cfstream.h>
-#include <libetpan/mailstream_types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LIBETPAN_EXPORT
-mailstream * mailstream_new(mailstream_low * low, size_t buffer_size);
-
-LIBETPAN_EXPORT
-ssize_t mailstream_write(mailstream * s, const void * buf, size_t count);
-
-LIBETPAN_EXPORT
-ssize_t mailstream_read(mailstream * s, void * buf, size_t count);
-
-LIBETPAN_EXPORT
-int mailstream_close(mailstream * s);
-
-LIBETPAN_EXPORT
-int mailstream_flush(mailstream * s);
-
-LIBETPAN_EXPORT
-ssize_t mailstream_feed_read_buffer(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_log_error(mailstream * s, char * buf, size_t count);
-
-LIBETPAN_EXPORT
-mailstream_low * mailstream_get_low(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_set_low(mailstream * s, mailstream_low * low);
-
-LIBETPAN_EXPORT
-void mailstream_cancel(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_set_privacy(mailstream * s, int can_be_public);
-
-#ifdef LIBETPAN_MAILSTREAM_DEBUG
-LIBETPAN_EXPORT
-extern int mailstream_debug;
-
-/* direction is 1 for send, 0 for receive, -1 when it does not apply */
-LIBETPAN_EXPORT
-extern void (* mailstream_logger)(int direction,
-    const char * str, size_t size);
-LIBETPAN_EXPORT
-extern void (* mailstream_logger_id)(mailstream_low * s, int is_stream_data, int direction,
-	const char * str, size_t size);
-#endif
-
-LIBETPAN_EXPORT
-void mailstream_set_logger(mailstream * s, void (* logger)(mailstream * s, int log_type,
-  const char * str, size_t size, void * context), void * logger_context);
-
-/* can be run in thread */
-LIBETPAN_EXPORT
-int mailstream_wait_idle(mailstream * s, int max_idle_delay);
-
-/* in main thread */
-LIBETPAN_EXPORT
-int mailstream_setup_idle(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_unsetup_idle(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_interrupt_idle(mailstream * s);
-
-/* Get certificate chain. Returns an array of MMAPString containing DER data or NULL if it's not a SSL connection */
-LIBETPAN_EXPORT
-carray * mailstream_get_certificate_chain(mailstream * s);
-
-LIBETPAN_EXPORT
-void mailstream_certificate_chain_free(carray * certificate_chain);
-
-#define LIBETPAN_MAILSTREAM_NETWORK_DELAY
-LIBETPAN_EXPORT
-extern struct timeval mailstream_network_delay;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-

+ 0 - 216
deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel.c

@@ -1,216 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2014 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "mailstream_cancel.h"
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#ifdef WIN32
-#	include <win_etpan.h>
-#endif
-
-#ifdef LIBETPAN_REENTRANT
-#	ifndef WIN32
-#		include <pthread.h>
-#	endif
-#endif
-
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-#	include <unistd.h>
-#endif
-
-#ifdef WIN32
-#	include <io.h>
-#	include <fcntl.h>
-#endif
-
-#ifdef LIBETPAN_REENTRANT
-#	ifdef WIN32
-#		define MUTEX_KEY	CRITICAL_SECTION
-		static int MUTEX_INIT(CRITICAL_SECTION* mutex) {
-			InitializeCriticalSection( mutex);
-			return 0;
-		}
-#		define MUTEX_LOCK(x) EnterCriticalSection(x)
-#		define MUTEX_UNLOCK(x) LeaveCriticalSection(x)
-#		define MUTEX_DESTROY(x) DeleteCriticalSection(x);
-#	else
-#		define MUTEX_KEY	 pthread_mutex_t
-#		define MUTEX_INIT(x) pthread_mutex_init(x, NULL)
-#		define MUTEX_DESTROY(x) pthread_mutex_destroy(x);
-#		define MUTEX_LOCK(x) pthread_mutex_lock(x)
-#		define MUTEX_UNLOCK(x) pthread_mutex_unlock(x)
-#	endif
-#else
-#	define MUTEX_INIT(x)
-#	define MUTEX_DESTROY(x)
-#	define MUTEX_LOCK(x)
-#	define MUTEX_UNLOCK(x)
-#endif
-
-struct mailstream_cancel_internal {
-#ifdef LIBETPAN_REENTRANT
-  MUTEX_KEY ms_lock;
-#endif
-#ifdef WIN32
-  HANDLE event;
-#endif
-};
-
-struct mailstream_cancel * mailstream_cancel_new(void)
-{
-  int r;
-  struct mailstream_cancel * cancel;
-  struct mailstream_cancel_internal * ms_internal;
-  
-  cancel = malloc(sizeof(struct mailstream_cancel));
-  if (cancel == NULL)
-    goto err;
-  
-  cancel->ms_cancelled = 0;
-  
-  ms_internal = malloc(sizeof(* ms_internal));
-  if (ms_internal == NULL)
-    goto free;
-  cancel->ms_internal = ms_internal;
-  if (cancel->ms_internal == NULL)
-    goto free_internal;
-  
-#ifndef WIN32  
-  r = pipe(cancel->ms_fds);
-  if (r < 0)
-    goto free_internal;
-#else
-  ms_internal->event = CreateEvent(NULL, TRUE, FALSE, NULL);
-  if (ms_internal->event == NULL)
-    goto free_internal;
-#endif
-  
-#ifdef LIBETPAN_REENTRANT
-  r = MUTEX_INIT(&ms_internal->ms_lock);
-  if (r != 0)
-    goto close_pipe;
-#endif
-  
-  return cancel;
-  
- close_pipe:
-#ifndef WIN32  
-  close(cancel->ms_fds[0]);
-  close(cancel->ms_fds[1]);
-#else
-  CloseHandle(ms_internal->event);
-#endif
- free_internal:
-  free(cancel->ms_internal);
- free:
-  free(cancel);
- err:
-  return NULL;
-}
-
-void mailstream_cancel_free(struct mailstream_cancel * cancel)
-{
-  struct mailstream_cancel_internal * ms_internal;
-  
-  ms_internal = cancel->ms_internal;
-
-  MUTEX_DESTROY(&ms_internal->ms_lock);
-
-#ifndef WIN32  
-  close(cancel->ms_fds[0]);
-  close(cancel->ms_fds[1]);
-#else
-  CloseHandle(ms_internal->event);
-#endif
-  free(cancel->ms_internal);
-  free(cancel);
-}
-
-void mailstream_cancel_notify(struct mailstream_cancel * cancel)
-{
-  char ch;
-  struct mailstream_cancel_internal * ms_internal;
-  
-  ms_internal = cancel->ms_internal;
-  MUTEX_LOCK(&ms_internal->ms_lock);
-
-  cancel->ms_cancelled = 1;
-
-  MUTEX_UNLOCK(&ms_internal->ms_lock);
-  
-  ch = 0;
-#ifndef WIN32
-  write(cancel->ms_fds[1], &ch, 1);
-#else
-  SetEvent(ms_internal->event);
-#endif
-}
-
-void mailstream_cancel_ack(struct mailstream_cancel * cancel)
-{
-#ifndef WIN32
-  char ch;
-  read(cancel->ms_fds[0], &ch, 1);
-#endif
-}
-
-int mailstream_cancel_cancelled(struct mailstream_cancel * cancel)
-{
-  int cancelled;
-  struct mailstream_cancel_internal * ms_internal;
-  
-  ms_internal = cancel->ms_internal;
-
-  MUTEX_LOCK(&ms_internal->ms_lock);
-
-  cancelled = cancel->ms_cancelled;
-
-  MUTEX_UNLOCK(&ms_internal->ms_lock);
-
-
-  return cancelled;
-}
-
-int mailstream_cancel_get_fd(struct mailstream_cancel * cancel)
-{
-#ifndef WIN32
-  return cancel->ms_fds[0];
-#else
-  struct mailstream_cancel_internal * ms_internal;
-  
-  ms_internal = cancel->ms_internal;
-
-  return ms_internal->event;
-#endif
-}

+ 0 - 45
deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel.h

@@ -1,45 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2014 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef MAILSTREAM_CANCEL_H
-
-#define MAILSTREAM_CANCEL_H
-
-#include "mailstream_cancel_types.h"
-
-struct mailstream_cancel * mailstream_cancel_new(void);
-void mailstream_cancel_free(struct mailstream_cancel * cancel);
-
-int mailstream_cancel_cancelled(struct mailstream_cancel * cancel);
-void mailstream_cancel_notify(struct mailstream_cancel * cancel);
-void mailstream_cancel_ack(struct mailstream_cancel * cancel);
-int mailstream_cancel_get_fd(struct mailstream_cancel * cancel);
-
-#endif

+ 0 - 41
deltachat-ios/libraries/libetpan/src/data-types/mailstream_cancel_types.h

@@ -1,41 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2014 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef MAILSTREAM_CANCEL_TYPES_H
-
-#define MAILSTREAM_CANCEL_TYPES_H
-
-struct mailstream_cancel {
-  int ms_cancelled;
-  int ms_fds[2];
-  void * ms_internal;
-};
-
-#endif

+ 0 - 1271
deltachat-ios/libraries/libetpan/src/data-types/mailstream_cfstream.c

@@ -1,1271 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "mailstream_cfstream.h"
-
-#if HAVE_CFNETWORK
-#include <CoreFoundation/CoreFoundation.h>
-#include <TargetConditionals.h>
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-#include <CFNetwork/CFNetwork.h>
-#include <Security/Security.h>
-#else
-#include <CoreServices/CoreServices.h>
-#endif
-#endif
-
-#ifndef WIN32
-#include <pthread.h>
-#endif
-
-#if LIBETPAN_IOS_DISABLE_SSL && HAVE_CFNETWORK
-#define CFSTREAM_ENABLED_DEFAULT 1
-#else
-#define CFSTREAM_ENABLED_DEFAULT 0
-#endif
-
-LIBETPAN_EXPORT
-int mailstream_cfstream_enabled = CFSTREAM_ENABLED_DEFAULT;
-
-LIBETPAN_EXPORT
-int mailstream_cfstream_voip_enabled = 0;
-
-enum {
-  STATE_NONE,
-  STATE_WAIT_OPEN,
-  STATE_OPEN_READ_DONE,
-  STATE_OPEN_WRITE_DONE,
-  STATE_OPEN_READ_WRITE_DONE,
-  STATE_OPEN_WRITE_READ_DONE,
-  STATE_WAIT_READ,
-  STATE_READ_DONE,
-  STATE_WAIT_WRITE,
-  STATE_WRITE_DONE,
-  STATE_WAIT_IDLE,
-  STATE_IDLE_DONE,
-  STATE_WAIT_SSL,
-  STATE_SSL_READ_DONE,
-  STATE_SSL_WRITE_DONE,
-  STATE_SSL_READ_WRITE_DONE,
-  STATE_SSL_WRITE_READ_DONE
-};
-
-#if HAVE_CFNETWORK
-struct mailstream_cfstream_data {
-  int state;
-  CFStreamClientContext streamContext;
-  
-  CFReadStreamRef readStream;
-  void * readBuffer;
-  size_t readBufferSize;
-  ssize_t readResult;
-  int readOpenResult;
-  int readSSLResult;
-  
-  CFWriteStreamRef writeStream;
-  const void * writeBuffer;
-  size_t writeBufferSize;
-  ssize_t writeResult;
-  int writeOpenResult;
-  int writeSSLResult;
-  
-  Boolean cancelled;
-  CFRunLoopSourceRef cancelSource;
-  CFRunLoopSourceContext cancelContext;
-  
-  Boolean idleInterrupted;
-  CFRunLoopSourceRef idleInterruptedSource;
-  CFRunLoopSourceContext idleInterruptedContext;
-  int idleMaxDelay;
-  
-  CFRunLoopRef runloop;
-  pthread_mutex_t runloop_lock;
-  
-  int ssl_enabled;
-  int ssl_level;
-  int ssl_is_server;
-  char * ssl_peer_name;
-  int ssl_certificate_verification_mask;
-};
-#endif
-
-/* data */
-
-#if HAVE_CFNETWORK
-static int low_open(mailstream_low * s);
-static void cfstream_data_close(struct mailstream_cfstream_data * socket_data);
-#endif
-
-/* mailstream_low, socket */
-
-static int mailstream_low_cfstream_close(mailstream_low * s);
-static ssize_t mailstream_low_cfstream_read(mailstream_low * s,
-                                            void * buf, size_t count);
-static ssize_t mailstream_low_cfstream_write(mailstream_low * s,
-                                             const void * buf, size_t count);
-static void mailstream_low_cfstream_free(mailstream_low * s);
-static int mailstream_low_cfstream_get_fd(mailstream_low * s);
-static void mailstream_low_cfstream_cancel(mailstream_low * s);
-static carray * mailstream_low_cfstream_get_certificate_chain(mailstream_low * s);
-
-static int mailstream_low_cfstream_setup_idle(mailstream_low * s);
-static int mailstream_low_cfstream_unsetup_idle(mailstream_low * s);
-static int mailstream_low_cfstream_interrupt_idle(mailstream_low * s);
-
-static mailstream_low_driver local_mailstream_cfstream_driver = {
-  /* mailstream_read */ mailstream_low_cfstream_read,
-  /* mailstream_write */ mailstream_low_cfstream_write,
-  /* mailstream_close */ mailstream_low_cfstream_close,
-  /* mailstream_get_fd */ mailstream_low_cfstream_get_fd,
-  /* mailstream_free */ mailstream_low_cfstream_free,
-  /* mailstream_cancel */ mailstream_low_cfstream_cancel,
-  /* mailstream_get_cancel */ NULL,
-  /* mailstream_get_certificate_chain */ mailstream_low_cfstream_get_certificate_chain,
-  /* mailstream_setup_idle */ mailstream_low_cfstream_setup_idle,
-  /* mailstream_unsetup_idle */ mailstream_low_cfstream_unsetup_idle,
-  /* mailstream_interrupt_idle */ mailstream_low_cfstream_interrupt_idle,
-};
-
-mailstream_low_driver * mailstream_cfstream_driver =
-&local_mailstream_cfstream_driver;
-
-#if HAVE_CFNETWORK
-static struct mailstream_cfstream_data * cfstream_data_new(CFReadStreamRef readStream, CFWriteStreamRef writeStream)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data * ) malloc(sizeof(* cfstream_data));
-  memset(cfstream_data, 0, sizeof(* cfstream_data));
-  cfstream_data->readStream = (CFReadStreamRef) CFRetain(readStream);
-  cfstream_data->writeStream = (CFWriteStreamRef) CFRetain(writeStream);
-  cfstream_data->ssl_level = MAILSTREAM_CFSTREAM_SSL_LEVEL_NEGOCIATED_SSL;
-  pthread_mutex_init(&cfstream_data->runloop_lock, NULL);
-  
-  return cfstream_data;
-}
-
-static void cfstream_data_free(struct mailstream_cfstream_data * cfstream_data)
-{
-  cfstream_data_close(cfstream_data);
-  pthread_mutex_destroy(&cfstream_data->runloop_lock);
-  free(cfstream_data->ssl_peer_name);
-  free(cfstream_data);
-}
-
-static void cfstream_data_close(struct mailstream_cfstream_data * cfstream_data)
-{
-  if (cfstream_data->writeStream != NULL) {
-    CFWriteStreamSetClient(cfstream_data->writeStream, kCFStreamEventNone, NULL, NULL);
-    CFWriteStreamClose(cfstream_data->writeStream);
-    CFRelease(cfstream_data->writeStream);
-    cfstream_data->writeStream = NULL;
-  }
-  if (cfstream_data->readStream != NULL) {
-    CFReadStreamSetClient(cfstream_data->readStream, kCFStreamEventNone, NULL, NULL);
-    CFReadStreamClose(cfstream_data->readStream);
-    CFRelease(cfstream_data->readStream);
-    cfstream_data->readStream = NULL;
-  }
-}
-#endif
-
-mailstream * mailstream_cfstream_open(const char * hostname, int16_t port)
-{
-	return mailstream_cfstream_open_voip_timeout(hostname, port, 0, 0);
-}
-
-mailstream * mailstream_cfstream_open_timeout(const char * hostname, int16_t port, time_t timeout)
-{
-	return mailstream_cfstream_open_voip_timeout(hostname, port, 0, timeout);
-}
-
-mailstream * mailstream_cfstream_open_voip(const char * hostname, int16_t port, int voip_enabled)
-{
-	return mailstream_cfstream_open_voip_timeout(hostname, port, voip_enabled, 0);
-}
-
-mailstream * mailstream_cfstream_open_voip_timeout(const char * hostname, int16_t port, int voip_enabled,
-  time_t timeout)
-{
-#if HAVE_CFNETWORK
-  mailstream_low * low;
-  mailstream * s;
-  
-  low = mailstream_low_cfstream_open_voip_timeout(hostname, port, voip_enabled, timeout);
-  if (low == NULL) {
-    return NULL;
-  }
-  s = mailstream_new(low, 8192);
-  return s;
-#else
-  return NULL;
-#endif
-}
-
-#if HAVE_CFNETWORK
-static void cancelPerform(void *info)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  mailstream_low * s;
-  
-  //fprintf(stderr, "cancelled\n");
-  
-  s = info;
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->cancelled = true;
-}
-
-static void readDataFromStream(mailstream_low * s)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  cfstream_data->readResult = CFReadStreamRead(cfstream_data->readStream,
-                                               cfstream_data->readBuffer,
-                                               cfstream_data->readBufferSize);
-  //fprintf(stderr, "data read %i\n", (int) cfstream_data->readResult);
-}
-
-static void writeDataToStream(mailstream_low * s)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  cfstream_data->writeResult = CFWriteStreamWrite(cfstream_data->writeStream,
-                                                  cfstream_data->writeBuffer,
-                                                  cfstream_data->writeBufferSize);
-  //fprintf(stderr, "data written %i\n", (int) cfstream_data->writeResult);
-}
-
-static void readStreamCallback(CFReadStreamRef stream, CFStreamEventType eventType, void *clientCallBackInfo)
-{
-  mailstream_low * s;
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  s = (mailstream_low *) clientCallBackInfo;
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  switch (eventType) {
-    case kCFStreamEventNone:
-      break;
-    case kCFStreamEventOpenCompleted:
-      cfstream_data->readResult = 0;
-      cfstream_data->readOpenResult = 0;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_READ_DONE;
-          break;
-        case STATE_OPEN_WRITE_DONE:
-          cfstream_data->state = STATE_OPEN_WRITE_READ_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventHasBytesAvailable:
-      cfstream_data->readSSLResult = 0;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_READ:
-          //fprintf(stderr, "has data\n");
-          readDataFromStream(s);
-          cfstream_data->state = STATE_READ_DONE;
-          break;
-        case STATE_WAIT_IDLE:
-          cfstream_data->state = STATE_IDLE_DONE;
-          break;
-        case STATE_WAIT_SSL:
-          cfstream_data->state = STATE_SSL_READ_DONE;
-          break;
-        case STATE_SSL_WRITE_DONE:
-          cfstream_data->state = STATE_SSL_WRITE_READ_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventCanAcceptBytes:
-      break;
-    case kCFStreamEventErrorOccurred:
-      cfstream_data->readResult = -1;
-      cfstream_data->readOpenResult = -1;
-      cfstream_data->readSSLResult = -1;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_READ_DONE;
-          break;
-        case STATE_OPEN_WRITE_DONE:
-          cfstream_data->state = STATE_OPEN_WRITE_READ_DONE;
-          break;
-        case STATE_WAIT_READ:
-          //fprintf(stderr, "error read\n");
-          cfstream_data->state = STATE_READ_DONE;
-          break;
-        case STATE_WAIT_IDLE:
-          cfstream_data->state = STATE_IDLE_DONE;
-          break;
-        case STATE_WAIT_SSL:
-          cfstream_data->state = STATE_SSL_READ_DONE;
-          break;
-        case STATE_SSL_WRITE_DONE:
-          cfstream_data->state = STATE_SSL_WRITE_READ_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventEndEncountered:
-      cfstream_data->readResult = 0;
-      cfstream_data->readOpenResult = 0;
-      cfstream_data->readSSLResult = 0;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_READ_DONE;
-          break;
-        case STATE_OPEN_WRITE_DONE:
-          cfstream_data->state = STATE_OPEN_WRITE_READ_DONE;
-          break;
-        case STATE_WAIT_READ:
-          //fprintf(stderr, "end read\n");
-          cfstream_data->state = STATE_READ_DONE;
-          break;
-        case STATE_WAIT_IDLE:
-          cfstream_data->state = STATE_IDLE_DONE;
-          break;
-      }
-      break;
-  }
-}
-
-static void writeStreamCallback(CFWriteStreamRef stream, CFStreamEventType eventType, void *clientCallBackInfo)
-{
-  mailstream_low * s;
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  s = (mailstream_low *) clientCallBackInfo;
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  switch (eventType) {
-    case kCFStreamEventNone:
-      break;
-    case kCFStreamEventOpenCompleted:
-      cfstream_data->writeResult = 0;
-      cfstream_data->writeOpenResult = 0;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_WRITE_DONE;
-          break;
-        case STATE_OPEN_READ_DONE:
-          cfstream_data->state = STATE_OPEN_READ_WRITE_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventHasBytesAvailable:
-      break;
-    case kCFStreamEventCanAcceptBytes:
-      //fprintf(stderr, "can accept\n");
-      cfstream_data->writeSSLResult = 0;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_WRITE:
-          writeDataToStream(s);
-          cfstream_data->state = STATE_WRITE_DONE;
-          break;
-        case STATE_WAIT_SSL:
-          cfstream_data->state = STATE_SSL_WRITE_DONE;
-          break;
-        case STATE_SSL_READ_DONE:
-          cfstream_data->state = STATE_SSL_READ_WRITE_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventErrorOccurred:
-      cfstream_data->writeResult = -1;
-      cfstream_data->writeOpenResult = -1;
-      cfstream_data->writeSSLResult = -1;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_WRITE_DONE;
-          break;
-        case STATE_OPEN_READ_DONE:
-          cfstream_data->state = STATE_OPEN_READ_WRITE_DONE;
-          break;
-        case STATE_WAIT_WRITE:
-          cfstream_data->state = STATE_OPEN_WRITE_DONE;
-          break;
-        case STATE_WAIT_SSL:
-          cfstream_data->state = STATE_SSL_WRITE_DONE;
-          break;
-        case STATE_SSL_READ_DONE:
-          cfstream_data->state = STATE_SSL_READ_WRITE_DONE;
-          break;
-      }
-      break;
-    case kCFStreamEventEndEncountered:
-      cfstream_data->writeResult = -1;
-      cfstream_data->writeOpenResult = -1;
-      cfstream_data->writeSSLResult = -1;
-      switch (cfstream_data->state) {
-        case STATE_WAIT_OPEN:
-          cfstream_data->state = STATE_OPEN_WRITE_DONE;
-          break;
-        case STATE_OPEN_READ_DONE:
-          cfstream_data->state = STATE_OPEN_READ_WRITE_DONE;
-          break;
-        case STATE_WAIT_WRITE:
-          cfstream_data->state = STATE_OPEN_WRITE_DONE;
-          break;
-      }
-      break;
-  }
-}
-#endif
-
-mailstream_low * mailstream_low_cfstream_open(const char * hostname, int16_t port)
-{
-    return mailstream_low_cfstream_open_voip_timeout(hostname, port, mailstream_cfstream_voip_enabled, 0);
-}
-
-mailstream_low * mailstream_low_cfstream_open_timeout(const char * hostname, int16_t port,
-  time_t timeout)
-{
-	return mailstream_low_cfstream_open_voip_timeout(hostname, port,
-	  mailstream_cfstream_voip_enabled, timeout);
-}
-
-mailstream_low * mailstream_low_cfstream_open_voip(const char * hostname, int16_t port, int voip_enabled)
-{
-	return mailstream_low_cfstream_open_voip_timeout(hostname, port, voip_enabled, 0);
-}
-
-#if HAVE_CFNETWORK
-static int numberIntValue(CFNumberRef nb)
-{
-  if (nb == NULL) {
-    return 0;
-  }
-
-  int result;
-  CFNumberGetValue(nb, kCFNumberIntType, &result);
-  return result;
-}
-#endif
-
-mailstream_low * mailstream_low_cfstream_open_voip_timeout(const char * hostname, int16_t port,
-  int voip_enabled, time_t timeout)
-{
-#if HAVE_CFNETWORK
-  mailstream_low * s;
-  struct mailstream_cfstream_data * cfstream_data;
-  CFReadStreamRef readStream;
-  CFWriteStreamRef writeStream;
-  CFStringRef hostString;
-  CFOptionFlags readFlags;
-  CFOptionFlags writeFlags;
-  int r;
-  
-  hostString = CFStringCreateWithCString(NULL, hostname, kCFStringEncodingUTF8);
-  CFStreamCreatePairWithSocketToHost(NULL, hostString, port, &readStream, &writeStream);
-  CFRelease(hostString);
-
-#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR  
-  if (voip_enabled) {
-    CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
-    CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
-  }
-#endif
-
-#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
-  CFDictionaryRef proxySettings = CFNetworkCopySystemProxySettings();
-  CFNumberRef nbEnabled = CFDictionaryGetValue(proxySettings, kCFNetworkProxiesSOCKSEnable);
-  if (numberIntValue(nbEnabled)) {
-    CFReadStreamSetProperty(readStream, kCFStreamPropertySOCKSProxy, proxySettings);
-    CFWriteStreamSetProperty(writeStream, kCFStreamPropertySOCKSProxy, proxySettings);
-  }
-  CFRelease(proxySettings);
-#endif
-
-  cfstream_data = cfstream_data_new(readStream, writeStream);
-  s = mailstream_low_new(cfstream_data, mailstream_cfstream_driver);
-	mailstream_low_set_timeout(s, timeout);  
-
-  //fprintf(stderr, "open %s %i -> %p\n", hostname, port, s);
-  
-  /* setup streams */
-  cfstream_data->streamContext.info = s;
-  
-  readFlags = kCFStreamEventOpenCompleted |
-  kCFStreamEventHasBytesAvailable |
-  kCFStreamEventErrorOccurred |
-  kCFStreamEventEndEncountered;
-  
-  writeFlags = kCFStreamEventOpenCompleted |
-  kCFStreamEventCanAcceptBytes |
-  kCFStreamEventErrorOccurred |
-  kCFStreamEventEndEncountered;
-  
-  CFReadStreamSetClient(cfstream_data->readStream, readFlags, readStreamCallback, &cfstream_data->streamContext);
-  CFWriteStreamSetClient(cfstream_data->writeStream, writeFlags, writeStreamCallback, &cfstream_data->streamContext);
-  
-  CFRelease(readStream);
-  CFRelease(writeStream);
-  readStream = NULL;
-  writeStream = NULL;
-  
-  /* setup cancel */
-  cfstream_data->cancelContext.info = s;
-  cfstream_data->cancelContext.perform = cancelPerform;
-  cfstream_data->cancelSource = CFRunLoopSourceCreate(NULL, 0, &cfstream_data->cancelContext);
-  
-  r = low_open(s);
-  if (r < 0) {
-    mailstream_low_cfstream_close(s);
-    return NULL;
-  }
-  
-  return s;
-#else
-  return NULL;
-#endif
-}
-
-
-static int mailstream_low_cfstream_close(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  if (cfstream_data->cancelSource != NULL) {
-    CFRelease(cfstream_data->cancelSource);
-    cfstream_data->cancelSource = NULL;
-  }
-  
-  cfstream_data_close(cfstream_data);
-  
-  return 0;
-#else
-  return 0;
-#endif
-}
-
-static void mailstream_low_cfstream_free(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data_free(cfstream_data);
-  s->data = NULL;
-  
-  free(s);
-#endif
-}
-
-static int mailstream_low_cfstream_get_fd(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data = NULL;
-  CFDataRef native_handle_data = NULL;
-  CFSocketNativeHandle native_handle_value = -1;
-  CFIndex native_data_len  = 0;
-  CFIndex native_value_len = 0;
-
-  if (!s)
-    return -1;
-
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-
-  if (!cfstream_data->readStream)
-    return -1;
-
-  native_handle_data = (CFDataRef)CFReadStreamCopyProperty(cfstream_data->readStream, kCFStreamPropertySocketNativeHandle);
-  if (!native_handle_data)
-    return -1;
-
-  native_data_len  = CFDataGetLength(native_handle_data);
-  native_value_len = (CFIndex)sizeof(native_handle_value);
-
-  if (native_data_len != native_value_len) {
-    CFRelease(native_handle_data);
-    return -1;
-  }
-
-  CFDataGetBytes(native_handle_data, CFRangeMake(0, MIN(native_data_len, native_value_len)), (UInt8 *)&native_handle_value);
-  CFRelease(native_handle_data);
-
-  return native_handle_value;
-#else
-  return -1;
-#endif
-}
-
-#if HAVE_CFNETWORK
-static void setup_runloop(mailstream_low * s)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  pthread_mutex_lock(&cfstream_data->runloop_lock);
-  
-  cfstream_data->runloop = (CFRunLoopRef) CFRetain(CFRunLoopGetCurrent());
-  if (cfstream_data->cancelSource != NULL) {
-    CFRunLoopAddSource(cfstream_data->runloop, cfstream_data->cancelSource, kCFRunLoopDefaultMode);
-    //fprintf(stderr, "add cancel source %p\n", cfstream_data->cancelSource);
-  }
-  if (cfstream_data->idleInterruptedSource != NULL) {
-    CFRunLoopAddSource(cfstream_data->runloop, cfstream_data->idleInterruptedSource, kCFRunLoopDefaultMode);
-    //fprintf(stderr, "add idle source %p\n", cfstream_data->idleInterruptedSource);
-  }
-  
-  pthread_mutex_unlock(&cfstream_data->runloop_lock);
-}
-
-static void unsetup_runloop(mailstream_low * s)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  pthread_mutex_lock(&cfstream_data->runloop_lock);
-  
-  if (cfstream_data->idleInterruptedSource != NULL) {
-    CFRunLoopRemoveSource(cfstream_data->runloop, cfstream_data->idleInterruptedSource, kCFRunLoopDefaultMode);
-  }
-  if (cfstream_data->cancelSource != NULL) {
-    CFRunLoopRemoveSource(cfstream_data->runloop, cfstream_data->cancelSource, kCFRunLoopDefaultMode);
-  }
-  if (cfstream_data->runloop != NULL) {
-    CFRelease(cfstream_data->runloop);
-    cfstream_data->runloop = NULL;
-  }
-  
-  
-  pthread_mutex_unlock(&cfstream_data->runloop_lock);
-}
-
-enum {
-  WAIT_RUNLOOP_EXIT_NO_ERROR,
-  WAIT_RUNLOOP_EXIT_INTERRUPTED,
-  WAIT_RUNLOOP_EXIT_CANCELLED,
-  WAIT_RUNLOOP_EXIT_TIMEOUT,
-};
-
-static int wait_runloop(mailstream_low * s, int wait_state)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  int read_scheduled;
-  int write_scheduled;
-  int error;
-  
-  setup_runloop(s);
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->state = wait_state;
-  
-  read_scheduled = 0;
-  write_scheduled = 0;
-  error = WAIT_RUNLOOP_EXIT_NO_ERROR;
-  
-  switch (wait_state) {
-    case STATE_WAIT_OPEN:
-      //fprintf(stderr, "wait open\n");
-      CFReadStreamScheduleWithRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      CFWriteStreamScheduleWithRunLoop(cfstream_data->writeStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      read_scheduled = 1;
-      write_scheduled = 1;
-      break;
-    case STATE_WAIT_READ:
-      //fprintf(stderr, "wait read\n");
-      CFReadStreamScheduleWithRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      read_scheduled = 1;
-      break;
-    case STATE_WAIT_WRITE:
-      //fprintf(stderr, "wait write\n");
-      CFWriteStreamScheduleWithRunLoop(cfstream_data->writeStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      write_scheduled = 1;
-      break;
-    case STATE_WAIT_IDLE:
-      //fprintf(stderr, "wait idle\n");
-      CFReadStreamScheduleWithRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      read_scheduled = 1;
-      break;
-    case STATE_WAIT_SSL:
-      //fprintf(stderr, "wait ssl\n");
-      CFReadStreamScheduleWithRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      CFWriteStreamScheduleWithRunLoop(cfstream_data->writeStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-      read_scheduled = 1;
-      write_scheduled = 1;
-      break;
-  }
-  
-  if (read_scheduled) {
-    if (CFReadStreamHasBytesAvailable(cfstream_data->readStream)) {
-      readStreamCallback(cfstream_data->readStream, kCFStreamEventHasBytesAvailable, s);
-    }
-  }
-  if (write_scheduled) {
-    if (CFWriteStreamCanAcceptBytes(cfstream_data->writeStream)) {
-      writeStreamCallback(cfstream_data->writeStream, kCFStreamEventCanAcceptBytes, s);
-    }
-  }
-  
-  while (1) {
-    struct timeval timeout;
-    CFTimeInterval delay;
-    int r;
-    int done;
-    
-    if (cfstream_data->cancelled) {
-      error = WAIT_RUNLOOP_EXIT_CANCELLED;
-      break;
-    }
-    if (cfstream_data->state == STATE_WAIT_IDLE) {
-      if (cfstream_data->idleInterrupted) {
-        error = WAIT_RUNLOOP_EXIT_INTERRUPTED;
-        break;
-      }
-    }
-
-    done = 0;
-    switch (cfstream_data->state) {
-      case STATE_OPEN_READ_DONE:
-        CFReadStreamUnscheduleFromRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-        read_scheduled = 0;
-        break;
-      case STATE_OPEN_WRITE_DONE:
-        CFWriteStreamUnscheduleFromRunLoop(cfstream_data->writeStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-        write_scheduled = 0;
-        break;
-      case STATE_OPEN_READ_WRITE_DONE:
-        done = 1;
-        break;
-      case STATE_OPEN_WRITE_READ_DONE:
-        done = 1;
-        break;
-      case STATE_READ_DONE:
-        done = 1;
-        break;
-      case STATE_WRITE_DONE:
-        done = 1;
-        break;
-      case STATE_IDLE_DONE:
-        done = 1;
-        break;
-      case STATE_SSL_READ_DONE:
-        done = 1;
-        break;
-      case STATE_SSL_WRITE_DONE:
-        done = 1;
-        break;
-      case STATE_SSL_READ_WRITE_DONE:
-        done = 1;
-        break;
-      case STATE_SSL_WRITE_READ_DONE:
-        done = 1;
-        break;
-    }
-    
-    if (done) {
-      break;
-    }
-    
-    if (wait_state == STATE_WAIT_IDLE) {
-      timeout.tv_sec = cfstream_data->idleMaxDelay;
-      timeout.tv_usec = 0;
-    }
-    else {
-	    if (s->timeout == 0) {
-				timeout = mailstream_network_delay;
-			}
-			else {
-	      timeout.tv_sec = s->timeout;
-	      timeout.tv_usec = 0;
-			}
-    }
-    delay = (CFTimeInterval) timeout.tv_sec + (CFTimeInterval) timeout.tv_usec / (CFTimeInterval) 1e6;
-    
-    r = CFRunLoopRunInMode(kCFRunLoopDefaultMode, delay, true);
-    if (r == kCFRunLoopRunTimedOut) {
-      error = WAIT_RUNLOOP_EXIT_TIMEOUT;
-      break;
-    }
-  }
-  
-  if (read_scheduled) {
-    CFReadStreamUnscheduleFromRunLoop(cfstream_data->readStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-  }
-  if (write_scheduled) {
-    CFWriteStreamUnscheduleFromRunLoop(cfstream_data->writeStream, cfstream_data->runloop, kCFRunLoopDefaultMode);
-  }
-  
-  unsetup_runloop(s);
-  
-  if (error != WAIT_RUNLOOP_EXIT_NO_ERROR)
-    return error;
-  
-  return WAIT_RUNLOOP_EXIT_NO_ERROR;
-}
-#endif
-
-static ssize_t mailstream_low_cfstream_read(mailstream_low * s,
-                                            void * buf, size_t count)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  int r;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->readBuffer = buf;
-  cfstream_data->readBufferSize = count;
-  
-  if (cfstream_data->cancelled) {
-    return -1;
-  }
- 
-  if (CFReadStreamGetStatus(cfstream_data->readStream) == kCFStreamStatusError) {
-    return -1;
-  }
-  
-  if (CFReadStreamHasBytesAvailable(cfstream_data->readStream)) {
-    readDataFromStream(s);
-    return cfstream_data->readResult;
-  }
-  
-  r = wait_runloop(s, STATE_WAIT_READ);
-  if (r != WAIT_RUNLOOP_EXIT_NO_ERROR) {
-    return -1;
-  }
-  
-  return cfstream_data->readResult;
-#else
-  return -1;
-#endif
-}
-
-static ssize_t mailstream_low_cfstream_write(mailstream_low * s,
-                                             const void * buf, size_t count)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  int r;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->writeBuffer = buf;
-  cfstream_data->writeBufferSize = count;
-  
-  if (cfstream_data->cancelled)
-    return -1;
-  
-  if (CFWriteStreamGetStatus(cfstream_data->writeStream) == kCFStreamStatusError) {
-    return -1;
-  }
-  
-  if (CFWriteStreamCanAcceptBytes(cfstream_data->writeStream)) {
-    writeDataToStream(s);
-    return cfstream_data->writeResult;
-  }
-  
-  r = wait_runloop(s, STATE_WAIT_WRITE);
-  if (r != WAIT_RUNLOOP_EXIT_NO_ERROR) {
-    return -1;
-  }
-  
-  return cfstream_data->writeResult;
-#else
-  return -1;
-#endif
-}
-
-#if HAVE_CFNETWORK
-static int low_open(mailstream_low * s)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  int r;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  CFReadStreamOpen(cfstream_data->readStream);
-  CFWriteStreamOpen(cfstream_data->writeStream);
-  
-  r = wait_runloop(s, STATE_WAIT_OPEN);
-  if (r != WAIT_RUNLOOP_EXIT_NO_ERROR) {
-    return -1;
-  }
-  
-  if (cfstream_data->writeOpenResult < 0)
-    return -1;
-  if (cfstream_data->readOpenResult < 0)
-    return -1;
-  
-  return 0;
-}
-#endif
-
-static void mailstream_low_cfstream_cancel(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  pthread_mutex_lock(&cfstream_data->runloop_lock);
-  
-  if (cfstream_data->cancelSource != NULL) {
-    CFRunLoopSourceSignal(cfstream_data->cancelSource);
-  }
-  if (cfstream_data->runloop != NULL) {
-    CFRunLoopWakeUp(cfstream_data->runloop);
-  }
-  
-  pthread_mutex_unlock(&cfstream_data->runloop_lock);
-#endif
-}
-
-int mailstream_cfstream_set_ssl_enabled(mailstream * s, int ssl_enabled)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  int r;
-  CFIndex count;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  cfstream_data->ssl_enabled = ssl_enabled;
-  if (ssl_enabled) {
-    CFMutableDictionaryRef settings;
-    
-    settings = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
-    switch (cfstream_data->ssl_level) {
-      case MAILSTREAM_CFSTREAM_SSL_LEVEL_NONE:
-        CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelNone);
-        break;
-      case MAILSTREAM_CFSTREAM_SSL_LEVEL_SSLv2:
-        CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelSSLv2);
-        break;
-      case MAILSTREAM_CFSTREAM_SSL_LEVEL_SSLv3:
-        CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelSSLv3);
-        break;
-      case MAILSTREAM_CFSTREAM_SSL_LEVEL_TLSv1:
-        CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelTLSv1);
-        break;
-      case MAILSTREAM_CFSTREAM_SSL_LEVEL_NEGOCIATED_SSL:
-        CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelNegotiatedSSL);
-        break;
-    }
-    
-    if ((cfstream_data->ssl_certificate_verification_mask & MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_CERTIFICATES) != 0) {
-      CFDictionarySetValue(settings, kCFStreamSSLAllowsExpiredCertificates, kCFBooleanTrue);
-    }
-    if ((cfstream_data->ssl_certificate_verification_mask & MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_ROOTS) != 0) {
-      CFDictionarySetValue(settings, kCFStreamSSLAllowsExpiredRoots, kCFBooleanTrue);
-    }
-    if ((cfstream_data->ssl_certificate_verification_mask & MAILSTREAM_CFSTREAM_SSL_ALLOWS_ANY_ROOT) != 0) {
-      CFDictionarySetValue(settings, kCFStreamSSLAllowsAnyRoot, kCFBooleanTrue);
-    }
-    if ((cfstream_data->ssl_certificate_verification_mask & MAILSTREAM_CFSTREAM_SSL_DISABLE_VALIDATES_CERTIFICATE_CHAIN) != 0) {
-      CFDictionarySetValue(settings, kCFStreamSSLValidatesCertificateChain, kCFBooleanFalse);
-    }
-    
-    CFReadStreamSetProperty(cfstream_data->readStream, kCFStreamPropertySSLSettings, settings);
-    CFWriteStreamSetProperty(cfstream_data->writeStream, kCFStreamPropertySSLSettings, settings);
-    CFRelease(settings);
-  }
-  else {
-    CFMutableDictionaryRef settings;
-    
-    settings = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
-    CFDictionarySetValue(settings, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelNone);
-		CFReadStreamSetProperty(cfstream_data->readStream, kCFStreamPropertySSLSettings, settings);
-		CFWriteStreamSetProperty(cfstream_data->writeStream, kCFStreamPropertySSLSettings, settings);
-    CFRelease(settings);
-  }
-  
-  // We need to investigate more about how to establish a STARTTLS connection.
-  // For now, wait until we get the certificate chain.
-  
-  CFArrayRef certs;
-  SecTrustRef secTrust;
-  while (1) {
-    r = wait_runloop(s->low, STATE_WAIT_SSL);
-    if (r != WAIT_RUNLOOP_EXIT_NO_ERROR) {
-      return -1;
-    }
-    if (cfstream_data->writeSSLResult < 0)
-      return -1;
-    if (cfstream_data->readSSLResult < 0)
-      return -1;
-    
-    secTrust = (SecTrustRef)CFReadStreamCopyProperty(cfstream_data->readStream, kCFStreamPropertySSLPeerTrust);
-    if (secTrust) {
-        // SecTrustEvaluate() needs to be called before SecTrustGetCertificateCount() in Mac OS X <= 10.8
-        SecTrustEvaluate(secTrust, NULL);
-        count = SecTrustGetCertificateCount(secTrust);
-        CFRelease(secTrust);
-    }
-    else {
-        certs = CFReadStreamCopyProperty(cfstream_data->readStream, kCFStreamPropertySSLPeerCertificates);
-        if (certs) {
-            count = CFArrayGetCount(certs);
-            CFRelease(certs);
-        }
-        else {
-            // No trust and no certs, wait more.
-            continue;
-        }
-    }
-      
-    if (count == 0) {
-      // No certificates, wait more.
-      continue;
-    }
-    
-    break;
-  }
-  
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-int mailstream_cfstream_is_ssl_enabled(mailstream * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  return cfstream_data->ssl_enabled;
-#else
-  return 0;
-#endif
-}
-
-void mailstream_cfstream_set_ssl_verification_mask(mailstream * s, int verification_mask)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  cfstream_data->ssl_certificate_verification_mask = verification_mask;
-#endif
-}
-
-void mailstream_cfstream_set_ssl_peer_name(mailstream * s, const char * peer_name)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  
-  if (cfstream_data->ssl_peer_name != peer_name) {
-    free(cfstream_data->ssl_peer_name);
-    cfstream_data->ssl_peer_name = NULL;
-    if (peer_name != NULL) {
-      cfstream_data->ssl_peer_name = strdup(peer_name);
-    }
-  }
-#endif
-}
-
-void mailstream_cfstream_set_ssl_is_server(mailstream * s, int is_server)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  cfstream_data->ssl_is_server = is_server;
-#endif
-}
-
-void mailstream_cfstream_set_ssl_level(mailstream * s, int ssl_level)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  cfstream_data = (struct mailstream_cfstream_data *) s->low->data;
-  cfstream_data->ssl_level = ssl_level;
-#endif
-}
-
-int mailstream_cfstream_wait_idle(mailstream * s, int max_idle_delay)
-{
-  return mailstream_low_cfstream_wait_idle(s->low, max_idle_delay);
-}
-
-int mailstream_low_cfstream_wait_idle(mailstream_low * low, int max_idle_delay)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  int r;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) low->data;
-  cfstream_data->idleMaxDelay = max_idle_delay;
-  
-  r = wait_runloop(low, STATE_WAIT_IDLE);
-  switch (r) {
-    case WAIT_RUNLOOP_EXIT_TIMEOUT:
-      return MAILSTREAM_IDLE_TIMEOUT;
-    case WAIT_RUNLOOP_EXIT_INTERRUPTED:
-      return MAILSTREAM_IDLE_INTERRUPTED;
-    case WAIT_RUNLOOP_EXIT_CANCELLED:
-      return MAILSTREAM_IDLE_CANCELLED;
-  }
-  return MAILSTREAM_IDLE_HASDATA;
-#else
-  return MAILSTREAM_IDLE_ERROR;
-#endif
-}
-
-#if HAVE_CFNETWORK
-static void idleInterruptedPerform(void *info)
-{
-  struct mailstream_cfstream_data * cfstream_data;
-  mailstream_low * s;
-  
-  s = info;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->idleInterrupted = true;
-}
-#endif
-
-static int mailstream_low_cfstream_setup_idle(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  cfstream_data->idleInterrupted = false;
-  cfstream_data->idleInterruptedContext.info = s;
-  cfstream_data->idleInterruptedContext.perform = idleInterruptedPerform;
-  cfstream_data->idleInterruptedSource = CFRunLoopSourceCreate(NULL, 0, &cfstream_data->idleInterruptedContext);
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-static int mailstream_low_cfstream_unsetup_idle(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  if (cfstream_data->idleInterruptedSource != NULL) {
-    CFRelease(cfstream_data->idleInterruptedSource);
-    cfstream_data->idleInterruptedSource = NULL;
-  }
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-static int mailstream_low_cfstream_interrupt_idle(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-  
-  pthread_mutex_lock(&cfstream_data->runloop_lock);
-  
-  if (cfstream_data->idleInterruptedSource != NULL) {
-    CFRunLoopSourceSignal(cfstream_data->idleInterruptedSource);
-  }
-  if (cfstream_data->runloop != NULL) {
-    CFRunLoopWakeUp(cfstream_data->runloop);
-  }
-  
-  pthread_mutex_unlock(&cfstream_data->runloop_lock);
-  return 0;
-#else
-  return -1;
-#endif
-}
-
-static carray * mailstream_low_cfstream_get_certificate_chain(mailstream_low * s)
-{
-#if HAVE_CFNETWORK
-  struct mailstream_cfstream_data * cfstream_data;
-  unsigned int i;
-  carray * result;
-  CFArrayRef certs;
-  CFIndex count;
-  
-  cfstream_data = (struct mailstream_cfstream_data *) s->data;
-    
-  SecTrustRef secTrust = (SecTrustRef)CFReadStreamCopyProperty(cfstream_data->readStream, kCFStreamPropertySSLPeerTrust);
-  if (secTrust) {
-      // SecTrustEvaluate() needs to be called before SecTrustGetCertificateCount() in Mac OS X <= 10.8
-      SecTrustEvaluate(secTrust, NULL);
-      count = SecTrustGetCertificateCount(secTrust);
-      result = carray_new(4);
-      for(i = 0 ; i < count ; i ++) {
-          SecCertificateRef cert = (SecCertificateRef) SecTrustGetCertificateAtIndex(secTrust, i);
-          CFDataRef data = SecCertificateCopyData(cert);
-          if (data == NULL) {
-            carray_free(result);
-            CFRelease(secTrust);
-            return NULL;
-          }
-          CFIndex length = CFDataGetLength(data);
-          const UInt8 * bytes = CFDataGetBytePtr(data);
-          MMAPString * str = mmap_string_sized_new(length);
-          mmap_string_append_len(str, (char*) bytes, length);
-          carray_add(result, str, NULL);
-          CFRelease(data);
-      }
-      CFRelease(secTrust);
-  }
-  else {
-      certs = CFReadStreamCopyProperty(cfstream_data->readStream, kCFStreamPropertySSLPeerCertificates);
-      if (certs) {
-          count = CFArrayGetCount(certs);
-          result = carray_new(4);
-          for(i = 0 ; i < count ; i ++) {
-              SecCertificateRef cert = (SecCertificateRef) CFArrayGetValueAtIndex(certs, i);
-              CFDataRef data = SecCertificateCopyData(cert);
-              if (data == NULL) {
-                carray_free(result);
-                CFRelease(certs);
-                return NULL;
-              }
-              CFIndex length = CFDataGetLength(data);
-              const UInt8 * bytes = CFDataGetBytePtr(data);
-              MMAPString * str = mmap_string_sized_new(length);
-              mmap_string_append_len(str, (char*) bytes, length);
-              carray_add(result, str, NULL);
-              CFRelease(data);
-          }
-          CFRelease(certs);
-      }
-      else {
-          return NULL;
-      }
-  }
-    
-  return result;
-#else
-  return NULL;
-#endif
-}

+ 0 - 114
deltachat-ios/libraries/libetpan/src/data-types/mailstream_cfstream.h

@@ -1,114 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2005 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef MAILSTREAM_CFSTREAM_H
-
-#define MAILSTREAM_CFSTREAM_H
-
-#include <libetpan/libetpan-config.h>
-#include <libetpan/mailstream.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-  
-  LIBETPAN_EXPORT
-  extern int mailstream_cfstream_enabled;
-  
-  LIBETPAN_EXPORT
-  extern int mailstream_cfstream_voip_enabled;
-  
-  enum {
-    MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_CERTIFICATES = 1 << 0,
-    MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_ROOTS = 1 << 1,
-    MAILSTREAM_CFSTREAM_SSL_ALLOWS_ANY_ROOT = 1 << 2,
-    MAILSTREAM_CFSTREAM_SSL_DISABLE_VALIDATES_CERTIFICATE_CHAIN = 1 << 3,
-    MAILSTREAM_CFSTREAM_SSL_NO_VERIFICATION = MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_CERTIFICATES | 
-       MAILSTREAM_CFSTREAM_SSL_ALLOWS_EXPIRED_ROOTS |
-       MAILSTREAM_CFSTREAM_SSL_ALLOWS_ANY_ROOT |
-       MAILSTREAM_CFSTREAM_SSL_DISABLE_VALIDATES_CERTIFICATE_CHAIN
-  };
-  
-  enum {
-    MAILSTREAM_CFSTREAM_SSL_LEVEL_NONE,
-    MAILSTREAM_CFSTREAM_SSL_LEVEL_SSLv2,
-    MAILSTREAM_CFSTREAM_SSL_LEVEL_SSLv3,
-    MAILSTREAM_CFSTREAM_SSL_LEVEL_TLSv1,
-    MAILSTREAM_CFSTREAM_SSL_LEVEL_NEGOCIATED_SSL
-  };
-  
-  /* socket */
-  
-  extern mailstream_low_driver * mailstream_cfstream_driver;
-  
-  mailstream * mailstream_cfstream_open(const char * hostname, int16_t port);
-  mailstream * mailstream_cfstream_open_timeout(const char * hostname, int16_t port, time_t timeout);
-  mailstream * mailstream_cfstream_open_voip(const char * hostname, int16_t port, int voip_enabled);
-  mailstream * mailstream_cfstream_open_voip_timeout(const char * hostname, int16_t port, int voip_enabled,
-		time_t timeout);
-	
-  mailstream_low * mailstream_low_cfstream_open(const char * hostname, int16_t port);
-	mailstream_low * mailstream_low_cfstream_open_timeout(const char * hostname, int16_t port,
-		time_t timeout);
-  mailstream_low * mailstream_low_cfstream_open_voip(const char * hostname, int16_t port, int voip_enabled);
-  mailstream_low * mailstream_low_cfstream_open_voip_timeout(const char * hostname, int16_t port,
-    int voip_enabled, time_t timeout);
-  
-  /* first, set these settings */
-  void mailstream_cfstream_set_ssl_verification_mask(mailstream * s, int verification_mask);
-  void mailstream_cfstream_set_ssl_peer_name(mailstream * s, const char * peer_name);
-  void mailstream_cfstream_set_ssl_is_server(mailstream * s, int is_server);
-  void mailstream_cfstream_set_ssl_level(mailstream * s, int ssl_level);
-  /* missing setting certificate */
-  
-  /* then, enable SSL */
-  int mailstream_cfstream_set_ssl_enabled(mailstream * s, int ssl_enabled);
-  int mailstream_cfstream_is_ssl_enabled(mailstream * s);
-  
-  /* support for IMAP IDLE */
-  
-  /* can be run in thread */
-  int mailstream_cfstream_wait_idle(mailstream * s, int max_idle_delay);
-  int mailstream_low_cfstream_wait_idle(mailstream_low * low, int max_idle_delay);
-  
-  /* in main thread */
-  /*
-  void mailstream_low_cfstream_setup_idle(mailstream_low * s);
-  void mailstream_low_cfstream_interrupt_idle(mailstream_low * s);
-  void mailstream_low_cfstream_unsetup_idle(mailstream_low * s);
-   */
-  /* SSL certificate */
-  
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 354
deltachat-ios/libraries/libetpan/src/data-types/mailstream_compress.c

@@ -1,354 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2013 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*  Created by Ian Ragsdale on 3/8/13. */
-
-#ifdef HAVE_CONFIG_H
-#	include <config.h>
-#endif
-
-#include "mailstream_compress.h"
-
-#include <stddef.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#if HAVE_ZLIB
-#include <zlib.h>
-#endif
-#include <assert.h>
-
-#include "mailstream_low.h"
-#include "mailstream_cancel.h"
-
-#define CHUNK_SIZE 1024
-
-#ifndef MIN
-#define MIN(x, y) ((x) < (y) ? (x) : (y))
-#endif
-
-static ssize_t mailstream_low_compress_read(mailstream_low * s, void * buf, size_t count);
-static ssize_t mailstream_low_compress_write(mailstream_low * s, const void * buf, size_t count);
-static int mailstream_low_compress_close(mailstream_low * s);
-static int mailstream_low_compress_get_fd(mailstream_low * s);
-static struct mailstream_cancel * mailstream_low_compress_get_cancel(mailstream_low * s);
-static void mailstream_low_compress_free(mailstream_low * s);
-static void mailstream_low_compress_cancel(mailstream_low * s);
-static carray * mailstream_low_compress_get_certificate_chain(mailstream_low * s);
-static int mailstream_low_compress_setup_idle(mailstream_low * low);
-static int mailstream_low_compress_unsetup_idle(mailstream_low * low);
-static int mailstream_low_compress_interrupt_idle(mailstream_low * low);
-
-#if HAVE_ZLIB
-typedef struct mailstream_compress_data {
-  mailstream_low * ms;
-  z_stream *compress_stream;
-  z_stream *decompress_stream;
-  unsigned char input_buf[CHUNK_SIZE];
-  unsigned char output_buf[CHUNK_SIZE];
-} compress_data;
-#endif
-
-static mailstream_low_driver local_mailstream_compress_driver = {
-  /* mailstream_read */ mailstream_low_compress_read,
-  /* mailstream_write */ mailstream_low_compress_write,
-  /* mailstream_close */ mailstream_low_compress_close,
-  /* mailstream_get_fd */ mailstream_low_compress_get_fd,
-  /* mailstream_free */ mailstream_low_compress_free,
-  /* mailstream_cancel */ mailstream_low_compress_cancel,
-  /* mailstream_get_cancel */ mailstream_low_compress_get_cancel,
-  /* mailstream_get_certificate_chain */ mailstream_low_compress_get_certificate_chain,
-  /* mailstream_setup_idle */ mailstream_low_compress_setup_idle,
-  /* mailstream_unsetup_idle */ mailstream_low_compress_unsetup_idle,
-  /* mailstream_interrupt_idle */ mailstream_low_compress_interrupt_idle,
-};
-
-mailstream_low_driver * mailstream_compress_driver = &local_mailstream_compress_driver;
-
-mailstream_low * mailstream_low_compress_open(mailstream_low * ms)
-{
-#if HAVE_ZLIB
-  mailstream_low * s;
-    
-  /* stores the original mailstream */
-  struct mailstream_compress_data * compress_data = calloc(1, sizeof(* compress_data));
-  if (compress_data == NULL)
-    goto err;
-
-  compress_data->compress_stream = NULL;
-  compress_data->decompress_stream = NULL;
-
-  /* allocate deflate state */
-  compress_data->compress_stream = malloc(sizeof(z_stream));
-  compress_data->compress_stream->zalloc = Z_NULL;
-  compress_data->compress_stream->zfree = Z_NULL;
-  compress_data->compress_stream->opaque = Z_NULL;
-  /* these specific settings are very important - don't change without looking at the COMPRESS RFC */
-  int ret = deflateInit2(compress_data->compress_stream, Z_BEST_SPEED, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY);
-  if (ret != Z_OK) {
-    goto free_compress_data;
-  }
-  compress_data->compress_stream->avail_in = 0;
-  compress_data->compress_stream->avail_out = 0;
-
-  /* allocate inflate state */
-  compress_data->decompress_stream = malloc(sizeof(z_stream));
-  compress_data->decompress_stream->zalloc = Z_NULL;
-  compress_data->decompress_stream->zfree = Z_NULL;
-  compress_data->decompress_stream->opaque = Z_NULL;
-  /* these specific settings are very important - don't change without looking at the COMPRESS RFC */
-  ret = inflateInit2(compress_data->decompress_stream, -15);
-  if (ret != Z_OK) {
-    goto free_compress_data;
-  }
-  compress_data->decompress_stream->avail_in = 0;
-  compress_data->decompress_stream->avail_out = 0;
-
-  compress_data->ms = ms;
-
-  s = mailstream_low_new(compress_data, mailstream_compress_driver);
-  if (s == NULL)
-    goto free_compress_data;
-    
-  return s;
-    
-  free_compress_data:
-  if (compress_data->compress_stream) {
-    deflateEnd(compress_data->compress_stream);
-    free(compress_data->compress_stream);
-  }
-  if (compress_data->decompress_stream) {
-    inflateEnd(compress_data->decompress_stream);
-    free(compress_data->decompress_stream);
-  }
-  free(compress_data);
-  err:
-  return NULL;
-#else
-  return NULL;
-#endif
-}
-
-static ssize_t mailstream_low_compress_read(mailstream_low * s, void * buf, size_t count)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  data->ms->timeout = s->timeout;
-  z_stream * strm = data->decompress_stream;
-    
-  int zr;
-
-  do {
-    /* if there is no compressed data, read more */
-    if (strm->avail_in == 0) {
-      int read = (int) data->ms->driver->mailstream_read(data->ms, data->input_buf, CHUNK_SIZE);
-      if (read <= 0) {
-        return read;
-      }
-      strm->avail_in = read;
-      strm->next_in = data->input_buf;
-    }
-
-    /* set the output buffer */
-    strm->next_out = buf;
-    strm->avail_out = (int) count;
-
-    /* uncompress any waiting data */
-    zr = inflate(strm, Z_NO_FLUSH);
-  }
-  /*
-  it's possible that there was data in the stream, but not enough that zlib could figure
-  out what to do with it. in this case, read some more and try again.
-  */
-  while (zr == Z_OK && strm->avail_in == 0 && strm->avail_out == count);
-
-  /* if we got an error, return -1 to close the connection */
-  if (zr < 0) {
-    return -1;
-  }
-
-  /* let the client know how much data was read */
-  return count - strm->avail_out;
-#else
-  return -1;
-#endif
-}
-
-static ssize_t mailstream_low_compress_write(mailstream_low * s, const void * buf, size_t count) {
-#if HAVE_ZLIB
-  int zr;
-  //int wr;
-  compress_data * data = s->data;
-  data->ms->timeout = s->timeout;
-  z_stream * strm = data->compress_stream;
-
-  strm->next_in = (Bytef *)buf;
-  /* we won't try to compress more than CHUNK_SIZE at a time so we always have enough buffer space */
-  int compress_len = MIN((int) count, CHUNK_SIZE);
-  strm->avail_in = compress_len;
-  strm->avail_out = CHUNK_SIZE;
-  strm->next_out = data->output_buf;
-
-  zr = deflate(strm, Z_PARTIAL_FLUSH);
-  if (zr < 0) {
-    //STREAM_LOG(s, 1, "<<<<<<< Error deflating ");
-    //STREAM_LOG(s, 1, strm->msg);
-    //STREAM_LOG(s, 1, " <<<<<<<");
-    //STREAM_LOG(s, 1, "\n");
-    return -1;
-  }
-  
-  unsigned char * p = data->output_buf;
-  size_t remaining = CHUNK_SIZE - strm->avail_out;
-  while (remaining > 0) {
-    ssize_t wr = data->ms->driver->mailstream_write(data->ms, p, remaining);
-    if (wr < 0) {
-      return -1;
-    }
-    
-    p += wr;
-    remaining -= wr;
-  }
-  
-  /* let the caller know how much data we wrote */
-  return compress_len - strm->avail_in;
-#else
-  return -1;
-#endif
-}
-
-static int mailstream_low_compress_close(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  return mailstream_low_close(data->ms);
-#else
-  return 0;
-#endif
-}
-
-static int mailstream_low_compress_get_fd(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  return data->ms->driver->mailstream_get_fd(data->ms);
-#else
-  return -1;
-#endif
-}
-
-static struct mailstream_cancel * mailstream_low_compress_get_cancel(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  return data->ms->driver->mailstream_get_cancel(data->ms);
-#else
-  return NULL;
-#endif
-}
-
-static void mailstream_low_compress_free(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  mailstream_low_free(data->ms);
-  if (data->compress_stream) {
-    deflateEnd(data->compress_stream);
-    free(data->compress_stream);
-  }
-  if (data->decompress_stream) {
-    inflateEnd(data->decompress_stream);
-    free(data->decompress_stream);
-  }
-  free(data);
-  free(s);
-#endif
-}
-
-static void mailstream_low_compress_cancel(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  data->ms->driver->mailstream_cancel(data->ms);
-#endif
-}
-
-static carray * mailstream_low_compress_get_certificate_chain(mailstream_low * s)
-{
-#if HAVE_ZLIB
-  compress_data * data = s->data;
-  return data->ms->driver->mailstream_get_certificate_chain(data->ms);
-#else
-  return NULL;
-#endif
-}
-
-int mailstream_low_compress_wait_idle(mailstream_low * low,
-                                      struct mailstream_cancel * idle,
-                                      int max_idle_delay)
-{
-#if HAVE_ZLIB
-  compress_data * data = low->data;
-  return mailstream_low_wait_idle(data->ms, idle, max_idle_delay);
-#else
-  return MAILSTREAM_IDLE_ERROR;
-#endif
-}
-
-static int mailstream_low_compress_setup_idle(mailstream_low * low)
-{
-#if HAVE_ZLIB
-  compress_data * data = low->data;
-  return mailstream_low_setup_idle(data->ms);
-#else
-  return -1;
-#endif
-}
-
-static int mailstream_low_compress_unsetup_idle(mailstream_low * low)
-{
-#if HAVE_ZLIB
-  compress_data * data = low->data;
-  return mailstream_low_unsetup_idle(data->ms);
-#else
-  return -1;
-#endif
-}
-
-static int mailstream_low_compress_interrupt_idle(mailstream_low * low)
-{
-#if HAVE_ZLIB
-  compress_data * data = low->data;
-  return mailstream_low_interrupt_idle(data->ms);
-#else
-  return -1;
-#endif
-}

+ 0 - 72
deltachat-ios/libraries/libetpan/src/data-types/mailstream_compress.h

@@ -1,72 +0,0 @@
-/*
- * libEtPan! -- a mail stuff library
- *
- * Copyright (C) 2001, 2013 - DINH Viet Hoa
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the libEtPan! project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*  Created by Ian Ragsdale on 3/8/13. */
-
-#ifndef MAILSTREAM_COMPRESS_H
-#define MAILSTREAM_COMPRESS_H
-
-#define USE_DEFLATE 1
-
-#include <libetpan/mailstream.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-    
-extern mailstream_low_driver * mailstream_compress_driver;
-
-struct mailstream_compress_context;
-
-/* exported methods */
-LIBETPAN_EXPORT
-mailstream_low * mailstream_low_compress_open(mailstream_low * ms);
-
-LIBETPAN_EXPORT
-int mailstream_low_compress_wait_idle(mailstream_low * low,
-                                      struct mailstream_cancel * idle,
-                                      int max_idle_delay);
-
-  /*
-LIBETPAN_EXPORT
-int mailstream_low_compress_setup_idle(mailstream_low * low);
-
-LIBETPAN_EXPORT
-int mailstream_low_compress_unsetup_idle(mailstream_low * low);
-
-LIBETPAN_EXPORT
-int mailstream_low_compress_interrupt_idle(mailstream_low * low);
-*/
-  
-#ifdef __cplusplus
-}
-#endif
-#endif

Some files were not shown because too many files changed in this diff