From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CA58233929 for ; Wed, 16 Sep 2026 13:59:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789567164; cv=none; b=G/Xv5k1zI0K7Q7k/z+epLetMHpUelV6bU045c1nSzQT5VrxYmQoTOwbGExQeBjc5Ka7XvthllAGaPF1vql11vio1I3/3IHdzohZ94tgwuK4r3/OeS4GBKJOfuf8Q3CVb/PZK4OeqtIp0ZyaZW8Qc4Rmy7+sEP3ocijXB0HO9ejA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789567164; c=relaxed/simple; bh=7Svv9eTRQsY7FUvBjrbhCdnrMrTnwtYa84ZDXDNRl7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:content-type; b=M5Y1sdpViQFUC1Epl0CwlPpg7SGoUDgXg0zH+KPPgdzIwZ3+sU2Ro3RuLFe4w4q31bfewSZlqOaioT4yPeybpO4+MRdsodQp27nCoNDFNfLOSRkny8mnv6uzfel0NYt/3542/xD7eQrAfWQRuC00M3nPuZVrDU1ZjOJQb36nou8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=VrEE9Jy5; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="VrEE9Jy5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1789567162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TwJsi9UUeAWz/adeB4oM3iT2Ph48/gpOC88/Cc20NEI=; b=VrEE9Jy5WrFD3F3Y2qPxSHKWqts9UHwvKhvkABb+rxXimV6WtkJ1VlBDLy4mNkcM5QJBDc KtO6EnrmxqHAxMrMvbJEGsSJHcxXrrALrPx1ZUeP9VvnfWQJ+XW65CtF2EPg0LtF1s6OCV BrZXufu1gZibAYVPrjcEaiHpHDpyiVo= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-583-cvZ64Kz9MLOnHo1sCRQftg-1; Wed, 16 Sep 2026 09:59:18 -0400 X-MC-Unique: cvZ64Kz9MLOnHo1sCRQftg-1 X-Mimecast-MFC-AGG-ID: cvZ64Kz9MLOnHo1sCRQftg_1789567156 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C3E051954B18; Wed, 16 Sep 2026 13:59:16 +0000 (UTC) Received: from jsnow-thinkpadp16vgen1.westford.csb (unknown [10.22.64.46]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D168A1956054; Wed, 16 Sep 2026 13:59:11 +0000 (UTC) From: John Snow To: qemu-devel@nongnu.org Cc: Markus Armbruster , Zhao Liu , Peter Xu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Jonathan Cameron , Eric Blake , Fabiano Rosas , Kevin Wolf , Michael Roth , linux-cxl@vger.kernel.org, qemu-block@nongnu.org, Junjie Cao , Lukas Straub , Hanna Reitz , Paolo Bonzini , Jason Wang , John Snow Subject: [PATCH v4 5/7] qapi/parser: fix intermediate "intro" detection Date: Wed, 16 Sep 2026 09:58:39 -0400 Message-ID: <20260916135841.3614495-6-jsnow@redhat.com> In-Reply-To: <20260916135841.3614495-1-jsnow@redhat.com> References: <20260916135841.3614495-1-jsnow@redhat.com> Precedence: bulk X-Mailing-List: linux-cxl@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-MFC-PROC-ID: fRl3UBJVlMUBlNR3kcwgmlTdV_y-OKbcnQPQJkYsRVc_1789567156 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true 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 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 9e14c2f7921..6a9a5589c14 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -845,6 +845,14 @@ 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) + return + index = 0 for index, ref_section in enumerate(self.all_sections): if ref_section.kind.name in ("PLAIN", "INTRO"): -- 2.55.0