diff --git a/docs/commit_messages.txt b/docs/commit_messages.txt index ff36829b6e4723961e0af6bb51cf108515a701d1..178b4d0cf0616b0acb58613d7183cfce10a55850 100644 --- a/docs/commit_messages.txt +++ b/docs/commit_messages.txt @@ -42,6 +42,36 @@ configure.ac: --enable-tests=yes, if check is present, and like --enable-tests=no otherwise. +.gitlab-ci.yml: + This package uses a gitlab repository for version control and + also has some ci jobs. The package is setup, as the files + generated via autoreconf are not included in the vcs. Then the + package is compiled and tested. Furthermore, a release is + created and uploaded. It is accompanied by a tag naming this + nightly release. Note, that adding a tag triggers the pipeline + again, which would result in an error, as a release with the + same name can't be added twice. This is prevented with an + execution rule. + These releases are manually deleted from time to time, as they + take up space. + For uploading and creating the release, the tar-name is needed. + That's why for this there are separate shell scripts in which + configure substitutes some variables. + + Note, that separating the work into different stages, using a + makefile, to determine what should be compiled, using git and + gitlab's behaviour, doesn't always works as intended. The + library used to be always recompiled, even if it has already + been compiled in the previous stage, because on git checkout, + which is done at every stage, the files get the timestamp of + the checkout-time, but the already build files, coming from + artifacts, have older times, thus resulting in a recompilation. + This is fixed with setting the timestamp of every file to the + last change git knows of. + + Actually some bugs were already found due to testing the + package in another environment. + main.c: As this project is about a library, a main.c would not be expected. It contains a small demo program using the library. @@ -347,6 +377,47 @@ Fragment: missing, as it depends on still not implemented functionality of SH_Text. + + The TextFragment is used to implement the text between and + outside html tags. Currently, it is still very rudimentary in, + that it doesn't support any operations at all and just has a + function to expose a internal text. + While this function is necessary to manipulate the content of a + TextFragment, the TextFragment should abstract the semantics of + Text. While simple wrapper functions for appending are to be + added, methods purely manipulating the text, i.e. relying on + the text's contents, wont get wrapper functions. Thus this + function is still needed until a more sophisticated approach is + implemented. + Some basic text functionality is already supported via wrapper + functions. + Note that wrapper functions aren't tested in unit tests. + + When a newline is encountered in the text, a <br /> is inserted + and for wrap mode also a newline and an indent is inserted. + Note, that the indent is still missing at the front where it + can't be inserted yet as SH_Text is still lacking basic + functionality. + + + The html generation for both TextFragment and NodeFragment + combined is tested. As the encoding semantics of the + TextFragments are neither defined nor implemented, some tests + are marked as XFAIL. + + + What is still missing is the proper treatment of embed text. + This should be indented and breaked at 72/79/80. Also newlines + and special chars should be replaced on generation, maybe also + giving some way of preventing XSS. Regarding the NodeFragment + there should be some adjustments to further adjust the styling, + which of course should also be reflected by TextFragment. This + should also include the generation of self-closing tags. + Furthermore the html generation should be based on a single + text object, to which is added to. This will later on also + enable to directly send generated parts over the network while + still generating some data. + Validator: Validator serves as an syntax checker, i.e. it can be requested whether a tag is allowed. @@ -458,6 +529,33 @@ Text: is returned. + It was tried to implement the text in terms of multiple text + segments. + + While it would be preferable, it doesn't seam to be possible to + abstract over the internals of text_segment. That's why only + some basic functionality is moved, but whether more is to + follow, is not known yet. + + A text_segment allocates memory in terms of chunks, this is now + also done, when created from a string, but this means that we + can't rely on strdup any more, as it takes care of the + allocation. Calling malloc ourselves shouldn't be such an + overhead as at least glibc's strdup performs the exact same + steps. Actually we should be spare a strlen call now, so it + should be more performant. + + The copy_and_replace function replaces a single character with + a string, while copying. This may be replaced by an elaborate + function as manipulating a text normally means that + manipulating is deferred until needed, which this function + contradicts to. + + + Also there is the concept of a text mark. + A mark will be used to point to a specific location inside of a + text. Currently it can't do anything and isn't even used. + Tests: Tests are done using check, allowing to integrate the tests into the GNU Autotools. diff --git a/sefht.geany b/sefht.geany index 7dda934d610937d345c7fb8cf35ab6acd55bb99d..8a2303e201d17e02c00b441385086d3e278a384b 100644 --- a/sefht.geany +++ b/sefht.geany @@ -34,7 +34,7 @@ FILE_NAME_1=134;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2F FILE_NAME_2=1737;Sh;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fconfigure.ac;0;8 FILE_NAME_3=73;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2FMakefile.am;0;8 FILE_NAME_4=19;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmain.c;0;8 -FILE_NAME_5=23257;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fcommit_messages.txt;0;8 +FILE_NAME_5=3555;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fcommit_messages.txt;0;8 FILE_NAME_6=1867;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2FMakefile.am;0;8 FILE_NAME_7=18;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2Fsefht%2Fcms.c;0;8 FILE_NAME_8=18;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2Fsefht%2Fcms.h;0;8