diff options
Remove newly extracted features
i.e. Overview is now a mostly pure aggregator again.
The new commit / blip feature is now maintained in `blip.kummerlaender.eu`.
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.md | 9 |
1 files changed, 0 insertions, 9 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 deleted file mode 100644 index e724abc..0000000 --- a/source/00_content/commits/change/2016_02_20_22_30_b3ef0fc8daa41e433f1919a4933a1cc047f59341.md +++ /dev/null @@ -1,9 +0,0 @@ -# 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. |