aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-11-13Remove use of C character class functions that may use localeDavid Robillard4-6/+16
Some of these cause warnings, and should never have been used in the first place since they depend on locale.
2020-11-13Use line comments where appropriate and clean up headerDavid Robillard1-222/+115
2020-11-13Allow setting the base URI of an Env to NULLDavid Robillard2-3/+12
2020-11-13Use aligned allocation via C11 or Windows API where possibleDavid Robillard6-13/+72
2020-11-12Use C11 if possibleDavid Robillard3-1/+5
2020-11-12Relax nullability annotation on allocation functionsDavid Robillard1-3/+5
In practice almost nobody checks for failed allocation, including unfortunately the serd tests and serdi itself. Adding a struct mode to conditionally define this would be a good idea to support allocation-hardened code, but for now just mark them as unspecified instead. On the bright side, this documents the nature of the returned pointers nicely.
2020-11-12Add missing const qualifiersDavid Robillard1-4/+4
2020-11-12Factor out output style selectionDavid Robillard1-22/+34
2020-11-12Suppress nullability warnings in testsDavid Robillard1-0/+1
2020-11-12Use built-in abspath()David Robillard1-1/+1
2020-11-11Set up environment for using serdi as a subprojectDavid Robillard1-0/+9
2020-11-11Disable coverage on sanitizer CI rowDavid Robillard1-1/+1
2020-11-11Fix link errors with sanitizers at the source in autowafDavid Robillard2-6/+0
2020-11-11Fix build as a subprojectDavid Robillard1-5/+7
2020-11-11Clean up attributes in reference documentationDavid Robillard1-1/+5
This is a bit unfortunate since they are quite useful as documentation, but unfortunately Doxygen (as usual) doesn't manage to format things nicely, and the noise makes the summaries unreadable.
2020-11-11Add CI row to run clang sanitizersDavid Robillard2-0/+24
Some of these are also supported by GCC, but clang supports more and clang on Linux was uncovered before anyway, so this fixes that situation as well.
2020-11-11Add nonnull and nullable attributes to APIDavid Robillard5-183/+226
This will warn if NULL is passed to any nonnull-annotated parameter, and is also supported by sanitizers which can check for violations at runtime. Unfortunately, it is currently only supported by clang. GCC has a similar feature in the nonnull attribute, but this has a different syntax (it's a function attribute) and is more dangerous since it is used by the optimizer to assume a null pointer is undefined behavior. This one just warns and still allows code to handle the situation gracefully, which I think is more appropriate for a library API. Note that this optimization behavior is not some unlikely edge case: switching these attributes to the GCC one will break release builds.
2020-11-10Fix potential memory error when serialising URIsDavid Robillard2-2/+4
2020-11-10Fix memory leak in chunk reading testDavid Robillard1-0/+1
2020-11-10Add const, pure, and malloc function attributesDavid Robillard9-18/+56
2020-11-10Simplify visibility boilerplateDavid Robillard1-13/+6
2020-11-10Fix warnings in MinGW buildDavid Robillard1-0/+3
2020-11-10Fix header installationDavid Robillard1-1/+1
2020-11-10Define WIN32_LEAN_AND_MEANDavid Robillard1-0/+1
2020-11-09Add a test for reading strings with no trailing newlineDavid Robillard1-0/+23
2020-11-09Use separate clang-tidy configurations for implementation and testsDavid Robillard2-4/+9
2020-11-09Split out reader and writer testsDavid Robillard3-169/+207
2020-11-09Split out string testsDavid Robillard3-32/+66
2020-11-09Split out URI testsDavid Robillard3-137/+174
2020-11-09Rename unit tests to start with a consistent prefixDavid Robillard5-8/+8
2020-11-09Fix clang-tidy hicpp-signed-bitwise warnings in headerDavid Robillard2-16/+16
In exchange for suppressing a pointless superficial warning instead, but I dislike that convention since it looks confusing when hex digits are used and it's inconsistent with near-universal floating point suffix convention.
2020-11-09Check headers with stricter clang-tidy settingsDavid Robillard2-1/+10
2020-11-09Move header to conventional include directoryDavid Robillard4-6/+7
2020-11-09Rename test directoryDavid Robillard1184-32/+38
2020-10-28Simplify reader byte reading interfaceDavid Robillard1-10/+3
This eliminates eat_byte() and the way it conflates the status of advancing the source with the current character, which can cause problems with custom sinks.
2020-10-27Update autowafDavid Robillard1-0/+0
2020-10-27Update autowafDavid Robillard2-2/+2
2020-09-27Serd 0.30.6v0.30.6David Robillard2-3/+3
2020-09-27Update stale copyright datesDavid Robillard5-5/+5
2020-09-26Update autowafDavid Robillard1-0/+0
2020-09-26Update autowafDavid Robillard1-0/+0
2020-08-16Use conventional short variable name for statusDavid Robillard1-8/+8
2020-08-16Ensure that all free methods tolerate NULLDavid Robillard6-1/+49
2020-08-16Move Env tests to a separate fileDavid Robillard3-64/+97
2020-08-16Add test for reading chunksDavid Robillard2-0/+122
2020-08-16Fix loop index variable typeDavid Robillard1-5/+5
2020-08-16Fix handling of bad syntax that ends a collectionDavid Robillard3-1/+9
2020-08-16Fix EOF and null byte handlingDavid Robillard3-3/+12
This is a bit questionable, but the null byte support is needed for streaming over a socket where some delimiter is required. This caused a bug where serdi would hang forever on corrupt files that contain a null byte. Fix this by consuming the byte, but otherwise behaving as before.
2020-08-16Add a test for reading from socket-like streamsDavid Robillard1-0/+61
2020-08-15Clean up reader error handlingDavid Robillard5-315/+363