changelog
    
    
    - Fri, 31 Oct 2025 22:29:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 31 Oct 2025 22:29:07 +0100] rev 98
 
    - Added tag v3.2 for changeset 28344ea6bb86
 
    - Fri, 31 Oct 2025 22:29:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 31 Oct 2025 22:29:02 +0100] rev 97
 
    - release version 3.2
 
    - Fri, 31 Oct 2025 22:24:22 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 31 Oct 2025 22:24:22 +0100] rev 96
 
    - fix outdated UCX include
 
    - Wed, 29 Oct 2025 22:53:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Oct 2025 22:53:56 +0100] rev 95
 
    - fix broken javatest.html
 
    - Wed, 29 Oct 2025 22:52:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Oct 2025 22:52:20 +0100] rev 94
 
    - update uwproj and UCX
 
    - Thu, 08 May 2025 18:22:11 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 08 May 2025 18:22:11 +0200] rev 93
 
    - update uwproj
 
    - Sun, 02 Mar 2025 16:08:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 02 Mar 2025 16:08:16 +0100] rev 92
 
    - fix macro constants never highlighted in java highlighter
 
    - Sun, 02 Mar 2025 16:06:24 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 02 Mar 2025 16:06:24 +0100] rev 91
 
    - add number highlighting
fixes #393 
    - Sun, 02 Mar 2025 12:47:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 02 Mar 2025 12:47:31 +0100] rev 90
 
    - hotfix to prevent accidental highlighting of numbers as macros
relates to #393 
    - Sun, 02 Mar 2025 12:41:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 02 Mar 2025 12:41:09 +0100] rev 89
 
    - use SIZE_MAX instead of (size_t)-1
 
    - Sat, 15 Feb 2025 23:26:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 15 Feb 2025 23:26:08 +0100] rev 88
 
    - bring back the c2html_bformat() function
fixes #592 
    - Sat, 15 Feb 2025 23:21:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 15 Feb 2025 23:21:29 +0100] rev 87
 
    - upgrade uwproj and add lib target and README
 
    - Sat, 15 Feb 2025 22:56:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 15 Feb 2025 22:56:16 +0100] rev 86
 
    - update to ucx 3.1 release
 
    - Thu, 11 Jul 2024 20:15:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:15:56 +0200] rev 85
 
    - Added tag v3.1 for changeset 5343a527ae96
 
    - Thu, 11 Jul 2024 20:15:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:15:36 +0200] rev 84
 
    - try to cleanup the mess in .hgtags
 
    - Thu, 11 Jul 2024 20:14:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:14:34 +0200] rev 83
 
    - clean up tag v3.1
 
    - Thu, 11 Jul 2024 20:13:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:13:59 +0200] rev 82
 
    - hotfix: do not try to append file when none is specified
fixes #395 
    - Thu, 11 Jul 2024 20:05:26 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:05:26 +0200] rev 81
 
    - Added tag v3.1 for changeset 0f1c55d2a90a
 
    - Thu, 11 Jul 2024 20:05:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 20:05:21 +0200] rev 80
 
    - hotfix: ampersand not escaped in html output
 
    - Thu, 11 Jul 2024 19:41:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 19:41:06 +0200] rev 79
 
    - update .hgtags
 
    - Thu, 11 Jul 2024 19:37:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 19:37:36 +0200] rev 78
 
    - release version 3.1
and fixes that every version was marked
unstable in the version output 
    - Thu, 11 Jul 2024 19:30:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2024 19:30:55 +0200] rev 77
 
    - Added tag v3.1 for changeset 44c7423d6ce2
 
    - Wed, 10 Jul 2024 21:57:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2024 21:57:53 +0200] rev 76
 
    - hotfix for multiple subsequent line continuations
issue #392 
    - Wed, 10 Jul 2024 21:35:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2024 21:35:37 +0200] rev 75
 
    - add basic support for line continuations in C highlighter
things that still do not work:
 - user includes
 - splitting keywords
