From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 39715C982C1 for ; Tue, 15 Sep 2026 21:15:52 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6aV3-0001DQ-SF; Tue, 15 Sep 2026 17:15:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6aUa-0000xH-PT for qemu-devel@nongnu.org; Tue, 15 Sep 2026 17:15:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6aUX-0002Zf-3V for qemu-devel@nongnu.org; Tue, 15 Sep 2026 17:15:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1789506900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7QdFm9LDvqAFy3p/IgsBk+V7Q79uGRWxYsexXB//xro=; b=hFPdjt1PvSL55uF/PYRGswbx6m3tkvqvBjnYX1j3GtuWw/ilw97DbhizEJJZzKT7hUiFqs c/AoGC1gvv+sTIh45d0oiGONLMCUNq4NBghNhjV7rdlCsRMQllhCAZTE/odvBQUtTUgc6r FUVX3noB7Nclh2wpJZnK62XRP6RJrq4= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-225-GspPt5eINne1f4y3mnmvGA-1; Tue, 15 Sep 2026 17:14:58 -0400 X-MC-Unique: GspPt5eINne1f4y3mnmvGA-1 X-Mimecast-MFC-AGG-ID: GspPt5eINne1f4y3mnmvGA_1789506897 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DD9691843AC3; Tue, 15 Sep 2026 21:14:56 +0000 (UTC) Received: from jsnow-thinkpadp16vgen1.westford.csb (unknown [10.22.64.46]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C1C031956095; Tue, 15 Sep 2026 21:14:53 +0000 (UTC) From: John Snow To: qemu-devel@nongnu.org Cc: Fabiano Rosas , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Hanna Reitz , qemu-block@nongnu.org, Zhao Liu , linux-cxl@vger.kernel.org, Lukas Straub , Jonathan Cameron , Paolo Bonzini , Peter Xu , Michael Roth , Jason Wang , Eric Blake , Kevin Wolf , Junjie Cao , John Snow Subject: [PATCH v3 5/7] qapi/parser: fix intermediate "intro" detection Date: Tue, 15 Sep 2026 17:14:32 -0400 Message-ID: <20260915211434.3511110-6-jsnow@redhat.com> In-Reply-To: <20260915211434.3511110-1-jsnow@redhat.com> References: <20260915211434.3511110-1-jsnow@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org In 43e7ad1a3fa5, I adjusted the insertion algorithm for inserting something after the "introduction" to cope with both the old and new syntax while we converted QAPI to the new syntax. There's a bug in that code that only shows up in a handful of cases and only when using the new syntax while this affordance/flex code is still enabled. In the case that we do actually have a real bona-fide intro section, we want to insert directly after that real-deal intro section, not after any plaintext sections that may follow it. This code adjusts the temporary code to strongly prefer inserting after the actual intro section if it exists. Once again: once conversion is done, you will be delighted by how much of this ugly code goes away. Signed-off-by: John Snow --- scripts/qapi/parser.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 9e14c2f7921..79f03062eea 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -845,6 +845,13 @@ def _insert_after_intro( needed and ``_insert_near_kind(QAPIDoc.Kind.INTRO, ...)`` will be sufficient. """ + first = self.all_sections[0] + if first.text and first.kind == QAPIDoc.Kind.INTRO: + # First section is introduction and is non-empty: insert here. + # Rest assured all of this ugliness will very soon go away. + # Pinkie-swear. + self._insert_near_kind(QAPIDoc.Kind.INTRO, section, after=True) + index = 0 for index, ref_section in enumerate(self.all_sections): if ref_section.kind.name in ("PLAIN", "INTRO"): -- 2.55.0