# HG changeset patch # User Paul Wise # Date 1576934745 -28800 # Node ID 5c0ce43c7532f38606f195fc1281792b5b4712a1 # Parent 3f83feface7a7b5a31a33264702a859ca8dbc249 Fix a number of spelling mistakes Changes-by: codespell -w Suggested-by: codespell, spellintian, lintian I: libpst4: spelling-error-in-binary usr/lib/x86_64-linux-gnu/libpst.so.4.1.14 occured occurred I: libpst-dev: spelling-error-in-manpage usr/share/man/man5/outlook.pst.5.gz Attachement Attachment diff -r 3f83feface7a -r 5c0ce43c7532 ChangeLog --- a/ChangeLog Sat Dec 21 21:25:45 2019 +0800 +++ b/ChangeLog Sat Dec 21 21:25:45 2019 +0800 @@ -5,7 +5,7 @@ =============================== * Alfredo Esteban - add -l and -f options to lspst. * fix bydays recurring appointment, allow all 7 days - * update for fedora python packaging + * update for Fedora Python packaging LibPST 0.6.71 (2017-07-21) =============================== @@ -105,7 +105,7 @@ * fix for buffer overrun; attachment size from the secondary list of mapi elements overwrote proper size from the primary list of mapi elements. - fedora bugzilla 696263 + Fedora bugzilla 696263 LibPST 0.6.50 (2010-12-24) =============================== @@ -131,7 +131,7 @@ LibPST 0.6.46 (2010-02-13) =============================== * prefer libpthread over librt for finding sem_init function. - * rebuild for fedora 13 change in implicit dso linking semantics. + * rebuild for Fedora 13 change in implicit dso linking semantics. LibPST 0.6.45 (2009-11-18) =============================== @@ -166,20 +166,20 @@ LibPST 0.6.41 (2009-06-23) =============================== * fix ax_python detection - should not use locate command - * checking for fedora versions is not needed + * checking for Fedora versions is not needed LibPST 0.6.40 (2009-06-23) =============================== - * fedora 11 has python2.6 + * Fedora 11 has python2.6 * remove pdf version of the man pages LibPST 0.6.39 (2009-06-21) =============================== - * fedora > 10 moved to boost-python-devel + * Fedora > 10 moved to boost-python-devel LibPST 0.6.38 (2009-06-21) =============================== - * add python module interface to the shared library for easy scripting. + * add Python module interface to the shared library for easy scripting. * the shared library must never write to stdout or stderr. * fix pst_attach_to_mem so the caller does not need to initialize the buffer pointer. @@ -221,7 +221,7 @@ * move version-info into main configure.in, and set it properly * prefix all external symbols in the shared library with pst_ to avoid symbol clashes with other shared libraries. - * new debianization from hggdh. + * new Debianization from hggdh. * build separate libpst, libpst-libs, libpst-devel rpms. * remove many functions from the interface by making them static. @@ -233,8 +233,8 @@ LibPST 0.6.33 (2009-03-17) =============================== - * fix fedora 11 type mismatch warning (actually an error in this case). - * fix large file support, some sytems require config.h to be included + * fix Fedora 11 type mismatch warning (actually an error in this case). + * fix large file support, some systems require config.h to be included earlier in the compilation. * compensate for iconv conversion to utf-7 that produces strings that are not null terminated. @@ -248,7 +248,7 @@ LibPST 0.6.31 (2009-03-14) =============================== - * bump version for fedora cvs tagging mistake. + * bump version for Fedora cvs tagging mistake. LibPST 0.6.30 (2009-03-14) =============================== @@ -326,7 +326,7 @@ LibPST 0.6.23 (2008-12-04) =============================== - * bump version to avoid cvs tagging mistake in fedora + * bump version to avoid cvs tagging mistake in Fedora LibPST 0.6.22 (2008-11-28) =============================== @@ -375,7 +375,7 @@ LibPST 0.6.14 (2008-06-15) =============================== - * Fix my mistake in debian packaging. + * Fix my mistake in Debian packaging. LibPST 0.6.13 (2008-06-13) =============================== @@ -385,7 +385,7 @@ LibPST 0.6.12 (2008-06-10) =============================== - * Patch from Joachim Metz for debian packaging, and fix + * Patch from Joachim Metz for Debian packaging, and fix for incorrect length on lz decompression. LibPST 0.6.11 (2008-06-03) @@ -429,7 +429,7 @@ LibPST 0.6.6 (2008-01-31) =============================== * More code cleanup, removing unnecessary null terminations on - binary buffers. All pst file reads now go thru one function. + binary buffers. All pst file reads now go through one function. Logging all pst reads to detect cases where we read the same data multiple times - discovers node sizes are actually 512 bytes. * Switch from cvs to mercurial source control. @@ -460,7 +460,7 @@ (SourceForge #304314) * Fix crash with unknown reference type * Fix more memory issues detected by valgrind - * lspst - add usage mesage and option parsing using getopt + * lspst - add usage message and option parsing using getopt (SourceForge #304199) * Fix crash caused by invalid free calls * Fix crash when email subject is empty @@ -497,7 +497,7 @@ LibPST 0.5.11 (2007-08-24) =============================== * fix from Stevens Miller - for unitialized variable. + for uninitialized variable. LibPST 0.5.10 (2007-08-20) =============================== @@ -555,7 +555,7 @@ LibPST 0.5.3 (2006-02-20) =============================== - * switch to gnu autoconf/automake. This breaks the MS VC++ projects + * switch to GNU autoconf/automake. This breaks the MS VC++ projects since the source code is now in the src subdirectory. * documentation switched to xml, building man pages and html from the master xml copy. @@ -573,7 +573,7 @@ LibPST 0.5.1 (17 November 2004) =============================== -Well, alot has happened since the last release of libpst. +Well, a lot has happened since the last release of libpst. Release / Management: @@ -602,7 +602,7 @@ * Fixed bogus creation of readpst.log on every invocation * escaped dashes and apostrophe in manpages * Updated TODO - * added manpages from debian pkg + * added manpages from Debian pkg * fix escaped-string length count to consider '\n', thanks to Paul Bakker . * ensure there's a blank line between header and body @@ -675,9 +675,9 @@ Fixed a couple more bugs. Is it me or do bugs just insert themselves in random, hard to find places! -Cured a few problems with regard to emails with multiple embeded +Cured a few problems with regard to emails with multiple embedded items. They are not fully re-created using Mime-types, but are -accessible with the -S switch (which saves everything as seperate +accessible with the -S switch (which saves everything as separate items) Fixed a problem reading the first index. Back sliders are now @@ -700,7 +700,7 @@ Fixed a nasty bug that occasionally corrupted attachments. Another bug with regard to reading of indexes (also occasional). -Another output method has been added which is called "Seperate". It is +Another output method has been added which is called "Separate". It is activated with the -S switch. It operates in the following manor: |--Inbox-->000000 @@ -710,10 +710,10 @@ | 0000001 | 0000002 -All the emails are stored in seperate files counting from 0 upwards, +All the emails are stored in separate files counting from 0 upwards, in a folder named as the PST folder. -When an email has an attachment, it is saved as a seperate file. The +When an email has an attachment, it is saved as a separate file. The filename for the attachment is made up of 2 parts, the first is the email number to which it belongs, the second is its filename. @@ -743,7 +743,7 @@ A whole load more items are now recognized by the Item records. With more items in Emails and Folders. I haven't got to the Contacts yet. -Anyway, this is what I would call a minor feature enhancment and +Anyway, this is what I would call a minor feature enhancement and bugfix release. Dave Smith @@ -820,11 +820,11 @@ A major enhancement is that "compressible encryption" support has been added. This was an incredibly simple method to use. It is basically a -ceasar cipher. It has been noted by several users already that the PST +caesar cipher. It has been noted by several users already that the PST password that Outlook uses, serves *no purpose*. It is not used to -encrypt the PST, it is mearly stored there. This means that the +encrypt the PST, it is merely stored there. This means that the readpst application is able to convert PST files without knowing the -password. Microsoft have some explaning to do! +password. Microsoft have some explaining to do! Output files are now not overwritten if they already exist. This means that if you have two folders in your PST file named "fred", the first diff -r 3f83feface7a -r 5c0ce43c7532 Doxyfile --- a/Doxyfile Sat Dec 21 21:25:45 2019 +0800 +++ b/Doxyfile Sat Dec 21 21:25:45 2019 +0800 @@ -278,10 +278,10 @@ # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penality. +# causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will rougly double the +# a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols diff -r 3f83feface7a -r 5c0ce43c7532 NEWS --- a/NEWS Sat Dec 21 21:25:45 2019 +0800 +++ b/NEWS Sat Dec 21 21:25:45 2019 +0800 @@ -73,7 +73,7 @@ 0.6.2 2008-01-12 More fixes for 64 bit format, consistent types size_t, off_t, etc. 0.6.1 2008-01-06 Outlook 2003 64 bit format and fix for bogus contacts. 0.5.12 2007-10-02 security fix for possible buffer overruns in liv-zemple decoding -0.5.11 2007-08-24 fix for unitialized variable +0.5.11 2007-08-24 fix for uninitialized variable 0.5.10 2007-08-20 fix yet more valgrind errors, restructure readpst recursive walk, backwards overrun test 0.5.9 2007-08-12 fix more valgrind errors, pst2ldif wrote undefined data 0.5.8 2007-08-10 lzfu_decompress/base64_encode encoded random data into attachment diff -r 3f83feface7a -r 5c0ce43c7532 configure.ac --- a/configure.ac Sat Dec 21 21:25:45 2019 +0800 +++ b/configure.ac Sat Dec 21 21:25:45 2019 +0800 @@ -334,10 +334,10 @@ # find the flags for that version AX_PYTHON_DEVEL([>= '$PYTHON_VERSION']) - # do we have boost python? + # do we have Boost Python? AX_BOOST_PYTHON if test "$ac_cv_boost_python" = "no"; then - AC_MSG_ERROR(boost python not found) + AC_MSG_ERROR(Boost Python not found) fi AC_SUBST(PYTHON_VERSION, [$ax_python_bin]) fi diff -r 3f83feface7a -r 5c0ce43c7532 contrib/FILE-FORMAT --- a/contrib/FILE-FORMAT Sat Dec 21 21:25:45 2019 +0800 +++ b/contrib/FILE-FORMAT Sat Dec 21 21:25:45 2019 +0800 @@ -8,7 +8,7 @@ 0xC4 - Pointer to Index of all Items in File, associating the first ID [4 bytes] 0xBC - Pointer to Index of controlling Items in File [4 bytes] -First All Items Index: - constists of a table of offsets pointing to the table of items. +First All Items Index: - consists of a table of offsets pointing to the table of items. ====================== repeating: 0x0 - First id in this table [4 bytes] @@ -87,7 +87,7 @@ 0x0 - Item type [2 bytes] (subject, from, to ...) 0x02 - Reference type [2 bytes] (how to interpret the value) 0x04 - Value [4 bytes] -until the alloted size of the record has been read. (The following Block Offset from the Index has been reached) +until the allotted size of the record has been read. (The following Block Offset from the Index has been reached) Reference Types: - I don't know if I have interpreted this field correctly. It might have a completely different purpose =============== @@ -154,13 +154,13 @@ 1035 [REF] Message ID 1042 [REF] In-Reply-To or Parent's Message ID 1046 [REF] Return Path -3001 [REF] Folder Name? I have seen this value used for the contacts record aswell +3001 [REF] Folder Name? I have seen this value used for the contacts record as well 3007 [REF] Date. 3008 [REF] Date. 300B [REF] binary record header 35E0 [REF] binary record found in first item. Contains the reference to "Top of Personal Folder" item 35E3 [REF] binary record with a reference to "Deleted Items" item -35E7 [REF] binary record with a refernece to "Search Root" item +35E7 [REF] binary record with a reference to "Search Root" item 3602 [REF] the number of emails stored in a folder 3603 [REF] the number of unread emails in a folder 3613 [REF] the folder content description diff -r 3f83feface7a -r 5c0ce43c7532 contrib/FILE-FORMAT.html --- a/contrib/FILE-FORMAT.html Sat Dec 21 21:25:45 2019 +0800 +++ b/contrib/FILE-FORMAT.html Sat Dec 21 21:25:45 2019 +0800 @@ -19,7 +19,7 @@

