From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]); by fantadrom.bsd.lv (OpenSMTPD) with ESMTP id 7386bd69; for ; Fri, 23 Oct 2015 14:58:27 -0500 (EST) Received: from jym-mbp.home (unknown [82.123.40.191]) (Authenticated sender: jeanyves.migeon) by smtp3-g21.free.fr (Postfix) with ESMTPSA id D575AA61DE for ; Fri, 23 Oct 2015 21:58:26 +0200 (CEST) To: tech@mdocml.bsd.lv From: Jean-Yves Migeon Subject: Small patch review for html begin/end inclusion files Message-ID: <562A9162.8060804@free.fr> Date: Fri, 23 Oct 2015 21:58:26 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 X-Mailinglist: mdocml-tech Reply-To: tech@mdocml.bsd.lv MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050408040300030007000403" This is a multi-part message in MIME format. --------------050408040300030007000403 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Dear list, I am about to migrate man.netbsd.org to man.cgi to serve NetBSD's man pages and I'd like to propose for review the attached patch that allows handling begin/end HTML tweaks without relying on CUSTOMIZE_BEGIN. Reason behind is that our HTML templates can evolve at any time, and re-compiling is tedious just for manipulating the HTML code. Also HTML navigation bars and equivalents require the use of opening (resp. closing) div's before (resp. after) man.cgi main output, so _END directive (or equivalent) are needed. The attached patch implements the following: - a CUSTOMIZE_END directive, counterpart to CUSTOMIZE_BEGIN, but inserts the code just before the closing anchor; - code to "internalize" HTML code directly from two files, called "begin.html" and "end.html" located in the same dir as manpath.conf. Purpose here is to avoid CUSTOMIZE_BEGIN/_END hardcoding at compile-time and put HTML code in an easier way to manipulate than multiline C strings. I would like to see such a feature imported in man.cgi (or another kind of templating engine if it exists). I am unsure about the way the begin/end.html handling should happen though: - a compile-time option, eventually combined with CUSTOMIZE_* macros; - having a special treatment regarding ENOENT during fopen(2) to not warn about their absence; - some other approach... ? Suggestions welcome. Thanks, -- Jean-Yves Migeon --------------050408040300030007000403 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="cgi.c.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cgi.c.diff" OnHigJQgd29yay9tZG9jbWwtMS4xMy4zL2NnaS5jCTIwMTUtMDMtMTMgMTI6Mzg6MzguMDAw MDAwMDAwICswMDAwCisrKyBjZ2kuYwkyMDE1LTEwLTIyIDE4OjM1OjIxLjAwMDAwMDAwMCAr MDAwMApAQCAtMTcsNiArMTcsNyBAQAogICovCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNp bmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUg PHN5cy90aW1lLmg+CiAKQEAgLTUyLDYgKzUzLDggQEAgc3RydWN0CXJlcSB7CiAJc3RydWN0 IHF1ZXJ5CSAgcTsKIAljaGFyCQkqKnA7IC8qIGFycmF5IG9mIGF2YWlsYWJsZSBtYW5wYXRo cyAqLwogCXNpemVfdAkJICBwc3o7IC8qIG51bWJlciBvZiBhdmFpbGFibGUgbWFucGF0aHMg Ki8KKwljaGFyCQkgKmhlYWRlcjsgLyogY3VzdG9tIEhUTUwgaGVhZGVyICovCisJY2hhcgkJ ICpmb290ZXI7IC8qIGN1c3RvbSBIVE1MIGZvb3RlciAqLwogfTsKIAogc3RhdGljCXZvaWQJ CSBjYXRtYW4oY29uc3Qgc3RydWN0IHJlcSAqLCBjb25zdCBjaGFyICopOwpAQCAtNjMsNiAr NjYsOCBAQCBzdGF0aWMJdm9pZAkJIGh0dHBfcGFyc2Uoc3RydWN0IHJlcSAqLCBjCiBzdGF0 aWMJdm9pZAkJIGh0dHBfcHJpbnQoY29uc3QgY2hhciAqKTsKIHN0YXRpYwl2b2lkCQkgaHR0 cF9wdXRjaGFyKGNoYXIpOwogc3RhdGljCXZvaWQJCSBodHRwX3ByaW50cXVlcnkoY29uc3Qg c3RydWN0IHJlcSAqLCBjb25zdCBjaGFyICopOworc3RhdGljCXZvaWQJCSBpbnRlcm5hbGl6 ZV9maWxlKGNoYXIgKiosIGNvbnN0IGNoYXIgKik7CitzdGF0aWMJdm9pZAkJIGh0bWxnZW4o c3RydWN0IHJlcSAqKTsKIHN0YXRpYwl2b2lkCQkgcGF0aGdlbihzdHJ1Y3QgcmVxICopOwog c3RhdGljCXZvaWQJCSBwZ19lcnJvcl9iYWRyZXF1ZXN0KGNvbnN0IGNoYXIgKik7CiBzdGF0 aWMJdm9pZAkJIHBnX2Vycm9yX2ludGVybmFsKHZvaWQpOwpAQCAtNzYsNiArODEsNyBAQCBz dGF0aWMJdm9pZAkJIHJlc3BfYmVnaW5faHRtbChpbnQsIGNvbnN0CiBzdGF0aWMJdm9pZAkJ IHJlc3BfYmVnaW5faHR0cChpbnQsIGNvbnN0IGNoYXIgKik7CiBzdGF0aWMJdm9pZAkJIHJl c3BfZW5kX2h0bWwodm9pZCk7CiBzdGF0aWMJdm9pZAkJIHJlc3Bfc2VhcmNoZm9ybShjb25z dCBzdHJ1Y3QgcmVxICopOworc3RhdGljCXZvaWQJCSByZXNwX2Zvb3Rlcihjb25zdCBzdHJ1 Y3QgcmVxICopOwogc3RhdGljCXZvaWQJCSByZXNwX3Nob3coY29uc3Qgc3RydWN0IHJlcSAq LCBjb25zdCBjaGFyICopOwogc3RhdGljCXZvaWQJCSBzZXRfcXVlcnlfYXR0cihjaGFyICoq LCBjaGFyICoqKTsKIHN0YXRpYwlpbnQJCSB2YWxpZGF0ZV9maWxlbmFtZShjb25zdCBjaGFy ICopOwpAQCAtMzk4LDcgKzQwNCwxMCBAQCByZXNwX3NlYXJjaGZvcm0oY29uc3Qgc3RydWN0 IHJlcSAqcmVxKQogewogCWludAkJIGk7CiAKKwkvKiBXcml0ZSB0aGUgY3VzdG9taXplZCBI VE1MIGhlYWRlciAqLwogCXB1dHMoQ1VTVE9NSVpFX0JFR0lOKTsKKwlpZiAocmVxLT5oZWFk ZXIgIT0gTlVMTCkKKwkJcHV0cyhyZXEtPmhlYWRlcik7CiAJcHV0cygiPCEtLSBCZWdpbiBz ZWFyY2ggZm9ybS4gLy8tLT4iKTsKIAlwcmludGYoIjxESVYgSUQ9XCJtYW5jZ2lcIj5cbiIK IAkgICAgICAgIjxGT1JNIEFDVElPTj1cIiVzXCIgTUVUSE9EPVwiZ2V0XCI+XG4iCkBAIC00 OTAsNiArNDk5LDE2IEBAIHJlc3Bfc2VhcmNoZm9ybShjb25zdCBzdHJ1Y3QgcmVxICpyZXEp CiAJcHV0cygiPCEtLSBFbmQgc2VhcmNoIGZvcm0uIC8vLS0+Iik7CiB9CiAKK3N0YXRpYyB2 b2lkCityZXNwX2Zvb3Rlcihjb25zdCBzdHJ1Y3QgcmVxICpyZXEpCit7CisKKwkvKiBXcml0 ZSB0aGUgY3VzdG9taXplZCBIVE1MIGZvb3RlciAqLworCWlmIChyZXEtPmZvb3RlciAhPSBO VUxMKQorCQlwdXRzKHJlcS0+Zm9vdGVyKTsKKwlwdXRzKENVU1RPTUlaRV9FTkQpOworfQor CiBzdGF0aWMgaW50CiB2YWxpZGF0ZV91cmlmcmFnKGNvbnN0IGNoYXIgKmZyYWcpCiB7CkBA IC01NDQsNiArNTYzLDcgQEAgcGdfaW5kZXgoY29uc3Qgc3RydWN0IHJlcSAqcmVxKQogCSAg ICAgICAibWFudWFsIGV4cGxhaW5zIHRoZSBxdWVyeSBzeW50YXguXG4iCiAJICAgICAgICI8 L1A+XG4iLAogCSAgICAgICBzY3JpcHRuYW1lLCBzY3JpcHRuYW1lKTsKKwlyZXNwX2Zvb3Rl cihyZXEpOwogCXJlc3BfZW5kX2h0bWwoKTsKIH0KIApAQCAtNTU1LDYgKzU3NSw3IEBAIHBn X25vcmVzdWx0KGNvbnN0IHN0cnVjdCByZXEgKnJlcSwgY29uc3QKIAlwdXRzKCI8UD4iKTsK IAlwdXRzKG1zZyk7CiAJcHV0cygiPC9QPiIpOworCXJlc3BfZm9vdGVyKHJlcSk7CiAJcmVz cF9lbmRfaHRtbCgpOwogfQogCkBAIC02NzgsNiArNjk5LDcgQEAgcGdfc2VhcmNocmVzKGNv bnN0IHN0cnVjdCByZXEgKnJlcSwgc3RydQogCQlyZXNwX3Nob3cocmVxLCByW2l1c2VdLmZp bGUpOwogCX0KIAorCXJlc3BfZm9vdGVyKHJlcSk7CiAJcmVzcF9lbmRfaHRtbCgpOwogfQog CkBAIC05MzEsNiArOTUzLDcgQEAgcGdfc2hvdyhzdHJ1Y3QgcmVxICpyZXEsIGNvbnN0IGNo YXIgKmZ1bAogCXJlc3BfYmVnaW5faHRtbCgyMDAsIE5VTEwpOwogCXJlc3Bfc2VhcmNoZm9y bShyZXEpOwogCXJlc3Bfc2hvdyhyZXEsIGZpbGUpOworCXJlc3BfZm9vdGVyKHJlcSk7CiAJ cmVzcF9lbmRfaHRtbCgpOwogfQogCkBAIC0xMDYwLDYgKzEwODMsNyBAQCBtYWluKHZvaWQp CiAKIAltZW1zZXQoJnJlcSwgMCwgc2l6ZW9mKHN0cnVjdCByZXEpKTsKIAlwYXRoZ2VuKCZy ZXEpOworCWh0bWxnZW4oJnJlcSk7CiAKIAkvKiBOZXh0IHBhcnNlIG91dCB0aGUgcXVlcnkg c3RyaW5nLiAqLwogCkBAIC0xMTAyLDEwICsxMTI2LDY4IEBAIG1haW4odm9pZCkKIAlmb3Ig KGkgPSAwOyBpIDwgKGludClyZXEucHN6OyBpKyspCiAJCWZyZWUocmVxLnBbaV0pOwogCWZy ZWUocmVxLnApOworCWZyZWUocmVxLmhlYWRlcik7CisJZnJlZShyZXEuZm9vdGVyKTsKIAly ZXR1cm4oRVhJVF9TVUNDRVNTKTsKIH0KIAogLyoKKyAqIFJlYWQgYW5kIHN0b3JlIGNvbnRl bnQgb2YgYSBmaWxlIGxvY2F0ZWQgaW4gTUFOX0RJUgorICovCitzdGF0aWMgdm9pZAoraW50 ZXJuYWxpemVfZmlsZShjaGFyICoqYnVmLCBjb25zdCBjaGFyICpuYW1lKQoreworCUZJTEUJ KmZwOworCXN0cnVjdCBzdGF0IHN0OworCisJaWYgKE5VTEwgPT0gKGZwID0gZm9wZW4obmFt ZSwgInIiKSkpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlcy8lczogJXNcbiIsCisJCQlNQU5f RElSLCBuYW1lLCBzdHJlcnJvcihlcnJubykpOworCQlnb3RvIGVycm9yOworCX0KKworCWlm IChmc3RhdChmaWxlbm8oZnApLCAmc3QpICE9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICIl cy8lczogJXNcbiIsCisJCQlNQU5fRElSLCBuYW1lLCBzdHJlcnJvcihlcnJubykpOworCQln b3RvIGVycm9yOworCX0KKworCSpidWYgPSBtYW5kb2NfY2FsbG9jKDEsIHN0LnN0X3NpemUg KyAxKTsKKwlpZiAoZnJlYWQoKmJ1Ziwgc2l6ZW9mKGNoYXIpLCBzdC5zdF9zaXplLCBmcCkg PCBzdC5zdF9zaXplKSB7CisJCWlmIChmZXJyb3IoZnApKSB7CisJCQlmcHJpbnRmKHN0ZGVy ciwgIiVzLyVzOiAlc1xuIiwKKwkJCQlNQU5fRElSLCBuYW1lLCBzdHJlcnJvcihlcnJubykp OworCQkJZ290byBlcnJvcjsKKwkJfQorCQlpZiAoZmVvZihmcCkpIHsKKwkJCWZwcmludGYo c3RkZXJyLCAiJXMvJXM6ICVzXG4iLAorCQkJCU1BTl9ESVIsIG5hbWUsICJwcmVtYXR1cmUg RU9GIik7CisJCQlnb3RvIGVycm9yOworCQl9CisJfQorCWZjbG9zZShmcCk7CisJcmV0dXJu OworCitlcnJvcjoKKwlpZiAoZnAgIT0gTlVMTCkKKwkJZmNsb3NlKGZwKTsKKwlmcmVlKCpi dWYpOworCSpidWYgPSBOVUxMOworCXJldHVybjsKK30KKworLyoKKyAqIFNjYW4gZm9yIGN1 c3RvbWl6ZWQgSFRNTCBoZWFkZXIgYW5kIGZvb3RlcgorICovCitzdGF0aWMgdm9pZAoraHRt bGdlbihzdHJ1Y3QgcmVxICpyZXEpCit7CisKKwlpbnRlcm5hbGl6ZV9maWxlKCZyZXEtPmhl YWRlciwgImJlZ2luLmh0bWwiKTsKKwlpbnRlcm5hbGl6ZV9maWxlKCZyZXEtPmZvb3Rlciwg ImVuZC5odG1sIik7Cit9CisJCisvKgogICogU2NhbiBmb3IgaW5kZXhhYmxlIHBhdGhzLgog ICovCiBzdGF0aWMgdm9pZAo= --------------050408040300030007000403 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="man.cgi.8.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="man.cgi.8.diff" LS0tIHdvcmsvbWRvY21sLTEuMTMuMy9tYW4uY2dpLjgJMjAxNS0wMy0xMyAxMjozODozOC4w MDAwMDAwMDAgKzAwMDAKKysrIG1hbi5jZ2kuOAkyMDE1LTEwLTIyIDE5OjIwOjQyLjAwMDAw MDAwMCArMDAwMApAQCAtMTQsNyArMTQsNyBAQAogLlwiIEFDVElPTiBPRiBDT05UUkFDVCwg TkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCiAu XCIgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJ UyBTT0ZUV0FSRS4KIC5cIgotLkRkICRNZG9jZGF0ZTogU2VwdGVtYmVyIDE0IDIwMTQgJAor LkRkICRNZG9jZGF0ZTogT2N0b2JlciAyMyAyMDE1ICQKIC5EdCBNQU4uQ0dJIDgKIC5Pcwog LlNoIE5BTUUKQEAgLTE1OCw2ICsxNTgsMjYgQEAgdG8gY3JlYXRlIGEKIC5YciBtYW5kb2Mu ZGIgNQogZGF0YWJhc2UgaW5zaWRlIGVhY2ggbWFucGF0aC4KIC5QcAorWW91IGNhbiBvcHRp b25hbGx5IGNyZWF0ZSBhIGZpbGUKKy5QYSAvdmFyL3d3dy9tYW4vYmVnaW4uaHRtbAorY29u dGFpbmluZyBIVE1MIGNvZGUgdGhhdCB3aWxsIGJlIGluc2VydGVkIGFzLWlzIHJpZ2h0IGFm dGVyCit0aGUKKy5BcSBCT0RZCitlbGVtZW50LgorSXQgbWltaWNzIHRoZSBiZWhhdmlvdXIg b2YgdGhlCisuRXYgQ1VTVE9NSVpFX0JFR0lOCitjb21waWxlLXRpbWUgb3B0aW9uLAorZXhj ZXB0IHRoYXQgdGhlIHN0cmluZyBpcyBvYnRhaW5lZCB0aHJvdWdoIHRoZSBmaWxlIHJhdGhl ciB0aGFuCitzcGVjaWZpZWQgZHVyaW5nIHRoZSBjb21waWxhdGlvbiBzdGVwLgorQSBzaW1p bGFyIGZpbGUgY2FsbGVkCisuUGEgL3Zhci93d3cvbWFuL2VuZC5odG1sCit3aWxsIGluc2Vy dCBpdHMgSFRNTCBjb250ZW50IHJpZ2h0IGJlZm9yZSB0aGUKKy5BcSAvQk9EWQorZWxlbWVu dCwKK2luIHRoZSBzYW1lIHdheSB0aGUKKy5FdiBDVVNUT01JWkVfRU5ECitjb21waWxlLXRp bWUgb3B0aW9uIHdvdWxkIGRvLgorLlBwCiBDb25maWd1cmUgeW91ciB3ZWIgc2VydmVyIHRv IGV4ZWN1dGUgQ0dJIHByb2dyYW1zIGxvY2F0ZWQgaW4KIC5QYSAvY2dpLWJpbiAuCiBXaGVu IHVzaW5nCkBAIC0xOTEsNiArMjExLDEwIEBAIFRoaXMgaXMgdXNlZCBpbiBnZW5lcmF0ZWQg SFRNTCBjb2RlLgogQSBIVE1MIHN0cmluZyB0byBiZSBpbnNlcnRlZCByaWdodCBhZnRlciBv cGVuaW5nIHRoZQogLkFxIEJPRFkKIGVsZW1lbnQuCisuSXQgRXYgQ1VTVE9NSVpFX0VORAor QSBIVE1MIHN0cmluZyB0byBiZSBpbnNlcnRlZCByaWdodCBiZWZvcmUgY2xvc2luZyB0aGUK Ky5BcSBCT0RZCitlbGVtZW50LgogLkl0IEV2IENVU1RPTUlaRV9USVRMRQogQW4gQVNDSUkg c3RyaW5nIHRvIGJlIHVzZWQgZm9yIHRoZSBIVE1MCiAuQXEgVElUTEUK --------------050408040300030007000403-- -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv