[{"id":1817095,"web_url":"http://patchwork.ozlabs.org/comment/1817095/","msgid":"<878tefvjmx.fsf@dusky.pond.sub.org>","list_archive_url":null,"date":"2017-12-06T17:41:42","subject":"Re: [Qemu-devel] [PATCH v3 08/50] qapi: mcgen() shouldn't indent #\n\tlines","submitter":{"id":2645,"url":"http://patchwork.ozlabs.org/api/people/2645/","name":"Markus Armbruster","email":"armbru@redhat.com"},"content":"Marc-André Lureau <marcandre.lureau@redhat.com> writes:\n\n> Skip preprocessor lines when adding indentation, since that would\n> likely result in invalid code.\n>\n> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>\n> ---\n>  scripts/qapi.py | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/scripts/qapi.py b/scripts/qapi.py\n> index f2b5a7e131..2a8e60e975 100644\n> --- a/scripts/qapi.py\n> +++ b/scripts/qapi.py\n> @@ -1862,7 +1862,7 @@ def cgen(code, **kwds):\n>      if indent_level:\n>          indent = genindent(indent_level)\n>          # re.subn() lacks flags support before Python 2.7, use re.compile()\n> -        raw = re.subn(re.compile(r'^.', re.MULTILINE),\n> +        raw = re.subn(re.compile(r'^[^#\\n].', re.MULTILINE),\n>                        indent + r'\\g<0>', raw)\n>          raw = raw[0]\n>      return re.sub(re.escape(eatspace) + r' *', '', raw)\n\nOld: we want to indent all non-empty lines.  Such a line starts with a\ncharacter other than newline, matched by '.'.  Replace that character by\nindent + the character.\n\nNew regexp: we want to indent all non-empty lines not starting with '#'.\nSuch a line starts with a character other than newline and '#', matched\nby '[^#\\n]'.  But there's a '.' afterwards, and therefore we don't match\n*any* lines consisting of just one character:\n\n    >>> cgen('a\\n')\n    'a\\n'\n\nI think you should drop the '.'.\n\nAlternatively, use a negative lookahead assertion:\n\n        raw = re.subn(re.compile(r'^(?!(#|$))', re.MULTILINE),\n                      indent, raw)","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ysQt53tTvz9ryT\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  7 Dec 2017 04:42:20 +1100 (AEDT)","from localhost ([::1]:56830 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1eMdi5-0003Hl-LH\n\tfor incoming@patchwork.ozlabs.org; Wed, 06 Dec 2017 12:42:17 -0500","from eggs.gnu.org ([2001:4830:134:3::10]:53988)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <armbru@redhat.com>) id 1eMdhh-0003Hg-76\n\tfor qemu-devel@nongnu.org; Wed, 06 Dec 2017 12:41:54 -0500","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <armbru@redhat.com>) id 1eMdhc-0007yc-CT\n\tfor qemu-devel@nongnu.org; Wed, 06 Dec 2017 12:41:53 -0500","from mx1.redhat.com ([209.132.183.28]:43930)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <armbru@redhat.com>) id 1eMdhc-0007xZ-6E\n\tfor qemu-devel@nongnu.org; Wed, 06 Dec 2017 12:41:48 -0500","from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 3167CC049E39;\n\tWed,  6 Dec 2017 17:41:47 +0000 (UTC)","from blackfin.pond.sub.org (ovpn-116-74.ams2.redhat.com\n\t[10.36.116.74])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 334B85F929;\n\tWed,  6 Dec 2017 17:41:44 +0000 (UTC)","by blackfin.pond.sub.org (Postfix, from userid 1000)\n\tid B9E121138658; Wed,  6 Dec 2017 18:41:42 +0100 (CET)"],"From":"Markus Armbruster <armbru@redhat.com>","To":"=?utf-8?q?Marc-Andr=C3=A9?= Lureau <marcandre.lureau@redhat.com>","References":"<20170911110623.24981-1-marcandre.lureau@redhat.com>\n\t<20170911110623.24981-9-marcandre.lureau@redhat.com>","Date":"Wed, 06 Dec 2017 18:41:42 +0100","In-Reply-To":"<20170911110623.24981-9-marcandre.lureau@redhat.com> (\n\t=?utf-8?b?Ik1hcmMtQW5kcsOp?= Lureau\"'s message of \"Mon,\n\t11 Sep 2017 13:05:41 +0200\")","Message-ID":"<878tefvjmx.fsf@dusky.pond.sub.org>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.14","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.31]);\n\tWed, 06 Dec 2017 17:41:47 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v3 08/50] qapi: mcgen() shouldn't indent #\n\tlines","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-devel@nongnu.org, Michael Roth <mdroth@linux.vnet.ibm.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]