fixes #392 
    - Sun, 01 Oct 2023 14:41:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Oct 2023 14:41:17 +0200] rev 74
 
    - improve Makefiles
 
    - Sun, 24 Sep 2023 18:48:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 24 Sep 2023 18:48:42 +0200] rev 73
 
    - use make vars instead of config vars for rmdir/mkdir
 
    - Sun, 24 Sep 2023 18:43:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 24 Sep 2023 18:43:58 +0200] rev 72
 
    - use uwproj for build config generation
 
    - Sun, 11 Jun 2023 15:21:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Jun 2023 15:21:44 +0200] rev 71
 
    - fix incorrect highlighting when input file starts with line break
 
    - Sun, 11 Jun 2023 15:16:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Jun 2023 15:16:48 +0200] rev 70
 
    - fix illegal memory access when input file does not end with line break
 
    - Sun, 11 Jun 2023 14:05:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Jun 2023 14:05:28 +0200] rev 69
 
    - add separate Makefile for test
 
    - Mon, 24 Apr 2023 21:02:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 24 Apr 2023 21:02:00 +0200] rev 68
 
    - Added tag v3.0 for changeset 5da2cb5aea6b
 
    - Mon, 24 Apr 2023 21:01:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 24 Apr 2023 21:01:41 +0200] rev 67
 
    - merge upstream changes
 
    - Mon, 24 Apr 2023 20:54:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 24 Apr 2023 20:54:38 +0200] rev 66
 
    - upgrade to ucx 3.0
 
    - Mon, 03 Oct 2022 12:56:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Oct 2022 12:56:28 +0200] rev 65
 
    - rewrite Makefile to work with different getopt implementations
 
    - Mon, 03 Oct 2022 12:27:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Oct 2022 12:27:10 +0200] rev 64
 
    - add test for empty file
 
    - Mon, 03 Oct 2022 12:14:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Oct 2022 12:14:53 +0200] rev 63
 
    - update tests
 
    - Mon, 13 Nov 2017 14:17:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 13 Nov 2017 14:17:46 +0100] rev 62
 
    - removes build/ucx from makefile
 
    - Mon, 13 Nov 2017 13:52:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 13 Nov 2017 13:52:00 +0100] rev 61
 
    - ucx is now used as external library
 
    - Thu, 10 Nov 2016 18:44:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Nov 2016 18:44:48 +0100] rev 60
 
    - removes span around line number
 
    - Thu, 10 Nov 2016 18:27:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Nov 2016 18:27:16 +0100] rev 59
 
    - test header file now contains user-select:none property
 
    - Wed, 31 Aug 2016 16:21:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 31 Aug 2016 16:21:28 +0200] rev 58
 
    - Release of version 2.0
 
    - Wed, 31 Aug 2016 16:20:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 31 Aug 2016 16:20:58 +0200] rev 57
 
    - improves API and adds functions for strings
 
    - Wed, 31 Aug 2016 14:47:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 31 Aug 2016 14:47:01 +0200] rev 56
 
    - fixes ancient header macro
 
    - Wed, 31 Aug 2016 14:41:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 31 Aug 2016 14:41:56 +0200] rev 55
 
    - adds appropriate public API
 
    - Wed, 31 Aug 2016 12:58:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 31 Aug 2016 12:58:48 +0200] rev 54
 
    - highlighter can now handle files which do not end with a blank line
 
    - Fri, 26 Aug 2016 14:15:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 26 Aug 2016 14:15:29 +0200] rev 53
 
    - adds appendfile() function to main module + adds TODOs for source files which do not terminate with a blank line
 
    - Fri, 26 Aug 2016 13:49:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 26 Aug 2016 13:49:19 +0200] rev 52
 
    - merges all highlighter functions into one highlighter module
 
    - Thu, 25 Aug 2016 12:16:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 25 Aug 2016 12:16:57 +0200] rev 51
 
    - replaces stack buffers with UCX buffers
 
    - Thu, 25 Aug 2016 11:30:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 25 Aug 2016 11:30:30 +0200] rev 50
 
    - minor fixes and macro removals
 
    - Tue, 23 Aug 2016 17:31:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 17:31:15 +0200] rev 49
 
    - cleans up includes
 
    - Tue, 23 Aug 2016 17:24:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 17:24:58 +0200] rev 48
 
    - highlighter now use the UcxBuffer API for writing to the destination buffer
 
    - Tue, 23 Aug 2016 16:34:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 16:34:02 +0200] rev 47
 
    - words (token) are now stored as sstr_t
 
    - Tue, 23 Aug 2016 15:55:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 15:55:02 +0200] rev 46
 
    - refactors highlighter_t and removes abstraction overhead
 
    - Tue, 23 Aug 2016 15:28:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 15:28:56 +0200] rev 45
 
    - changes signature of parser functions to use a UcxBuffer - the functions itself don't use the API yet
 
    - Tue, 23 Aug 2016 15:07:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 15:07:29 +0200] rev 44
 
    - cleans up formatfile function up to the parser call
 
    - Tue, 23 Aug 2016 14:31:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 14:31:02 +0200] rev 43
 
    - cleans up main function
 
    - Tue, 23 Aug 2016 14:24:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 14:24:57 +0200] rev 42
 
    - replaces custom copyfile() function with ucx_stream_copy calls
 
    - Tue, 23 Aug 2016 14:13:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 14:13:46 +0200] rev 41
 
    - increases input buffer + adds regression tests
 
    - Tue, 23 Aug 2016 13:59:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 13:59:48 +0200] rev 40
 
    - fixes plaintext output
 
    - Tue, 23 Aug 2016 13:49:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 13:49:38 +0200] rev 39
 
    - adds UCX + changes how the input file is read (uses an consecutive memory area now)
 
    - Tue, 23 Aug 2016 12:06:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 12:06:46 +0200] rev 38
 
    - use macros for exit codes
 
    - Tue, 23 Aug 2016 12:05:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Aug 2016 12:05:41 +0200] rev 37
 
    - adds version number and changes build system
 
    - Fri, 04 Mar 2016 15:02:22 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Mar 2016 15:02:22 +0100] rev 36
 
    - fixed possible naming conflicts with is.* functions
 
    - Fri, 04 Mar 2016 14:48:28 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Mar 2016 14:48:28 +0100] rev 35
 
    - adjusted copyright info
 
    - Fri, 04 Mar 2016 14:44:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Mar 2016 14:44:02 +0100] rev 34
 
    - better compiler flags
 
    - Fri, 04 Mar 2016 14:03:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Mar 2016 14:03:06 +0100] rev 33
 
    - fixed macros with digits not highlighted
 
    - Wed, 10 Feb 2016 12:45:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Feb 2016 12:45:14 +0100] rev 32
 
    - applied multi line comment fix to java code generator
 
    - Wed, 10 Feb 2016 12:34:31 +0100
 
    - by universe [Wed, 10 Feb 2016 12:34:31 +0100] rev 31
 
    - fixed corrupted multi line comments, when a blank line (containing only white spaces) is present in the comment
 
    - Fri, 29 May 2015 14:32:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 29 May 2015 14:32:02 +0200] rev 30
 
    - added HTML escaping for plain text files
 
    - Sat, 25 Apr 2015 19:14:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 25 Apr 2015 19:14:57 +0200] rev 29
 
    - introduced macro for constant string memcpy + fixed string highlight fix
 
    - Sat, 25 Apr 2015 19:01:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 25 Apr 2015 19:01:16 +0200] rev 28
 
    - fixed string highlighting when different quote symbol is in string
 
    - Tue, 21 Apr 2015 10:11:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 21 Apr 2015 10:11:37 +0200] rev 27
 
    - added links for line numbers
 
    - Tue, 21 Apr 2015 09:53:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 21 Apr 2015 09:53:01 +0200] rev 26
 
    - fixed wrong comment formatting in strings
 
    - Tue, 21 Apr 2015 09:47:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 21 Apr 2015 09:47:52 +0200] rev 25
 
    - more and better test cases + fixed memory leak introduced by changeset e43dee5892f4
 
    - Sun, 19 Apr 2015 10:48:00 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 19 Apr 2015 10:48:00 +0200] rev 24
 
    - improved code structure and added option for disabling line numbers
 
    - Thu, 23 Jan 2014 14:44:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Jan 2014 14:44:20 +0100] rev 23
 
    - fixed licenses
 
    - Thu, 23 Jan 2014 14:17:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Jan 2014 14:17:06 +0100] rev 22
 
    - added command line parameters for header and footer file
 
    - Thu, 23 Jan 2014 09:19:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Jan 2014 09:19:37 +0100] rev 21
 
    - structured source code
 
    - Fri, 30 Aug 2013 11:23:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 30 Aug 2013 11:23:44 +0200] rev 20
 
    - replaced function static variables with struct members
 
    - Fri, 30 Aug 2013 10:51:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 30 Aug 2013 10:51:49 +0200] rev 19
 
    - formatted with 4 spaces
 
    - Wed, 10 Jul 2013 18:12:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 18:12:13 +0200] rev 18
 
    - fixed highlighting for java
 
    - Wed, 10 Jul 2013 17:57:03 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 17:57:03 +0200] rev 17
 
    - implemented java highlighting
 
    - Wed, 10 Jul 2013 16:31:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 16:31:16 +0200] rev 16
 
    - prepared java highlighting
 
    - Wed, 10 Jul 2013 14:38:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 14:38:56 +0200] rev 15
 
    - double free fix
 
    - Wed, 10 Jul 2013 14:25:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 14:25:41 +0200] rev 14
 
    - added -p to help message
 
    - Wed, 10 Jul 2013 13:54:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 13:54:15 +0200] rev 13
 
    - changes merged
 
    - Wed, 10 Jul 2013 13:45:26 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 13:45:26 +0200] rev 12
 
    - option for plaintext
 
    - Wed, 10 Jul 2013 13:38:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Jul 2013 13:38:28 +0200] rev 11
 
    - option for output file
 
    - Fri, 21 Jun 2013 13:32:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Jun 2013 13:32:31 +0200] rev 10
 
    - includes (with links in user includes)
 
    - Fri, 21 Jun 2013 12:49:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Jun 2013 12:49:46 +0200] rev 9
 
    - long words are correctly separated by non alpha numeric chars, underscore or hash + support for macro constants
 
    - Fri, 21 Jun 2013 12:27:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Jun 2013 12:27:45 +0200] rev 8
 
    - comments
 
    - Fri, 21 Jun 2013 11:42:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Jun 2013 11:42:18 +0200] rev 7
 
    - strings and directives
 
    - Wed, 12 Jun 2013 14:50:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 12 Jun 2013 14:50:27 +0200] rev 6
 
    - fixed worthless memset
 
    - Wed, 12 Jun 2013 14:48:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 12 Jun 2013 14:48:50 +0200] rev 5
 
    - support for keywords and types
 
    - Wed, 12 Jun 2013 13:40:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 12 Jun 2013 13:40:23 +0200] rev 4
 
    - introduced parser
 
    - Fri, 24 May 2013 13:57:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 24 May 2013 13:57:51 +0200] rev 3
 
    - removed gay htm extension
 
    - Fri, 24 May 2013 13:53:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 24 May 2013 13:53:52 +0200] rev 2
 
    - extra style for line numbers
 
    - Fri, 24 May 2013 13:35:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 24 May 2013 13:35:06 +0200] rev 1
 
    - first prototype: creates unformatted output with line numbers
 
    - Fri, 24 May 2013 11:04:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 24 May 2013 11:04:56 +0200] rev 0
 
    - init project