]> mj.ucw.cz Git - libucw.git/log
libucw.git
6 years agoUTF-16: Fixed allowed range in documentation. dev-utf8
Pavel Charvat [Fri, 29 Dec 2017 14:26:18 +0000 (15:26 +0100)]
UTF-16: Fixed allowed range in documentation.

6 years agoUTF-8: Slightly changed sanitization.
Pavel Charvat [Fri, 29 Dec 2017 13:45:26 +0000 (14:45 +0100)]
UTF-8: Slightly changed sanitization.

The disassembled code from my compiler seems to be OK now.

6 years agoUTF-8: More generic sanitization function.
Pavel Charvat [Fri, 29 Dec 2017 13:17:08 +0000 (14:17 +0100)]
UTF-8: More generic sanitization function.

I could now directly use it in Gigamail's parser.

6 years agoUTF-8: Probably small optimization, but not sure.
Pavel Charvat [Fri, 29 Dec 2017 13:12:26 +0000 (14:12 +0100)]
UTF-8: Probably small optimization, but not sure.

6 years agoUTF-8: Added unicode_full_sanitize_char()
Pavel Charvat [Fri, 29 Dec 2017 13:09:06 +0000 (14:09 +0100)]
UTF-8: Added unicode_full_sanitize_char()

6 years agoUTF-8: Added tests.
Pavel Charvat [Fri, 29 Dec 2017 11:58:52 +0000 (12:58 +0100)]
UTF-8: Added tests.

6 years agoUnicode: Small fix.
Pavel Charvat [Fri, 29 Dec 2017 08:23:46 +0000 (09:23 +0100)]
Unicode: Small fix.

6 years agoUTF-8: Generator of long inlined functions. Also added "uft8_full" variants for 0...
Pavel Charvat [Fri, 29 Dec 2017 07:40:24 +0000 (08:40 +0100)]
UTF-8: Generator of long inlined functions. Also added "uft8_full" variants for 0..0x10ffff range.

6 years agoRevert "Unicode: Added reading of 32bit UTF-8 unicode values with protection against...
Pavel Charvat [Thu, 28 Dec 2017 19:38:34 +0000 (20:38 +0100)]
Revert "Unicode: Added reading of 32bit UTF-8 unicode values with protection against buffer overflow."

This reverts commit 445e507caadb330b5ad640b3c5a357e6326c7855.

6 years agoCLists, SLists: Extended interface for merging of link lists.
Pavel Charvat [Sun, 17 Dec 2017 16:51:11 +0000 (17:51 +0100)]
CLists, SLists: Extended interface for merging of link lists.

6 years agoUnicode: Added reading of 32bit UTF-8 unicode values with protection against buffer...
Pavel Charvat [Thu, 14 Dec 2017 09:08:00 +0000 (10:08 +0100)]
Unicode: Added reading of 32bit UTF-8 unicode values with protection against buffer overflow.

Until now safe reading was possible only in fastbufs, which are
in some cases inefficient to initialize.

I'm still not sure about this change -> added only for one of many similar
functions. It multiplies the size of already long source code.

6 years agoReleased as 6.5.6 v6.5.6
Pavel Charvat [Mon, 11 Sep 2017 19:40:04 +0000 (21:40 +0200)]
Released as 6.5.6

6 years agoUCW::Configure: Fixed compatibility with old perl.
Pavel Charvat [Mon, 11 Sep 2017 19:35:03 +0000 (21:35 +0200)]
UCW::Configure: Fixed compatibility with old perl.

Older versions of perl don't automatically load methods
like STDOUT->flush, we need to explicitly use IO::File.

6 years agoDoc: Added explanation of FB exceptions vs. fb_tie() v6.5.5
Martin Mares [Wed, 6 Sep 2017 20:52:35 +0000 (22:52 +0200)]
Doc: Added explanation of FB exceptions vs. fb_tie()

6 years agoDebian: Updated a comment on CONFIG_UCW_PERL_MODULES
Martin Mares [Wed, 6 Sep 2017 20:34:25 +0000 (22:34 +0200)]
Debian: Updated a comment on CONFIG_UCW_PERL_MODULES

