File indexing completed on 2024-04-21 04:52:59

0001 #!/usr/bin/env python3
0002 
0003 import fileinput
0004 import re
0005 import sys
0006 import os
0007 
0008 
0009 def fix_man_docbook(lang):
0010     scriptdir = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/')
0011     for line in fileinput.input(mode='rb'):
0012         line = line\
0013           .replace(b'"-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [',
0014                    b'"-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [\n' +
0015                    b"  <!ENTITY % fromkdoctools SYSTEM '" + scriptdir.encode() + b"/fromkdoctools.ent'>\n" +
0016                    b"  %fromkdoctools;\n" +
0017                    b"  <!ENTITY language '" + lang.encode() + b"'>")\
0018           .replace(b'ufleisch@', b'ufleisch at ')\
0019           .replace(b'&FDLNotice;',
0020                    b'<para><ulink url="http://www.gnu.org/licenses/licenses.html#FDL">FDL</ulink></para>')\
0021           .replace(b'&underFDL;',
0022                    b'<para><ulink url="http://www.gnu.org/licenses/licenses.html#FDL">FDL</ulink></para>')\
0023           .replace(b'&underGPL;',
0024                    b'<para><ulink url="http://www.gnu.org/licenses/licenses.html#GPL">GPL</ulink></para>')\
0025           .replace(b'&documentation.index;', b'')\
0026           .replace(b'<book ', b'<article ')\
0027           .replace(b'</book>', b'</refentry>\n</article>')\
0028           .replace(b'<bookinfo', b'<articleinfo')\
0029           .replace(b'</bookinfo>',
0030                    b'</articleinfo>\n\n<refentry id="kid3">\n\n')\
0031           .replace(b'<preface', b'<refsect1')\
0032           .replace(b'</preface', b'</refsect1')\
0033           .replace(b'<chapter', b'<refsect1')\
0034           .replace(b'</chapter', b'</refsect1')\
0035           .replace(b'<sect1', b'<refsect2')\
0036           .replace(b'</sect1', b'</refsect2')\
0037           .replace(b'<sect2', b'<refsect3')\
0038           .replace(b'</sect2', b'</refsect3')\
0039           .replace(b'<appendix', b'<refsect1')\
0040           .replace(b'</appendix', b'</refsect1')
0041         line = re.sub(br'^<!--change manpage(.*)-->.*$', br'\1', line)
0042         line = re.sub(br'^<!--begin manpage include$',
0043                        br'<!--begin manpage include-->', line)
0044         line = re.sub(br'^end manpage include-->$',
0045                    br'<!--end manpage include-->', line)
0046         line = re.sub(br'^<!--begin manpage ignore-->$',
0047                        br'<!--begin manpage ignore', line)
0048         line = re.sub(br'^<!--end manpage ignore-->$',
0049                            br'end manpage ignore-->', line)
0050         os.write(sys.stdout.fileno(), line)
0051 
0052 if __name__ == '__main__':
0053     lang = 'en'
0054     if len(sys.argv) > 1:
0055         lang = sys.argv[1]
0056         if os.path.isfile(lang):
0057             lang = os.path.split(os.path.dirname(lang))[1]
0058             if lang == 'kid3':
0059                 lang = os.path.normpath(sys.argv[1]).split(os.path.sep)[-4]
0060         else:
0061             del sys.argv[1]
0062     fix_man_docbook(lang)