Update `CHANGES` files, other minor whitespace and documentation issues.
diff --git a/docs/CHANGES b/docs/CHANGES
index 9588451..5eb8cdb 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -8,6 +8,26 @@
       additional means to protect against malformed input.
 
 
+  II. MISCELLANEOUS
+
+    - Cmake support  has been  further improved.   To do  that various
+      backward-incompatible  changes were  necessary; please  see file
+      `CMakeLists.txt` for more details.
+
+    - Since version  2.11.0, a  C99 compiler  is necessary  to compile
+      FreeType.
+
+    - The experimental  'COLR' v1 API  has been updated to  the latest
+      OpenType standard 1.9.
+
+    - The `apinames` tool got a new  option `-wV` to output an OpenVMS
+      Linker Option File.
+
+    - VMS support was updated.
+
+    - MS Visual Studio support was added to build the demo programs.
+
+
 ======================================================================
 
 CHANGES BETWEEN 2.10.4 and 2.11.0
diff --git a/docs/INSTALL b/docs/INSTALL
index d53b8ff..be56e02 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -9,19 +9,19 @@
 
   FreeType is a low level C library  that only depends on the standard
   C library with very few platform-dependent optimizations utilized at
-  build time.  Any  C89-compliant compiler  should be able  to compile
+  build time.  Any  C99-compliant compiler  should be able  to compile
   FreeType.  System libraries,  such as  zlib,  Gzip,  bzip2,  Brotli,
   and libpng,  might  be  used  to handle  compressed fonts  or decode
   embedded PNG glyphs.
 
   FreeType  auto-configuration scripts  should be  able to detect  the
   prerequisites if the necessary headers are available  at the default
-  locations.  Otherwise,  modify  `include/freetype/config/ftoption.h'
+  locations.  Otherwise,  modify  `include/freetype/config/ftoption.h`
   to control how the FreeType library gets built.  Normally, you don't
   need to change anything.
 
   Applications have very limited control over FreeType's behaviour  at
-  run-time;  look at the documentation of function `FT_Property_Set'.
+  run-time;  look at the documentation of function `FT_Property_Set`.
 
 
 II. Normal installation and upgrades
@@ -32,7 +32,7 @@
     This also includes MacOS, Cygwin, MinGW + MSYS, Mingw-w64 + MSYS2,
     and possibly other, similar environments.
 
-    Please read `INSTALL.UNIX' to install or upgrade FreeType  2 on  a
+    Please read `INSTALL.UNIX` to install or upgrade FreeType  2 on  a
     Unix system.   Note  that  you  *need*  GNU  Make   for  automatic
     compilation,  since other make tools won't work (this includes BSD
     Make).
@@ -48,7 +48,7 @@
     Windows, OS/2, and BeOS,  including MinGW* (without MSYS*), Visual
     C++, Borland C++, and more.
 
-    Instructions are provided in the file `INSTALL.GNU'.
+    Instructions are provided in the file `INSTALL.GNU`.
 
 
   3. Other build tools and platforms.
@@ -57,27 +57,27 @@
     the  corresponding instruction files  in  the FreeType root folder
     or the builds/ sub-folder.
 
-      CMake   :: see CMakeLists.txt for more information
-      Meson   :: see meson.build for more information
-      MSBuild :: see builds/windows/vc2010/freetype.vcxproj
-      MMS     :: see vms_make.com and docs/INSTALL.VMS
+      CMake   :: see `CMakeLists.txt` for more information
+      Meson   :: see `meson.build` for more information
+      MSBuild :: see `builds/windows/vc2010/freetype.vcxproj`
+      MMS     :: see `vms_make.com` and `docs/INSTALL.VMS`
 
 
   4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
 
-    We provide a  small number of `project files'  for various IDEs to
+    We provide a  small number of 'project files'  for various IDEs to
     automatically build  the library as  well.  Note that  these files
     are not actively supported by FreeType developers,  they can break
     or become obsolete.
 
-    To find them, have a  look at the content of the `builds/<system>'
+    To find them, have a  look at the content of the `builds/<system>`
     directory, where <system> stands for your OS or environment.
 
 
   5. From you own IDE, or own Makefiles
 
     If  you  want  to  create   your  own  project  file,  follow  the
-    instructions   given  in  the   `INSTALL.ANY'  document   of  this
+    instructions   given  in  the   `INSTALL.ANY`  document   of  this
     directory.
 
 
@@ -86,7 +86,7 @@
 
   Customizing the compilation  of FreeType is easy, and  allows you to
   select only the components of  the font engine that you really need.
-  For more details read the file `CUSTOMIZE'.
+  For more details read the file `CUSTOMIZE`.
 
 
 ----------------------------------------------------------------------
@@ -97,7 +97,7 @@
       https://makepp.sourceforge.net
 
     for more information;  you need version 2.0 or newer, and you must
-    pass option `--norc-substitution'.
+    pass option `--norc-substitution`.
 
 ----------------------------------------------------------------------
 
diff --git a/include/freetype/config/ftstdlib.h b/include/freetype/config/ftstdlib.h
index a6812ae..6ee412a 100644
--- a/include/freetype/config/ftstdlib.h
+++ b/include/freetype/config/ftstdlib.h
@@ -44,7 +44,7 @@
    * `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of
    * `int` and `long` in bytes at compile-time.  So far, this works for all
    * platforms the library has been tested on.  We also check `ULLONG_MAX`
-   * to see if we can use 64-bit `long long` later.
+   * to see whether we can use 64-bit `long long` later on.
    *
    * Note that on the extremely rare platforms that do not provide integer
    * types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where
diff --git a/include/freetype/internal/sfnt.h b/include/freetype/internal/sfnt.h
index e8d77e2..bf4c7e0 100644
--- a/include/freetype/internal/sfnt.h
+++ b/include/freetype/internal/sfnt.h
@@ -574,10 +574,10 @@
    *
    * @output:
    *   clip_box ::
-   *     The clip box for the requested base_glyph if one is found.  The clip
-   *     box is computed taking scale and transformations configured on the
-   *     @FT_Face into account.  @FT_ClipBox contains @FT_Vector values in
-   *     26.6 format.
+   *     The clip box for the requested `base_glyph` if one is found.  The
+   *     clip box is computed taking scale and transformations configured on
+   *     the @FT_Face into account.  @FT_ClipBox contains @FT_Vector values
+   *     in 26.6 format.
    *
    * @note:
    *     To retrieve the clip box in font units, reset scale to units-per-em
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index ee51095..62475d4 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -4720,7 +4720,7 @@
           renderer = FT_Lookup_Renderer( library, slot->format, &node );
         }
 
-        /* it is not an error if we cannot render a bitmat glyph */
+        /* it is not an error if we cannot render a bitmap glyph */
         if ( FT_ERR_EQ( error, Cannot_Render_Glyph ) &&
              slot->format == FT_GLYPH_FORMAT_BITMAP  )
           error = FT_Err_Ok;
diff --git a/src/cid/cidload.c b/src/cid/cidload.c
index a1ac883..496219d 100644
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -559,8 +559,8 @@
       }
 
       /* read the subrmap's offsets */
-      if ( FT_STREAM_SEEK( cid->data_offset + dict->subrmap_offset )     ||
-           FT_FRAME_ENTER( ( num_subrs + 1 ) * dict->sd_bytes ) )
+      if ( FT_STREAM_SEEK( cid->data_offset + dict->subrmap_offset ) ||
+           FT_FRAME_ENTER( ( num_subrs + 1 ) * dict->sd_bytes )      )
         goto Fail;
 
       p = (FT_Byte*)stream->cursor;
diff --git a/src/gxvalid/gxvmod.c b/src/gxvalid/gxvmod.c
index e51fc89..1a11426 100644
--- a/src/gxvalid/gxvmod.c
+++ b/src/gxvalid/gxvmod.c
@@ -77,8 +77,7 @@
           FT_ULong            len_ ## _sfnt = 0
 
 #define GXV_TABLE_LOAD( _sfnt )                                       \