6 years agoUCW::Configure::Perl: Split off configuration of Perl paths
Martin Mares [Wed, 6 Sep 2017 20:31:08 +0000 (22:31 +0200)]
UCW::Configure::Perl: Split off configuration of Perl paths

We now query the %Config hash of Perl itself to determine the right
installation paths.

6 years agoUCW::Configure: Flush STDOUT after logging
Martin Mares [Wed, 6 Sep 2017 20:30:47 +0000 (22:30 +0200)]
UCW::Configure: Flush STDOUT after logging

6 years agoFastbufs: bclose() on caller-allocated fastbuf is allowed
Martin Mares [Tue, 5 Sep 2017 22:16:11 +0000 (00:16 +0200)]
Fastbufs: bclose() on caller-allocated fastbuf is allowed

Previously, it was impossible to catch exceptions thrown by fbbuf
(although it is quite useful in case of the "buffer overflow" exception).

With these changes, bclose() should be allowed and equivalent to bflush(),
which should do nothing :)  Hence, fb_tie() should work and so should
exception handling.

6 years agoBuild: "make install" should install also UCW::Configure module.
Pavel Charvat [Tue, 5 Sep 2017 07:04:30 +0000 (09:04 +0200)]
Build: "make install" should install also UCW::Configure module.

6 years agoBuild: Added support for custom PKG_CONFIG_PATH in UCW::Configure::PkgConfig().
Pavel Charvat [Mon, 4 Sep 2017 10:10:25 +0000 (12:10 +0200)]
Build: Added support for custom PKG_CONFIG_PATH in UCW::Configure::PkgConfig().

6 years agoReleased as 6.5.4 v6.5.4
Pavel Charvat [Mon, 4 Sep 2017 06:25:54 +0000 (08:25 +0200)]
Released as 6.5.4

6 years agoLizard: Fixed a typo in documentation.
Pavel Charvat [Thu, 31 Aug 2017 17:35:23 +0000 (19:35 +0200)]
Lizard: Fixed a typo in documentation.

6 years agoFB Socket: Fixed tracking of written bytes.
Pavel Charvat [Thu, 31 Aug 2017 16:58:26 +0000 (18:58 +0200)]
FB Socket: Fixed tracking of written bytes.

6 years agoMempool: Fix bug in a DBG() message.
Pavel Charvat [Sat, 26 Aug 2017 09:04:28 +0000 (11:04 +0200)]
Mempool: Fix bug in a DBG() message.

6 years agoDebian: The build system is packaged as a part of libucw-dev v6.5.3
Martin Mares [Sat, 22 Jul 2017 20:32:18 +0000 (22:32 +0200)]
Debian: The build system is packaged as a part of libucw-dev

Previously, I added UCW::Configure to libucw-perl, but I forgot
that most users of this module also need the build system. Surprisingly,
our packaging completely avoided the build system files.

Therefore, I moved UCW::Configure to libucw-dev and added the build
system there, too.

In the long term, we should move UCW::Configure under build/.

Since nobody is using v6.5.3 yet, I am rebuilding it with these
changes applied.

6 years agoXtype docs: Fixed a typo
Martin Mares [Sat, 22 Jul 2017 20:20:05 +0000 (22:20 +0200)]
Xtype docs: Fixed a typo

6 years agoReleased as v6.5.3
Martin Mares [Sat, 22 Jul 2017 10:44:36 +0000 (12:44 +0200)]
Released as v6.5.3

6 years agoDebian: A separate package for (most) Perl modules
Martin Mares [Sat, 22 Jul 2017 10:29:34 +0000 (12:29 +0200)]
Debian: A separate package for (most) Perl modules

7 years agoBuild: Fixed debian/mk --archonly on debian stretch. v6.5.2
Pavel Charvat [Tue, 18 Apr 2017 13:37:18 +0000 (15:37 +0200)]
Build: Fixed debian/mk --archonly on debian stretch.

