{"id":2197678,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197678/?format=json","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.0/projects/46/?format=json","name":"Intel Wired Ethernet development","link_name":"intel-wired-lan","list_id":"intel-wired-lan.osuosl.org","list_email":"intel-wired-lan@osuosl.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<45e9f1cccffba1d8c39b9e439efe694e1426a717.1771408406.git.mchehab+huawei@kernel.org>","date":"2026-02-18T10:13:03","name":"[33/38] docs: kdoc_output: add optional args to ManOutput class","commit_ref":null,"pull_url":null,"state":"handled-elsewhere","archived":false,"hash":"56aaeca8288863d8a4a070fc9fa377ec9ed580e7","submitter":{"id":78235,"url":"http://patchwork.ozlabs.org/api/1.0/people/78235/?format=json","name":"Mauro Carvalho Chehab","email":"mchehab+huawei@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/45e9f1cccffba1d8c39b9e439efe694e1426a717.1771408406.git.mchehab+huawei@kernel.org/mbox/","series":[{"id":492532,"url":"http://patchwork.ozlabs.org/api/1.0/series/492532/?format=json","date":"2026-02-18T10:12:30","name":"docs: several improvements to kernel-doc","version":1,"mbox":"http://patchwork.ozlabs.org/series/492532/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197678/checks/","tags":{},"headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=NYTpoIun;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGC5m2kbLz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 21:13:48 +1100 (AEDT)","from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 730AE81096;\n\tWed, 18 Feb 2026 10:13:43 +0000 (UTC)","from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id rLBTOx9f-be3; Wed, 18 Feb 2026 10:13:42 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 186E4810BE;\n\tWed, 18 Feb 2026 10:13:42 +0000 (UTC)","from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133])\n by lists1.osuosl.org (Postfix) with ESMTP id D807C206\n for <intel-wired-lan@lists.osuosl.org>; Wed, 18 Feb 2026 10:13:32 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp2.osuosl.org (Postfix) with ESMTP id C8A784009A\n for <intel-wired-lan@lists.osuosl.org>; Wed, 18 Feb 2026 10:13:32 +0000 (UTC)","from smtp2.osuosl.org ([127.0.0.1])\n by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 2wL9q6ycVKsV for <intel-wired-lan@lists.osuosl.org>;\n Wed, 18 Feb 2026 10:13:32 +0000 (UTC)","from sea.source.kernel.org (sea.source.kernel.org\n [IPv6:2600:3c0a:e001:78e:0:1991:8:25])\n by smtp2.osuosl.org (Postfix) with ESMTPS id EE49140078\n for <intel-wired-lan@lists.osuosl.org>; Wed, 18 Feb 2026 10:13:31 +0000 (UTC)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n by sea.source.kernel.org (Postfix) with ESMTP id A814E44551;\n Wed, 18 Feb 2026 10:13:31 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 88843C19423;\n Wed, 18 Feb 2026 10:13:31 +0000 (UTC)","from mchehab by mail.kernel.org with local (Exim 4.99.1)\n (envelope-from <mchehab+huawei@kernel.org>)\n id 1vseYj-00000000Lyr-3Nye; Wed, 18 Feb 2026 11:13:29 +0100"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp1.osuosl.org 186E4810BE","OpenDKIM Filter v2.11.0 smtp2.osuosl.org EE49140078"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1771409622;\n\tbh=JPwgx0XXnU57JLJ4sk03dUf2BPiUggavjc73leovCks=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=NYTpoIunLKZLH7Nt1bi9SyKKZ1K7w8GIj35vUv60KujkVvirmZ8Ah0x5LLFf3+uJw\n\t mNZrOI828pEzldHCX0vFyQbcRaEJMzZB8NiYOrvNa5TuK/Yu6wZ9omKK65PW7oX5Nf\n\t 4Fum2xAeWy9bwGyXFDpQSqZJ2EJsYp49FAMsUYZa5jc+223+ZBbFdIuuXa3Om7GOWE\n\t 4ys4+pSW6bUJ3jvhSRq1F9RuV7Ku00KdZbYPfF27k68aTxZoo5Q+fIo3keIuFgDiYr\n\t rdJY4RKzCMvOh/g7mjhnzdn/Lcy+AWoxparyJkj7llzXODth3c+zub0LytmIiArwU+\n\t RUKPfFapSggug==","Received-SPF":"Pass (mailfrom) identity=mailfrom;\n client-ip=2600:3c0a:e001:78e:0:1991:8:25; helo=sea.source.kernel.org;\n envelope-from=mchehab+huawei@kernel.org; receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp2.osuosl.org EE49140078","From":"Mauro Carvalho Chehab <mchehab+huawei@kernel.org>","To":"Jonathan Corbet <corbet@lwn.net>,\n Linux Doc Mailing List <linux-doc@vger.kernel.org>","Cc":"Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,\n intel-wired-lan@lists.osuosl.org, linux-hardening@vger.kernel.org,\n linux-kernel@vger.kernel.org, netdev@vger.kernel.org","Date":"Wed, 18 Feb 2026 11:13:03 +0100","Message-ID":"\n <45e9f1cccffba1d8c39b9e439efe694e1426a717.1771408406.git.mchehab+huawei@kernel.org>","X-Mailer":"git-send-email 2.52.0","In-Reply-To":"<cover.1771408406.git.mchehab+huawei@kernel.org>","References":"<cover.1771408406.git.mchehab+huawei@kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=kernel.org; s=k20201202; t=1771409611;\n bh=CwHsRCLR3wmM4G7G9vnHWInI3q03RKTr8dBQN45i3sE=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=iX9EP0jKJG8PffTHhAtfpwxm8+/JqYKhI9wEOAf9UsS609BzL4rTzoDyCS4yiTDHO\n fx6srtY75shT23w603e7nsB3DdtE9yxY9DmWMvsSYziUMzUe/lMUGIk6GSGbaA9qpw\n 5d78qxduPlfo4zZAKpcApx/5tk5bpxKp7byUKNLdkbgc1y2J5fEQbakS5OwypzeXFL\n zJylyilRu7/WBFcbI2os81lo8UyFUP8pe7lGFlwAs6DdczvN6b9Znbrj9drapcH+WP\n fvOOZAejGlAJ1FBQXc1tfBHK502VqdPOizOY1+9UWxvWy0Nvk2jYm5MKs53WJ2KRMa\n 8NEc6iPJZIs6Q==","X-Mailman-Original-Authentication-Results":["smtp2.osuosl.org;\n dmarc=pass (p=quarantine dis=none)\n header.from=kernel.org","smtp2.osuosl.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.a=rsa-sha256 header.s=k20201202 header.b=iX9EP0jK"],"Subject":"[Intel-wired-lan] [PATCH 33/38] docs: kdoc_output: add optional\n args to ManOutput class","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"},"content":"The current logic hardcodes several values that are placed\ninside troff's title header (.TH). Place them as parameters\nto make the class more flexible.\n\nWhile here, remove the extra unused \"LINUX\" parameter at the\nend of the .TH header.\n\nSigned-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>\n---\n tools/lib/python/kdoc/kdoc_output.py | 27 +++++++++++++++++++--------\n 1 file changed, 19 insertions(+), 8 deletions(-)","diff":"diff --git a/tools/lib/python/kdoc/kdoc_output.py b/tools/lib/python/kdoc/kdoc_output.py\nindex 4210b91dde5f..fe3fc0dfd02b 100644\n--- a/tools/lib/python/kdoc/kdoc_output.py\n+++ b/tools/lib/python/kdoc/kdoc_output.py\n@@ -607,7 +607,14 @@ class ManFormat(OutputFormat):\n         \"%m %d %Y\",\n     ]\n \n-    def __init__(self, modulename):\n+    def emit_th(self, name):\n+        \"\"\"Emit a title header line.\"\"\"\n+        name = name.strip()\n+\n+        self.data += f'.TH \"{self.modulename}\" {self.section} \"{name}\" '\n+        self.data += f' \"{self.date}\" \"{self.manual}\"\\n'\n+\n+    def __init__(self, modulename, section=\"9\", manual=\"Kernel API Manual\"):\n         \"\"\"\n         Creates class variables.\n \n@@ -616,7 +623,11 @@ class ManFormat(OutputFormat):\n         \"\"\"\n \n         super().__init__()\n+\n         self.modulename = modulename\n+        self.section = section\n+        self.manual = manual\n+\n         self.symbols = []\n \n         dt = None\n@@ -632,7 +643,7 @@ class ManFormat(OutputFormat):\n         if not dt:\n             dt = datetime.now()\n \n-        self.man_date = dt.strftime(\"%B %Y\")\n+        self.date = dt.strftime(\"%B %Y\")\n \n     def arg_name(self, args, name):\n         \"\"\"\n@@ -724,7 +735,7 @@ class ManFormat(OutputFormat):\n \n         out_name = self.arg_name(args, name)\n \n-        self.data += f'.TH \"{self.modulename}\" 9 \"{out_name}\" \"{self.man_date}\" \"API Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         for section, text in args.sections.items():\n             self.data += f'.SH \"{section}\"' + \"\\n\"\n@@ -734,7 +745,7 @@ class ManFormat(OutputFormat):\n \n         out_name = self.arg_name(args, name)\n \n-        self.data += f'.TH \"{name}\" 9 \"{out_name}\" \"{self.man_date}\" \"Kernel Hacker\\'s Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         self.data += \".SH NAME\\n\"\n         self.data += f\"{name} \\\\- {args['purpose']}\\n\"\n@@ -780,7 +791,7 @@ class ManFormat(OutputFormat):\n     def out_enum(self, fname, name, args):\n         out_name = self.arg_name(args, name)\n \n-        self.data += f'.TH \"{self.modulename}\" 9 \"{out_name}\" \"{self.man_date}\" \"API Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         self.data += \".SH NAME\\n\"\n         self.data += f\"enum {name} \\\\- {args['purpose']}\\n\"\n@@ -813,7 +824,7 @@ class ManFormat(OutputFormat):\n         out_name = self.arg_name(args, name)\n         full_proto = args.other_stuff[\"full_proto\"]\n \n-        self.data += f'.TH \"{self.modulename}\" 9 \"{out_name}\" \"{self.man_date}\" \"API Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         self.data += \".SH NAME\\n\"\n         self.data += f\"{name} \\\\- {args['purpose']}\\n\"\n@@ -834,7 +845,7 @@ class ManFormat(OutputFormat):\n         purpose = args.get('purpose')\n         out_name = self.arg_name(args, name)\n \n-        self.data += f'.TH \"{module}\" 9 \"{out_name}\" \"{self.man_date}\" \"API Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         self.data += \".SH NAME\\n\"\n         self.data += f\"typedef {name} \\\\- {purpose}\\n\"\n@@ -849,7 +860,7 @@ class ManFormat(OutputFormat):\n         definition = args.get('definition')\n         out_name = self.arg_name(args, name)\n \n-        self.data += f'.TH \"{module}\" 9 \"{out_name}\" \"{self.man_date}\" \"API Manual\" LINUX' + \"\\n\"\n+        self.emit_th(out_name)\n \n         self.data += \".SH NAME\\n\"\n         self.data += f\"{args.type} {name} \\\\- {purpose}\\n\"\n","prefixes":["33/38"]}