From nobody Mon Feb 9 17:59:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1683619327; cv=none; d=zohomail.com; s=zohoarc; b=crqkNbfa1Ww174e0snKyfqbY6SNofYMd1otJ48HAoEaWKW7W7dieD9fVfhBShHGfCQMlqQnCwhs17F45JCCfIIPPXbLHRpQlW/rl/QyaDskVrcjxsjme9f/HaM18RgWDmYqjEDugXXgautFJVltobw0JIOnwn5oaO4E97Tfd1q0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683619327; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DYjidbK9Ep3U5LXzi6p0PjZKJ0doF8+z0jFYniyLxXg=; b=emF+4kj2sKPZP1nKwsxgfw6IKJMDRyvuAEgA5p5mi5/zl41St4fcad2h0ZVHfsWD0sA3fd5yaHh+bbXXSMeipkLyQe2Y9MixLtWrUb/Nxw8zobk7mzQCaKZSezMvRiqnZw43GYhxtNvExXl5ZJRC1uRJTyAj9Q2ngwPAIRRNNSc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1683619327682760.3504436253392; Tue, 9 May 2023 01:02:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pwIGw-00009x-VM; Tue, 09 May 2023 04:00:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pwIGs-000053-Oz for qemu-devel@nongnu.org; Tue, 09 May 2023 04:00:30 -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 1pwIGr-0008WK-4Z for qemu-devel@nongnu.org; Tue, 09 May 2023 04:00:30 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-447-zB_WkwSPPZOb2kWdSxAreQ-1; Tue, 09 May 2023 04:00:27 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E4D2128237C6; Tue, 9 May 2023 08:00:26 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.192.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C190BC16026; Tue, 9 May 2023 08:00:26 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 35EC321E5A0D; Tue, 9 May 2023 10:00:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1683619228; 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=DYjidbK9Ep3U5LXzi6p0PjZKJ0doF8+z0jFYniyLxXg=; b=YCdi4UjBQxzzkvKuuEPTcF5bCZnmaSabgoYccuQqwjnocsIZowsR084suFx8o4+LD22s75 BjhsMy1nV+yta7eNrB0oIXBUCEE+JVRUYWKJbBL25XMVYFR/gXyrnZiBbI4Vc5YWfASCtK rPI0ycxjoHfCEI7o1fVG3YADzShVrNc= X-MC-Unique: zB_WkwSPPZOb2kWdSxAreQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Juan Quintela Subject: [PULL 11/17] qapi: Fix argument description indentation stripping Date: Tue, 9 May 2023 10:00:05 +0200 Message-Id: <20230509080011.3231661-12-armbru@redhat.com> In-Reply-To: <20230509080011.3231661-1-armbru@redhat.com> References: <20230509080011.3231661-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1683619328219100003 Content-Type: text/plain; charset="utf-8" When an argument's description starts on the line after the "#arg: " line, indentation is stripped only from the description's first line, as demonstrated by the previous commit. Moreover, subsequent lines with less indentation are not rejected. Make the first line's indentation the expected indentation for the remainder of the description. This fixes indentation stripping, and also requires at least that much indentation. Signed-off-by: Markus Armbruster Message-Id: <20230428105429.1687850-12-armbru@redhat.com> Reviewed-by: Juan Quintela --- scripts/qapi/parser.py | 20 +++++++++++--------- tests/qapi-schema/doc-good.out | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 7b49d3ab05..ddc14ceaba 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -483,7 +483,9 @@ def append(self, line: str) -> None: # Blank lines are always OK. if line: indent =3D must_match(r'\s*', line).end() - if indent < self._indent: + if self._indent < 0: + self._indent =3D indent + elif indent < self._indent: raise QAPIParseError( self._parser, "unexpected de-indent (expected at least %d spaces= )" % @@ -631,9 +633,9 @@ def _append_args_line(self, line: str) -> None: indent =3D must_match(r'@\S*:\s*', line).end() line =3D line[indent:] if not line: - # Line was just the "@arg:" header; following lines - # are not indented - indent =3D 0 + # Line was just the "@arg:" header + # The next non-blank line determines expected indent + indent =3D -1 else: line =3D ' ' * indent + line self._start_args_section(name[1:-1], indent) @@ -666,9 +668,9 @@ def _append_features_line(self, line: str) -> None: indent =3D must_match(r'@\S*:\s*', line).end() line =3D line[indent:] if not line: - # Line was just the "@arg:" header; following lines - # are not indented - indent =3D 0 + # Line was just the "@arg:" header + # The next non-blank line determines expected indent + indent =3D -1 else: line =3D ' ' * indent + line self._start_features_section(name[1:-1], indent) @@ -712,8 +714,8 @@ def _append_various_line(self, line: str) -> None: indent =3D must_match(r'\S*:\s*', line).end() line =3D line[indent:] if not line: - # Line was just the "Section:" header; following lines - # are not indented + # Line was just the "Section:" header + # The next non-blank line determines expected indent indent =3D 0 else: line =3D ' ' * indent + line diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out index 2ba72ae558..277371acc8 100644 --- a/tests/qapi-schema/doc-good.out +++ b/tests/qapi-schema/doc-good.out @@ -159,7 +159,7 @@ doc symbol=3Dcmd =20 arg=3Darg1 description starts on a new line, - indented +indented arg=3Darg2 the second argument arg=3Darg3 --=20 2.39.2