7 years agoBuild: Added support for chrooted building from Centrum Gigamail repository.
Pavel Charvat [Tue, 18 Apr 2017 11:20:37 +0000 (13:20 +0200)]
Build: Added support for chrooted building from Centrum Gigamail repository.

7 years agoOpt: Fixed compilation warnings in tests.
Pavel Charvat [Sun, 26 Feb 2017 22:56:38 +0000 (23:56 +0100)]
Opt: Fixed compilation warnings in tests.

7 years agoLizard: Fixed compilation warning in tests.
Pavel Charvat [Sun, 26 Feb 2017 22:55:43 +0000 (23:55 +0100)]
Lizard: Fixed compilation warning in tests.

7 years agoUCW::Configure: Translate local filenames to "./file"
Martin Mares [Wed, 22 Feb 2017 15:12:00 +0000 (16:12 +0100)]
UCW::Configure: Translate local filenames to "./file"

As a security measure, "require" in newer versions of Perl (5.22+)
does not look up files relative to the current directory.

7 years agoUCW::CGI: Encode UTF-8 characters in cookies properly
Martin Mares [Wed, 22 Feb 2017 15:11:45 +0000 (16:11 +0100)]
UCW::CGI: Encode UTF-8 characters in cookies properly

7 years agofb-param: Fixed a typo found by warnings in newer GCC
Martin Mares [Tue, 21 Feb 2017 21:59:08 +0000 (22:59 +0100)]
fb-param: Fixed a typo found by warnings in newer GCC

7 years agoCRC: Fixed possible integer underflow when called on very small unaligned blocks.
Pavel Charvat [Mon, 15 Aug 2016 14:07:53 +0000 (16:07 +0200)]
CRC: Fixed possible integer underflow when called on very small unaligned blocks.

8 years agoUCW::CGI: Added an option for preserving whitespaces in arguments
Martin Mares [Mon, 14 Sep 2015 10:46:53 +0000 (12:46 +0200)]
UCW::CGI: Added an option for preserving whitespaces in arguments

8 years agoReleased libucw-6.5.1 v6.5.1
Pavel Charvat [Wed, 22 Jul 2015 21:27:36 +0000 (21:27 +0000)]
Released libucw-6.5.1

8 years agoJSON: Let initializers of our anonymous union be compatible with ancient GCC's
Martin Mares [Wed, 22 Jul 2015 20:20:35 +0000 (22:20 +0200)]
JSON: Let initializers of our anonymous union be compatible with ancient GCC's

8 years agoMaint: upload-doc should not forget about ucw-json
Martin Mares [Fri, 17 Jul 2015 14:26:15 +0000 (16:26 +0200)]
Maint: upload-doc should not forget about ucw-json

8 years agoReleased libucw-6.5 v6.5
Martin Mares [Fri, 17 Jul 2015 14:23:08 +0000 (16:23 +0200)]
Released libucw-6.5

8 years agoDoc: Release notes for version 6.5
Martin Mares [Fri, 17 Jul 2015 14:21:51 +0000 (16:21 +0200)]
Doc: Release notes for version 6.5

8 years agoUnicode: Fixed a test case
Martin Mares [Fri, 17 Jul 2015 14:14:40 +0000 (16:14 +0200)]
Unicode: Fixed a test case

8 years agoMempools: Optimize mp_append_utf8_32()
Martin Mares [Fri, 17 Jul 2015 14:10:31 +0000 (16:10 +0200)]
Mempools: Optimize mp_append_utf8_32()

8 years agoJSON: Comment on what is a string value
Martin Mares [Fri, 17 Jul 2015 14:08:00 +0000 (16:08 +0200)]
JSON: Comment on what is a string value

8 years agoJSON: Less strict checks when formatting strings
Martin Mares [Fri, 17 Jul 2015 14:02:51 +0000 (16:02 +0200)]
JSON: Less strict checks when formatting strings

Invalid characters are translated to UNI_REPLACEMENT instead
of aborting the program.

8 years agoJSON: Added numeric conversions
Martin Mares [Fri, 17 Jul 2015 14:01:39 +0000 (16:01 +0200)]
JSON: Added numeric conversions

