Sorry but this is a large pull request. I couldn't figure out how to make it smaller. Here is a list of the changes:
Fixed bug created when I changed Node->types() previously.
Added comments in the code which point to the RFC so its clear why we do
those things.
Rewrote Text::vCard::Node->as_string()
Text::vCard::Addressbook->export() now uses Text::vCard->as_string()
Wrote code to wrap utf8 encoded strings
Fixed encoding issues with MIME::Base64 and MIME::QuotedPrint
Created and updated many tests
Added new pod explaining encoding and utf-8 stuff
Unescape '\', ';', and ',' when reading a vcard file per the RFC.
Mostly things worked in the past if you were reading vcards but were very
problematic if you writing vcards. This situation has been greatly improved.
Fixed a problem writing vcards which caused output to look like 'N;=Batman'
instead of 'N=Batman'
Fixed a problem with writing ORG values where the output was a ',' but should
have been a ';'.
Possibly other things I forgot to mention.
Note that the git might auto correct the line endings on the vcf files which will cause some tests to fail. Hopefully your editor is clever enough to tell you what line endings are being used. Make sure you have your git configuration autocrlf value set to fase:
git config --global core.autocrlf false
Also note this pull request is not backwards compatible with the current master branch.
Sorry but this is a large pull request. I couldn't figure out how to make it smaller. Here is a list of the changes:
Note that the git might auto correct the line endings on the vcf files which will cause some tests to fail. Hopefully your editor is clever enough to tell you what line endings are being used. Make sure you have your git configuration autocrlf value set to fase:
git config --global core.autocrlf false
Also note this pull request is not backwards compatible with the current master branch.