This is the size of the file. If I understand correctly, then Outlook would appear to have a 2GB, or 4GB file limit. Actually, I am not sure that the whole file format could take more than 1GB.

Pointer to Index of Controlling Items

-

This is what is reffered to as the second index, or Descriptive index. These records contain pointers to the item description and a table of extra ids. These records also contain the id2# of its parent.

+

This is what is referred to as the second index, or Descriptive index. These records contain pointers to the item description and a table of extra ids. These records also contain the id2# of its parent.

Table pointing to further tables

     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
@@ -32,7 +32,7 @@
 

Pointer to index of ID Offsets

-

This is what is reffered to as an ID. These just basically point to offsets in the file. The do not describe what they point to. Each ID2 record that needs data not stored in it, will have an ID value that is a pointer to some data.

+

This is what is referred to as an ID. These just basically point to offsets in the file. The do not describe what they point to. Each ID2 record that needs data not stored in it, will have an ID value that is a pointer to some data.

Table pointing to further tables

     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
diff -r 3f83feface7a -r 5c0ce43c7532 libpst.spec.in
--- a/libpst.spec.in	Sat Dec 21 21:25:45 2019 +0800
+++ b/libpst.spec.in	Sat Dec 21 21:25:45 2019 +0800
@@ -63,7 +63,7 @@
 %description python
 %endif
 The libpst-python package allows you to use the libpst shared object