8 years agoJSON: Link with libm
Martin Mares [Fri, 17 Jul 2015 13:37:01 +0000 (15:37 +0200)]
JSON: Link with libm

8 years agoJSON: Checks for INF/NAN moved to json_new_number()
Martin Mares [Fri, 17 Jul 2015 13:33:37 +0000 (15:33 +0200)]
JSON: Checks for INF/NAN moved to json_new_number()

8 years agoJSON: Mention exceptions in docs
Martin Mares [Fri, 17 Jul 2015 13:29:55 +0000 (15:29 +0200)]
JSON: Mention exceptions in docs

8 years agoJSON: Better exception name
Martin Mares [Fri, 17 Jul 2015 13:27:06 +0000 (15:27 +0200)]
JSON: Better exception name

8 years agoJSON: Defined debian packages.
Pavel Charvat [Fri, 17 Jul 2015 12:11:10 +0000 (12:11 +0000)]
JSON: Defined debian packages.

8 years agoStrtonum: Fixed a typo in a comment
Martin Mares [Wed, 8 Jul 2015 22:01:28 +0000 (00:01 +0200)]
Strtonum: Fixed a typo in a comment

8 years agoJSON: Reject denormalized UTF-8 sequences
Martin Mares [Wed, 8 Jul 2015 22:00:36 +0000 (00:00 +0200)]
JSON: Reject denormalized UTF-8 sequences

8 years agoUnicode: Reject denormalized UTF-8 sequences
Martin Mares [Wed, 8 Jul 2015 21:58:21 +0000 (23:58 +0200)]
Unicode: Reject denormalized UTF-8 sequences

When there are multiple possible encodings of a single Unicode
codepoint, the standard requires to use the shortest one. Not checking
this requirement on input has been observed to cause weird security
problems in some software, so better be careful.

8 years agoJSON: Add json_strdup()
Martin Mares [Wed, 8 Jul 2015 21:23:33 +0000 (23:23 +0200)]
JSON: Add json_strdup()

8 years agoJSON: Remove unused includes
Martin Mares [Wed, 8 Jul 2015 21:23:26 +0000 (23:23 +0200)]
JSON: Remove unused includes

8 years agoJSON: Null, true, and false use a single static instance
Martin Mares [Wed, 8 Jul 2015 21:14:34 +0000 (23:14 +0200)]
JSON: Null, true, and false use a single static instance

8 years agoJSON: Improved memory management with pushing/popping of states
Martin Mares [Wed, 8 Jul 2015 21:11:04 +0000 (23:11 +0200)]
JSON: Improved memory management with pushing/popping of states

8 years agoTester: Always print test numbers
Martin Mares [Wed, 8 Jul 2015 20:47:43 +0000 (22:47 +0200)]
Tester: Always print test numbers

They help to locate the right temporary files.

8 years agoJSON: Basic documentation
Martin Mares [Wed, 8 Jul 2015 18:27:00 +0000 (20:27 +0200)]
JSON: Basic documentation

8 years agoABI cleanups
Martin Mares [Wed, 8 Jul 2015 17:57:45 +0000 (19:57 +0200)]
ABI cleanups

8 years agoJSON: More tests and bug fixes
Martin Mares [Wed, 8 Jul 2015 17:55:35 +0000 (19:55 +0200)]
JSON: More tests and bug fixes

8 years agoJSON: Tests and bug fixes
Martin Mares [Wed, 8 Jul 2015 17:44:02 +0000 (19:44 +0200)]
JSON: Tests and bug fixes

8 years agoFastbuf: fw-hex escapes DEL, too
Martin Mares [Wed, 8 Jul 2015 17:15:56 +0000 (19:15 +0200)]
Fastbuf: fw-hex escapes DEL, too

8 years agoFastbuf: Added fw-hex wrapper
Martin Mares [Wed, 8 Jul 2015 17:02:48 +0000 (19:02 +0200)]
Fastbuf: Added fw-hex wrapper