-          do                                                          \
-          {                                                           \
+          FT_BEGIN_STMNT                                              \
             if ( ( FT_VALIDATE_ ## _sfnt ## _INDEX < table_count ) && \
                  ( gx_flags & FT_VALIDATE_ ## _sfnt )            )    \
             {                                                         \
@@ -87,11 +86,10 @@
               if ( error )                                            \
                 goto Exit;                                            \
             }                                                         \
-          } while ( 0 )
+          FT_END_STMNT
 
 #define GXV_TABLE_VALIDATE( _sfnt )                                    \
-          do                                                           \
-          {                                                            \
+          FT_BEGIN_STMNT                                               \
             if ( _sfnt )                                               \
             {                                                          \
               ft_validator_init( &valid, _sfnt, _sfnt + len_ ## _sfnt, \
@@ -102,7 +100,7 @@
               if ( error )                                             \
                 goto Exit;                                             \
             }                                                          \
-          } while ( 0 )
+          FT_END_STMNT
 
 #define GXV_TABLE_SET( _sfnt )                                        \
           if ( FT_VALIDATE_ ## _sfnt ## _INDEX < table_count )        \
diff --git a/src/psaux/t1decode.c b/src/psaux/t1decode.c
index a6d668d..7e65bde 100644
--- a/src/psaux/t1decode.c
+++ b/src/psaux/t1decode.c
@@ -27,10 +27,12 @@
 
 #include "psauxerr.h"
 
+
 /* ensure proper sign extension */
-#define Fix2Int( f )    ( (FT_Int)(FT_Short)( (f) >> 16 ) )
+#define Fix2Int( f )   ( (FT_Int) (FT_Short)( (f) >> 16 ) )
 #define Fix2UInt( f )  ( (FT_UInt)(FT_Short)( (f) >> 16 ) )
 
+
   /**************************************************************************
    *
    * The macro FT_COMPONENT is used in trace mode.  It is an implicit
diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c
index 95bb979..93fc548 100644
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -142,11 +142,11 @@
   }
 
 
-  /* The fonts embedded in PDF changes their family names
-   * by the randomization tag. PDF Reference 5.5.3 "Font
-   * Subsets" defines its format as 6 uppercase letters and
-   * '+' sign.  For safety, we do not skip the tag violating
-   * this rule.
+  /*
+   * Fonts embedded in PDFs are made unique by prepending randomization
+   * prefixes to their names: as defined in Section 5.5.3, 'Font Subsets',
+   * of the PDF Reference, they consist of 6 uppercase letters followed by
+   * the `+` sign.  For safety, we do not skip prefixes violating this rule.
    */
 
   static const FT_String*
@@ -196,7 +196,7 @@
       "DFGothic-EB",        /* DynaLab Inc. 1992-1995 */
       "DFGyoSho-Lt",        /* DynaLab Inc. 1992-1995 */
       "DFHei",              /* DynaLab Inc. 1992-1995 [DFHei-Bd-WIN-HK-BF] */
-                            /* covers "DFHei-Md-HK-BF" maybe DynaLab Inc. */
+                            /* covers "DFHei-Md-HK-BF", maybe DynaLab Inc. */
 
       "DFHSGothic-W5",      /* DynaLab Inc. 1992-1995 */
       "DFHSMincho-W3",      /* DynaLab Inc. 1992-1995 */
@@ -553,8 +553,8 @@
     if ( face->family_name                               &&
          tt_check_trickyness_family( face->family_name ) )
     {
-      FT_TRACE3(( "found as a tricky font by "
-                  "its family name: %s\n", face->family_name ));
+      FT_TRACE3(( "found as a tricky font"
+                  " by its family name: %s\n", face->family_name ));
       return TRUE;
     }
 
@@ -563,8 +563,8 @@
     /* sfnt tables (`cvt', `fpgm', and `prep').                     */
     if ( tt_check_trickyness_sfnt_ids( (TT_Face)face ) )
     {
-      FT_TRACE3(( "found as a tricky font by "
-                  "its cvt/fpgm/prep table checksum\n" ));
+      FT_TRACE3(( "found as a tricky font"
+                  " by its cvt/fpgm/prep table checksum\n" ));
       return TRUE;
     }