aboutsummaryrefslogtreecommitdiff
path: root/source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-04-13 00:36:45 +0200
committerAdrian Kummerlaender2019-04-13 00:49:11 +0200
commit6e5e71882d9d9969e0ffe3013e656cac8fa4f115 (patch)
treeb25460980bf2a9a172c7c7872f0468e05261c2bc /source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md
parentcd9463e572f31b82a73cdab6db6b53f3a1237b3e (diff)
downloadOverview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar.gz
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar.bz2
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar.lz
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar.xz
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.tar.zst
Overview-6e5e71882d9d9969e0ffe3013e656cac8fa4f115.zip
Replace commit feed aggregation with manual import
This is the starting point for extending _Overview_ to support various types of recent updates (i.e. not just blog articles and commits over a certain message size). While direct fetching and rendering of markdown-formatted Git commit messages is an attractive concept, this new approach should be much more flexible. As a side benefit commit entries can now be edited and expanded compared to their fixed Git reference. e.g. retroactively expanding upon older commits or adding example media that doesn't strictly belong inside the actual commit message.
Diffstat (limited to 'source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md')
-rw-r--r--source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md b/source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md
new file mode 100644
index 0000000..e724abc
--- /dev/null
+++ b/source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md
@@ -0,0 +1,9 @@
+# Interpose `open` library function
+
+`open` is not as side effect free as I had imagined - i.e. if the flag `O_TRUNC` is passed it truncates the file contents alongside opening the file descriptor. In practice this is done by _emacs_ prior to writing the new file content and as such needs to be intercepted so we can start tracking the file before it is changed.
+
+Interposing `open` required some changes to make the library work without including `fcntl.h`. This header not only defines some of the flags we require to check if a library call actually is able to change files but also defines the `open` library function.
+
+While implementing this change I noticed that the function interpositions implemented in C++ actually need to be declared as `external "C"` so their names do not get wrangled during compilation. I suspect that this was previously implicitly done for e.g. `mmap` and `write` by the included C standard library headers. However this did not work for `open` which is why all function interpositions are now explicitly declared external.
+
+End result: _emacs_ file changes are now tracked correctly.