8 years agoJSON: Error messages include column number
Martin Mares [Wed, 8 Jul 2015 16:05:54 +0000 (18:05 +0200)]
JSON: Error messages include column number

8 years agoJSON: More parsing and formatting details
Martin Mares [Wed, 8 Jul 2015 16:03:04 +0000 (18:03 +0200)]
JSON: More parsing and formatting details

8 years agoJSON: Rudimentary formatting
Martin Mares [Wed, 8 Jul 2015 14:43:57 +0000 (16:43 +0200)]
JSON: Rudimentary formatting

8 years agoJSON: Skeleton, memory representation, parser
Martin Mares [Wed, 8 Jul 2015 14:21:16 +0000 (16:21 +0200)]
JSON: Skeleton, memory representation, parser

8 years agoUnicode: Fixed a comment in unicode_sanitize_char()
Martin Mares [Wed, 8 Jul 2015 14:19:38 +0000 (16:19 +0200)]
Unicode: Fixed a comment in unicode_sanitize_char()

8 years agoMempools: Added mp_append_utf8_32()
Martin Mares [Wed, 8 Jul 2015 14:19:16 +0000 (16:19 +0200)]
Mempools: Added mp_append_utf8_32()

9 years agoMempools: Renamed mp_append_[v]printf() back to its original name
Martin Mares [Thu, 9 Apr 2015 13:49:56 +0000 (15:49 +0200)]
Mempools: Renamed mp_append_[v]printf() back to its original name

9 years agoWeb: Fixed link to relnotes
Martin Mares [Wed, 8 Apr 2015 12:23:10 +0000 (14:23 +0200)]
Web: Fixed link to relnotes

9 years agoWill release as v6.4 v6.4
Martin Mares [Wed, 8 Apr 2015 12:20:02 +0000 (14:20 +0200)]
Will release as v6.4

9 years ago... fix of the previous fix
Martin Mares [Wed, 1 Apr 2015 12:39:54 +0000 (14:39 +0200)]
... fix of the previous fix

9 years agoXML: Fixed installation of headers
Martin Mares [Wed, 1 Apr 2015 12:36:39 +0000 (14:36 +0200)]
XML: Fixed installation of headers

9 years agoMainloop: Avoid polling for an empty set of events
Martin Mares [Fri, 6 Mar 2015 13:50:05 +0000 (14:50 +0100)]
Mainloop: Avoid polling for an empty set of events

If a main_file was active, but it did not have any handlers set,
it could happen that poll/epoll was called with an empty set of
requested events.

Alas, even in those cases POLLHUP or POLLERR could be delivered,
leading to an endless loop of such events. (Remember that we do not
use the edge-triggered mode of epoll as we want to be compatible
with plain poll semantics in handlers.)

From now on, we avoid this situation by removing the fd from the
poll set temporarily.

Also, this led to a slight unification of code paths.

9 years agoMaint: Automatic updating of version displayed at http://mj.ucw.cz/
Martin Mares [Fri, 13 Feb 2015 23:28:30 +0000 (00:28 +0100)]
Maint: Automatic updating of version displayed at http://mj.ucw.cz/

9 years agoWill release as v6.3 v6.3
Martin Mares [Fri, 13 Feb 2015 23:25:27 +0000 (00:25 +0100)]
Will release as v6.3

9 years agoDoc: Release notes for version 6.3
Martin Mares [Fri, 13 Feb 2015 23:21:33 +0000 (00:21 +0100)]
Doc: Release notes for version 6.3

9 years agoMaint: Uploading of documentation of companion libraries
Martin Mares [Fri, 13 Feb 2015 23:21:22 +0000 (00:21 +0100)]
Maint: Uploading of documentation of companion libraries

9 years agoXML: Brief documentation of LibUCW-XML
Martin Mares [Fri, 13 Feb 2015 23:20:45 +0000 (00:20 +0100)]
XML: Brief documentation of LibUCW-XML

9 years agoMerge branch 'dev-xml-ns'
Martin Mares [Fri, 13 Feb 2015 22:01:06 +0000 (23:01 +0100)]
Merge branch 'dev-xml-ns'

