aboutsummaryrefslogtreecommitdiffstats
path: root/src/writer.c
AgeCommit message (Collapse)AuthorFilesLines
2024-09-27Make more pointer variables constDavid Robillard1-2/+2
2024-09-27Make function parameters const wherever possibleDavid Robillard1-81/+88
The early history of this code didn't tend to make parameters const, but the "const density" is high enough now that I often find myself wondering if something is mutable for some reason, or just old and sloppier. So, eliminate this confusion by making (hopefully) all function parameters const if possible.
2024-09-27Use tighter types for UTF-8David Robillard1-7/+7
2024-06-25Reduce size of character classification codeDavid Robillard1-47/+13
2024-06-25Fix rewriting special literals when datatype URIs are prefixed namesDavid Robillard1-15/+30
2024-06-25Clean up redundant and/or inconsistent conditionalsDavid Robillard1-10/+4
2024-06-25Replace questionable switch statements with shorter conditionalsDavid Robillard1-14/+6
2024-06-24Write blank lines between graphs and statements in TriGDavid Robillard1-1/+1
2024-06-24Clean up nonnull parameter assertionsDavid Robillard1-1/+8
2024-06-23Gracefully handle failure to terminate written anonymous nodesDavid Robillard1-14/+14
This case shouldn't be reachable when driven directly from a reader, but can be reached by invalid use of the writer in an application.
2024-03-28Add assertions for all non-null pointers in the public APIDavid Robillard1-0/+25
2024-03-10Simplify writer logicDavid Robillard1-18/+17
2024-03-10Remove unnecessary internal writer separator caseDavid Robillard1-21/+7
2024-01-20Fix writing empty list objects within blank nodesDavid Robillard1-0/+8
2024-01-09Avoid regressions in clang nullability checksDavid Robillard1-1/+15
Clang 15 (and still as of 16) lost the ability to understand null checks in conditionals, which is supposed to suppress these warnings. For now, work around some, and suppress others. The suppression boilerplate here is noisy and ugly, and hopefully temporary. It should be removed once the issue is fixed in clang. See https://github.com/llvm/llvm-project/issues/63018
2023-09-22Fix potential realloc leaksDavid Robillard1-3/+6
2023-04-16Gracefully handle errors when writing textDavid Robillard1-66/+118
2023-04-06Clean up error handling and use TRY macros more broadlyDavid Robillard1-8/+6
2023-04-06Improve pretty-printing of lists and inline subjectsDavid Robillard1-146/+227
2023-04-06Remove support for writing Turtle named inline nodes extensionDavid Robillard1-30/+6
2023-04-06Make URI writing stricter by defaultDavid Robillard1-7/+10
2023-04-05Improve writer error handlingDavid Robillard1-138/+165
2023-04-05Simplify writing URI delimitersDavid Robillard1-10/+5
2023-04-05Fix potential memory leaks when a write is abortedDavid Robillard1-68/+82
Also clean up and simplify writer context management in general.
2023-04-05Fix pretty-printing of anonymous subjectsDavid Robillard1-3/+9
2023-04-02Improve TriG pretty-printing and remove trailing newlinesDavid Robillard1-3/+9
2023-03-31Fix possible hang when writing nested Turtle listsDavid Robillard1-6/+13
2023-02-04Fix clang and clang-tidy warnings on WindowsDavid Robillard1-1/+1
2022-12-20Avoid using ASCII grave as a quoteDavid Robillard1-1/+1
2022-11-25Always handle the return value of serd_env_set_base_uri()David Robillard1-14/+15
2022-10-23Add trailing commas to enum declarationsDavid Robillard1-2/+2
This has been supported since C99 and C++11, and makes for less noisy diffs and fewer conflicts when things are added.
2022-08-31Adopt REUSE machine-readable licensing standardDavid Robillard1-15/+2
2021-06-30Avoid writing invalid prefixed name prefixesDavid Robillard1-1/+2
2021-05-31Remove "static inline" for functions in implementation filesDavid Robillard1-5/+5
This is just noise since these are static functions local to a C compilation unit.
2021-05-16Remove redundant castDavid Robillard1-1/+1
2021-04-09Write invalid characters in URIs with percent encodingDavid Robillard1-5/+9
2021-02-15Fix writing long literals with triple quotesDavid Robillard1-2/+10
2021-01-09Add missing pure attributesDavid Robillard1-1/+1
2021-01-02Use email address instead of website for attributionDavid Robillard1-1/+1
2020-12-31Format all code with clang-formatDavid Robillard1-751/+814
2020-12-31Avoid "else" after "break" and "return"David Robillard1-16/+31
2020-11-14Refuse to write relative URI references to NTriplesDavid Robillard1-0/+15
2020-11-14Simplify abbreviated URI writing codeDavid Robillard1-13/+14
2020-11-13Simplify writer statement validity checkingDavid Robillard1-5/+3
2020-11-13Improve add and chop prefix functions when given empty stringsDavid Robillard1-4/+5
2020-11-11Add nonnull and nullable attributes to APIDavid Robillard1-0/+1
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-08-16Ensure that all free methods tolerate NULLDavid Robillard1-0/+4
2020-08-14Fix incorrect separator lengthDavid Robillard1-1/+1
2020-08-14Fix Wswitch-enum warningsDavid Robillard1-6/+4
2020-08-14Clean up and separate internal headersDavid Robillard1-0/+12