-from python code.
+from Python code.
 
 
 %package devel
@@ -182,7 +182,7 @@
 - Tim Dufrane - fix segfault in pst_close()
 
 * Fri Jun 07 2019 Carl Byington  0.6.72-4
-- fixes for python3
+- fixes for Python 3
 
 * Fri Feb 01 2019 Fedora Release Engineering  - 0.6.72-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
@@ -192,7 +192,7 @@
 
 * Wed Aug 01 2018 Carl Byington  0.6.72-1
 - allow all 7 days in bydays recurring appointment
-- update for fedora python packaging
+- update for Fedora Python packaging
 - Alfredo Esteban - add -l and -f options to lspst
 
 * Fri Jul 13 2018 Fedora Release Engineering  - 0.6.71-8
@@ -219,7 +219,7 @@
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
 
 * Fri Jul 21 2017 Carl Byington  0.6.71-1
-- fedora python naming scheme changes
+- Fedora Python naming scheme changes
 - Zachary Travis - Add support for the OST 2013 format, and
   Content-Disposition filename key fix for outlook compatibility
 
@@ -277,7 +277,7 @@
 - Rebuilt for GCC 5 C++11 ABI change
 
 * Mon Mar 09 2015 Carl Byington  0.6.64-1
-- fix line wrap on python provides_exclude_from
+- fix line wrap on Python provides_exclude_from
 - fix unchecked errors found by cppcheck
 - AJ Shankar fixes for attachment processing and body encodings
   that contain embedded null chars.