9 years agoMerge branch 'dev-xml'
Martin Mares [Fri, 13 Feb 2015 22:00:53 +0000 (23:00 +0100)]
Merge branch 'dev-xml'

9 years agoConfigure: Changed default.cfg
Martin Mares [Fri, 13 Feb 2015 15:15:36 +0000 (16:15 +0100)]
Configure: Changed default.cfg

CONFIG_UCW_ONLY is gone, it did not work anyway.

CONFIG_XML is turned on by default.

9 years agoConfigure: Experimental CONFIG_LTO
Martin Mares [Fri, 13 Feb 2015 15:13:15 +0000 (16:13 +0100)]
Configure: Experimental CONFIG_LTO

9 years agoXML: Uninlined
Martin Mares [Fri, 13 Feb 2015 14:54:39 +0000 (15:54 +0100)]
XML: Uninlined

9 years agoXML: Bug fixes of namespaces
Martin Mares [Fri, 13 Feb 2015 14:36:59 +0000 (15:36 +0100)]
XML: Bug fixes of namespaces

9 years agoMempool: Just updated (c)
Pavel Charvat [Fri, 13 Feb 2015 12:48:54 +0000 (12:48 +0000)]
Mempool: Just updated (c)

9 years agoMempool: mp_new(size) should not add size of chunk header before aligned to pages.
Pavel Charvat [Fri, 13 Feb 2015 12:43:16 +0000 (12:43 +0000)]
Mempool: mp_new(size) should not add size of chunk header before aligned to pages.

... so that mp_new(4096) allocates exactly one page, not two.

9 years agoXML: Fix processing of namespace prefixes
Martin Mares [Thu, 12 Feb 2015 23:48:56 +0000 (00:48 +0100)]
XML: Fix processing of namespace prefixes

9 years agoXML: ABI cleanup
Martin Mares [Thu, 12 Feb 2015 23:31:57 +0000 (00:31 +0100)]
XML: ABI cleanup

9 years agoXML: Changed internal representation of attributes
Martin Mares [Thu, 12 Feb 2015 23:24:26 +0000 (00:24 +0100)]
XML: Changed internal representation of attributes

As most elements have only a couple of attributes, I switched the
main attribute data structure from a hash table to a list. String
comparisons are hopefully avoided in most cases, as we keep a hash
of the lookup key in each entry.

More importantly, the structure is populated in two steps: first,
original (i.e., qualified) names of all attributes are entered;
second, namespaces are resolved and attributes are checked for
uniqueness.

If linear time complexity of attribute lookups turns out to be
too slow, we can add a secondary hash table for elements with
many attributes. This table will be populated from the list
in the 2nd step above.

9 years agoXML: Implementation of XML namespaces
Martin Mares [Thu, 12 Feb 2015 22:12:03 +0000 (23:12 +0100)]
XML: Implementation of XML namespaces

The basic logic of namespaces and qualified names works,
but unfortunately the attribute data structures are broken.

9 years agoXML: Directory renamed to ucw-xml
Martin Mares [Thu, 12 Feb 2015 18:44:04 +0000 (19:44 +0100)]
XML: Directory renamed to ucw-xml

Instead of <xml/something.h>, we now include <ucw-xml/something.h>,
which is less likely to clash with other libraries.

9 years agoXML: ABI cleanup
Martin Mares [Thu, 12 Feb 2015 18:31:53 +0000 (19:31 +0100)]
XML: ABI cleanup

9 years agoLogging: log_new_fd to fd=2 also prevents stderr from closing
Martin Mares [Thu, 12 Feb 2015 18:06:34 +0000 (19:06 +0100)]
Logging: log_new_fd to fd=2 also prevents stderr from closing

9 years agoRemove obsolete references to Sherlock
Martin Mares [Thu, 12 Feb 2015 18:05:40 +0000 (19:05 +0100)]
Remove obsolete references to Sherlock

9 years agoXML: Fixed a typo in comment
Martin Mares [Thu, 12 Feb 2015 17:26:30 +0000 (18:26 +0100)]
XML: Fixed a typo in comment