On 03/15/2016 04:14 AM, Boruch Baum wrote: > On 03/15/2016 03:02 AM, Martin Kühne wrote: >> how do you want to tell what patches have been applied? setting up the >> infrastructure for that would be ridiculously complex, since the codebase is >> anything but luxury in that regard and neither is the build tools that are >> used. >> ffs, we use patch and make here, please tell me how are unified diffs >> supposed to extend an array of array of char to incrementally record what >> patches have been applied? >> >> cheers! >> mar77i >> > How about this: ask each patched feature to add one line of code at the > main level to append its description to a single suckless.org defined > version_string variable, conceptually: > > version_string = version_string + newline + > my_patch_description_with_version > > The vanilla version of dmenu (and other suckless tools) would add a > uniform print function in response to a uniform command line parameter > that would print the variable version_string and exit with a success > exit code. > > A patched version of source with three patches would conceptually look > like this: > > * original code > * version_string defined > PATCH3: version_string modified > PATCH2: version_string modified > PATCH1: version_string modified > * version print function defined > * more original code > PATCH3: content of patch > PATCH2: content of patch > PATCH1: content of patch > > The patches are listed in reverse sequence order because that's what > diff would come up with, anchoring the patch to original code. > > The definition and modification of the version_string need not be source > code, but could be compile time macros. > @myself: The 'correct' way would be to use compile-time macros. If dmenu/suckless wants to go the way of compile-time macros, that's also an alternative to keeping the code of the suckless/official patches external to the dmenu source code file (Use a compile-time macro 'switch', just a set of IF/THENS based upon a compile-time variable).
-- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0