@@ -339,7 +339,7 @@
 - merge -m .msg files code into main branch
 
 * Thu Aug 09 2012 Carl Byington  - 0.6.55-2
-- rebuild for python
+- rebuild for Python
 
 * Thu Jul 19 2012 Fedora Release Engineering  - 0.6.54-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
@@ -356,7 +356,7 @@
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 
 * Sat Dec 24 2011 Carl Byington  - 0.6.54-3
-- bump versions and prep for fedora build
+- bump versions and prep for Fedora build
 
 * Wed Nov 30 2011 Petr Pisar  - 0.6.53-3
 - Rebuild against boost-1.48
@@ -385,7 +385,7 @@
 - fix for buffer overrun; attachment size from the secondary
   list of mapi elements overwrote proper size from the primary
   list of mapi elements.
-  fedora bugzilla 696263
+  Fedora bugzilla 696263
 
 * Tue Feb 08 2011 Fedora Release Engineering  - 0.6.49-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
@@ -402,7 +402,7 @@
 
 * Mon Sep 13 2010 Carl Byington  - 0.6.49-1
 - fix to ignore embedded objects that are not email messages
-  fedora bugzilla 633498
+  Fedora bugzilla 633498
 
 * Thu Sep 02 2010 Carl Byington  - 0.6.48-1
 - fix for broken internet headers from Outlook
@@ -411,10 +411,10 @@
 - use no from quoting for output formats with single message per file
 
 * Sat Jul 31 2010 Carl Byington  - 0.6.47-6
-- rebuild for python dependencies
+- rebuild for Python dependencies
 
 * Mon Jul 26 2010 David Malcolm  - 0.6.47-4
-- hack up configure so that it looks for python 2.7
+- hack up configure so that it looks for Python 2.7
 
 * Wed Jul 21 2010 David Malcolm  - 0.6.47-3
 - Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
@@ -457,17 +457,17 @@
 
 * Tue Jun 23 2009 Carl Byington  - 0.6.41-1
 - fix ax_python detection - should not use locate command
-- checking for fedora versions is not needed
+- checking for Fedora versions is not needed
 
 * Tue Jun 23 2009 Carl Byington  - 0.6.40-1
-- fedora 11 has python2.6
+- Fedora 11 has python2.6
 - remove pdf version of the man pages
 
 * Sun Jun 21 2009 Carl Byington  - 0.6.39-1
-- fedora > 10 moved to boost-python-devel
+- Fedora > 10 moved to boost-python-devel
 
 * Sun Jun 21 2009 Carl Byington  - 0.6.38-1
-- add python interface to the shared library.
+- add Python interface to the shared library.
 - bump soname to version 4 for many changes to the interface.
 - better decoding of recurrence data in appointments.
 - remove readpstlog since debug log files are now plain text.
@@ -498,7 +498,7 @@
 - fix ppc64 compile error
 
 * Sat Mar 14 2009 Carl Byington  - 0.6.31-1
-- bump version for fedora cvs tagging mistake
+- bump version for Fedora cvs tagging mistake
 
 * Sat Mar 14 2009 Carl Byington  - 0.6.30-1
 - track character set individually for each mapi element.
@@ -573,13 +573,13 @@
 - Fix for missing length on lz decompression, bug found by Chris White.
 
 * Sun Jun 15 2008 Carl Byington  - 0.6.14-1
-- Fix my mistake in debian packaging.
+- Fix my mistake in Debian packaging.
 
 * Fri Jun 13 2008 Carl Byington  - 0.6.13-1
 - Patch from Robert Simpson for encryption type 2.
 
 * Tue Jun 10 2008 Carl Byington  - 0.6.12-1
-- Patch from Joachim Metz for debian packaging and
+- Patch from Joachim Metz for Debian packaging and
 - fix for incorrect length on lz decompression
 
 * Tue Jun 03 2008 Carl Byington  - 0.6.11-1
diff -r 3f83feface7a -r 5c0ce43c7532 python/python-libpst.cpp
--- a/python/python-libpst.cpp	Sat Dec 21 21:25:45 2019 +0800
+++ b/python/python-libpst.cpp	Sat Dec 21 21:25:45 2019 +0800
@@ -19,7 +19,7 @@
 using namespace boost::python;
 
 
-/** python version of pst_binary, where python is
+/** Python version of pst_binary, where Python is
     responsible for freeing the underlying buffer */
 struct ppst_binary : public pst_binary
 {
@@ -47,9 +47,9 @@
     pst_recurrence* pst_convert_recurrence(pst_item_appointment *appt);
     void            pst_free_recurrence(pst_recurrence* r);
 
-    /** helper for python access to fopen() */
+    /** helper for Python access to fopen() */
     FILE*          ppst_open_file(string filename, string mode);
-    /** helper for python access to fclose() */
+    /** helper for Python access to fclose() */
     int            ppst_close_file(FILE* fp);
 
 private:
diff -r 3f83feface7a -r 5c0ce43c7532 src/getidblock.c
--- a/src/getidblock.c	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/getidblock.c	Sat Dec 21 21:25:45 2019 +0800
@@ -34,7 +34,7 @@
     DEBUG_INFO(("Printing block i_id %#"PRIx64", size %#"PRIx64"\n", i_id, (uint64_t)readSize));
     if (binary) {
         if (fwrite(buf, 1, readSize, stdout) != 0) {
-            DIE(("Error occured during writing of buf to stdout\n"));
+            DIE(("Error occurred during writing of buf to stdout\n"));
         }
     } else {
         printf("Block id %#"PRIx64", size %#"PRIx64"\n", i_id, (uint64_t)readSize);
@@ -97,7 +97,7 @@
                 binary = 1;
                 break;
             case 'p':
-                // enable procesing of block
+                // enable processing of block
                 process = 1;
                 break;
             default:
diff -r 3f83feface7a -r 5c0ce43c7532 src/libpst.c
--- a/src/libpst.c	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/libpst.c	Sat Dec 21 21:25:45 2019 +0800
@@ -735,7 +735,7 @@
         return 0;
     }
 
-    DEBUG_INFO(("look thru d_id 0x61 list of mapi objects\n"));
+    DEBUG_INFO(("look through d_id 0x61 list of mapi objects\n"));
     for (x=0; x < list->count_elements; x++) {
         DEBUG_INFO(("#%d - mapi-id: %#x type: %#x length: %#x\n", x, list->elements[x]->mapi_id, list->elements[x]->type, list->elements[x]->size));
         if (list->elements[x]->data) {
@@ -2518,7 +2518,7 @@
                     LIST_COPY_EMAIL_INT32("RTF Sync Body CRC", item->email->rtf_body_crc);
                     break;
                 case 0x1007: // PR_RTF_SYNC_BODY_COUNT
-                    // a count of the *significant* charcters in the rtf body. Doesn't count
+                    // a count of the *significant* characters in the rtf body. Doesn't count
                     // whitespace and other ignorable characters
                     LIST_COPY_EMAIL_INT32("RTF Sync Body character count", item->email->rtf_body_char_count);
                     break;
@@ -3305,8 +3305,8 @@
     DEBUG_ENT("pst_build_id2");
 
     if (pst_read_block_size(pf, list->offset, list->size, list->inflated_size, &buf) < list->size) {
-        //an error occured in block read
-        DEBUG_WARN(("block read error occured. offset = %#"PRIx64", size = %#"PRIx64"\n", list->offset, list->size));
+        //an error occurred in block read
+        DEBUG_WARN(("block read error occurred. offset = %#"PRIx64", size = %#"PRIx64"\n", list->offset, list->size));
         if (buf) free(buf);
         DEBUG_RET();
         return NULL;
@@ -3848,7 +3848,7 @@
  * @param type
     @li 0 PST_NO_ENCRYPT, none
     @li 1 PST_COMP_ENCRYPT, simple byte substitution cipher with fixed key
-    @li 2 PST_ENCRYPT, german enigma 3 rotor cipher with fixed key
+    @li 2 PST_ENCRYPT, German enigma 3 rotor cipher with fixed key
  * @return 0 if ok, -1 if error (NULL buffer or unknown encryption type)
  */
 static int pst_decrypt(uint64_t i_id, char *buf, size_t size, unsigned char type) {
@@ -4242,7 +4242,7 @@
 
 
 static int pst_strincmp(char *a, char *b, size_t x) {
-    // compare upto x chars in string a and b case-insensitively
+    // compare up to x chars in string a and b case-insensitively
     // returns -1 if a < b, 0 if a==b, 1 if a > b
     size_t y = 0;
     while (*a != '\0' && *b != '\0' && y < x && toupper(*a)==toupper(*b)) {
@@ -4359,7 +4359,7 @@
     DEBUG_ENT("rfc2425_datetime_format");
     pst_fileTimeToStructTM(ft, &stm);
     if (strftime(result, buflen, "%Y-%m-%dT%H:%M:%SZ", &stm)==0) {
-        DEBUG_INFO(("Problem occured formatting date\n"));
+        DEBUG_INFO(("Problem occurred formatting date\n"));
     }
     DEBUG_RET();
     return result;
@@ -4371,7 +4371,7 @@
     DEBUG_ENT("rfc2445_datetime_format");
     pst_fileTimeToStructTM(ft, &stm);
     if (strftime(result, buflen, "%Y%m%dT%H%M%SZ", &stm)==0) {
-        DEBUG_INFO(("Problem occured formatting date\n"));
+        DEBUG_INFO(("Problem occurred formatting date\n"));
     }
     DEBUG_RET();
     return result;
@@ -4384,7 +4384,7 @@
     DEBUG_ENT("rfc2445_datetime_format_now");
     gmtime_r(&t, &stm);
     if (strftime(result, buflen, "%Y%m%dT%H%M%SZ", &stm)==0) {
-        DEBUG_INFO(("Problem occured formatting date\n"));
+        DEBUG_INFO(("Problem occurred formatting date\n"));
     }
     DEBUG_RET();
     return result;
@@ -4446,7 +4446,7 @@
  *  @param  item   pointer to the mapi item of interest
  *  @param[in]  buflen  length of the output buffer
  *  @param[out] result  pointer to output buffer, must be at least 30 bytes
- *  @return default character set as a string useable by iconv()
+ *  @return default character set as a string usable by iconv()
  */
 const char*    pst_default_charset(pst_item *item, int buflen, char* result) {
     return (item->body_charset.str)         ? item->body_charset.str :
diff -r 3f83feface7a -r 5c0ce43c7532 src/libpst.h
--- a/src/libpst.h	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/libpst.h	Sat Dec 21 21:25:45 2019 +0800
@@ -70,7 +70,7 @@
 #define PST_APP_LABEL_ANNIVERSARY 9
 #define PST_APP_LABEL_PHONE_CALL  10
 
-// define type of recuring event
+// define type of recurring event
 #define PST_APP_RECUR_NONE        0
 #define PST_APP_RECUR_DAILY       1
 #define PST_APP_RECUR_WEEKLY      2
@@ -266,7 +266,7 @@
     /** mapi element 0x1046, this seems to be the message-id of the rfc822 mail that is being returned */
     pst_string  return_path_address;
     /** mapi element 0x1007 PR_RTF_SYNC_BODY_COUNT,
-     *  a count of the *significant* charcters in the rtf body. Doesn't count
+     *  a count of the *significant* characters in the rtf body. Doesn't count
      *  whitespace and other ignorable characters. */
     int32_t     rtf_body_char_count;
     /** mapi element 0x1006 PR_RTF_SYNC_BODY_CRC */
@@ -679,7 +679,7 @@
      *  @li 3 has 5 parameters
      */
     uint32_t    sub_type;
-    /** must be contiguous, not an array to make python interface easier */
+    /** must be contiguous, not an array to make Python interface easier */
     uint32_t    parm1;
     uint32_t    parm2;
     uint32_t    parm3;
@@ -699,7 +699,7 @@
     uint32_t    dayofmonth;
     /** month of year for yearly recurrences */
     uint32_t    monthofyear;
-    /** occurence of day for 2nd Tuesday of month, in which case position is 2 */
+    /** occurrence of day for 2nd Tuesday of month, in which case position is 2 */
     uint32_t    position;
     /** number of occurrences, even if recurrence terminates based on date */
     uint32_t    count;
@@ -862,9 +862,9 @@
 
 /** Linked list of extended attributes.
  *  This is used to convert mapi_id values in the pst file into
- *  cannonical mapi_id values to be used in this code. This list
+ *  canonical mapi_id values to be used in this code. This list
  *  is kept in sorted order, where the key is the 'map' field.
- *  Some mapi_id values are converted to cannonical mapi_id values
+ *  Some mapi_id values are converted to canonical mapi_id values
  *  (PST_MAP_ATTRIB), and others are converted to a string
  *  (PST_ATTRIB_HEADER).
  */
@@ -928,7 +928,7 @@
     uint64_t size;
     /** @li 0 PST_NO_ENCRYPT, none
      *  @li 1 PST_COMP_ENCRYPT, simple byte substitution cipher with fixed key
-     *  @li 2 PST_ENCRYPT, german enigma 3 rotor cipher with fixed key */
+     *  @li 2 PST_ENCRYPT, German enigma 3 rotor cipher with fixed key */
     unsigned char encryption;
     /** index type or file type
      *  @li 0x0e 32 bit pre Outlook 2003
@@ -1110,7 +1110,7 @@
  * @param      item    pointer to the mapi item of interest
  * @param[in]  buflen  length of the output buffer
  * @param[out] result  pointer to output buffer, must be at least 30 bytes
- * @return default character set as a string useable by iconv()
+ * @return default character set as a string usable by iconv()
  */
 const char*     pst_default_charset(pst_item *item, int buflen, char* result);
 
diff -r 3f83feface7a -r 5c0ce43c7532 src/lspst.c
--- a/src/lspst.c	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/lspst.c	Sat Dec 21 21:25:45 2019 +0800
@@ -2,7 +2,7 @@
  * lspst.c
  * Part of the LibPST project
  * Author: Joe Nahmias 
- * Based on readpst.c by by David Smith 
+ * Based on readpst.c by David Smith 
  *
  */
 
@@ -296,7 +296,7 @@
 }
 
 
-// This function will make sure that a filename is in cannonical form.  That
+// This function will make sure that a filename is in canonical form.  That
 // is, it will replace any slashes, backslashes, or colons with underscores.
 void canonicalize_filename(char *fname) {
     DEBUG_ENT("canonicalize_filename");
diff -r 3f83feface7a -r 5c0ce43c7532 src/lzfu.c
--- a/src/lzfu.c	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/lzfu.c	Sat Dec 21 21:25:45 2019 +0800
@@ -40,7 +40,7 @@
 	unsigned int dict_length = 0;   // the dictionary pointer
 	lzfuheader lzfuhdr;             // the header of the lzfu block
 	unsigned char flags;            // 8 bits of flags (1=2byte block pointer into the dict, 0=1 byte literal)
-	unsigned char flag_mask;        // look at one flag bit each time thru the loop
+	unsigned char flag_mask;        // look at one flag bit each time through the loop
 	uint32_t i;
 	char    *out_buf;
 	uint32_t out_ptr = 0;
diff -r 3f83feface7a -r 5c0ce43c7532 src/readpst.c
--- a/src/readpst.c	Sat Dec 21 21:25:45 2019 +0800
+++ b/src/readpst.c	Sat Dec 21 21:25:45 2019 +0800
@@ -1082,7 +1082,7 @@
 
     check_filename(f_name);
     if (!attach_filename) {
-        // generate our own (dummy) filename for the attachement
+        // generate our own (dummy) filename for the attachment
         temp = pst_malloc(strlen(f_name)+15);
         sprintf(temp, "%s-attach%i", f_name, attach_num);
     } else {
diff -r 3f83feface7a -r 5c0ce43c7532 xml/libpst.in
--- a/xml/libpst.in	Sat Dec 21 21:25:45 2019 +0800
+++ b/xml/libpst.in	Sat Dec 21 21:25:45 2019 +0800
@@ -1726,7 +1726,7 @@
 0x3617  Associate Content count
 0x3701  Binary Data attachment
 0x3704  Attachment Filename
-0x3705  Attachement method
+0x3705  Attachment method
 0x3707  Attachment Filename long
 0x370b  Attachment Position
 0x370e  Attachment mime encoding