From patchwork Wed Apr 12 07:11:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 3375 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp138910vsd; Wed, 12 Apr 2017 00:12:06 -0700 (PDT) X-Received: by 10.28.199.71 with SMTP id x68mr1307951wmf.91.1491981126018; Wed, 12 Apr 2017 00:12:06 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 62si29733037wrp.270.2017.04.12.00.12.05; Wed, 12 Apr 2017 00:12:05 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B7D176897A4; Wed, 12 Apr 2017 10:11:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f174.google.com (mail-io0-f174.google.com [209.85.223.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C6C04689728 for ; Wed, 12 Apr 2017 10:11:34 +0300 (EEST) Received: by mail-io0-f174.google.com with SMTP id l7so29782778ioe.3 for ; Wed, 12 Apr 2017 00:11:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=eutHDKcmtXFaHm0cEhvVF+/5WRmWSYp7qUuF33cwUwc=; b=X7Ws6dJCA6DJ1ZQ2/FJGl0FUDY2qNCYeMOolhIvIVxWWpNn2dJmnOL84Cx4UDev2bX AW1aOwULF4kZfxFkjBC6Mt4MfoGVHoFJdsi776Xsnd+RpWCRZBwnpLdi9bCtoDriZ4kg 36gLeNCNYrMh0M4XjIgNhISWJiKK0brLtXnIFR0WUZwy61CtuIPhM4PPb0YKhg9irl7+ FUn/ghS7KRQtXoflket0dF/oXVOkv7DzK6acw07N+HbaqSgGywUL6UMyFuotuXOngqBk scRlOV5lpvHjWM02ud1PtZL2i6ZqMd7Qng3jBPGwNj70k5SvsBGCDDNBEwjERm1f6meV 0L3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eutHDKcmtXFaHm0cEhvVF+/5WRmWSYp7qUuF33cwUwc=; b=iuqMp/31YTVwIi/NJFDjIhgmS3yymFw7aubfvIggXkmwL9hJUyxZmSPsdLrn/pZFE1 Xlw36FoJkC7coLBDS70CvUAd83saWcR7O6KvQHB3XShDfP+ZQCrL91nDHuSrQJjw9viW c58eJwPnlSW1+bK26QRUSNO/OnktXpGu+i9oU1molR6Oz2ZNyPHm/VPIY8A/O5CV5dAy 3HwxA85d332QVu+bikYuAFdLSxENBuTqQ5nh24640jCMXStybIYXHZAYN2keJrv3pCF4 taSNZNy8QyoeipK4PnsQl4rZC89nZxr6yjYETgZRg/ZVHqIMQebkEw7jUyJuLMEc/NJ4 mhyw== X-Gm-Message-State: AFeK/H3t1zMyqFKHE5kJei3rMoDeNq6ejWvwmiEAnRXaalulqitB8XmzlnkMYNjpGN0xvQ== X-Received: by 10.107.167.204 with SMTP id q195mr66925091ioe.170.1491981099181; Wed, 12 Apr 2017 00:11:39 -0700 (PDT) Received: from Rodgers-MacBook-Pro.local.net (c-73-110-121-59.hsd1.il.comcast.net. [73.110.121.59]) by smtp.gmail.com with ESMTPSA id p3sm3857213ioi.20.2017.04.12.00.11.38 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 12 Apr 2017 00:11:38 -0700 (PDT) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Apr 2017 02:11:25 -0500 Message-Id: <20170412071127.60511-3-rodger.combs@gmail.com> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20170412071127.60511-1-rodger.combs@gmail.com> References: <20170412071127.60511-1-rodger.combs@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] ffprobe: switch xml_escape_str to use av_bprint_escape X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This now escapes single-quotes, so the test reference is updated. --- ffprobe.c | 25 ++++++------------------- tests/ref/fate/ffprobe_xml | 2 +- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/ffprobe.c b/ffprobe.c index 0a9ba14d8d..5c5bdaf3b1 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -1658,21 +1658,10 @@ static av_cold int xml_init(WriterContext *wctx) return 0; } -static const char *xml_escape_str(AVBPrint *dst, const char *src, void *log_ctx) +static const char *xml_escape_str(AVBPrint *dst, const char *src) { - const char *p; - - for (p = src; *p; p++) { - switch (*p) { - case '&' : av_bprintf(dst, "%s", "&"); break; - case '<' : av_bprintf(dst, "%s", "<"); break; - case '>' : av_bprintf(dst, "%s", ">"); break; - case '"' : av_bprintf(dst, "%s", """); break; - case '\'': av_bprintf(dst, "%s", "'"); break; - default: av_bprint_chars(dst, *p, 1); - } - } - + av_bprint_clear(dst); + av_bprint_escape(dst, src, NULL, AV_ESCAPE_MODE_XML, AV_ESCAPE_FLAG_ESCAPE_DOUBLE_QUOTE); return dst->str; } @@ -1747,14 +1736,12 @@ static void xml_print_str(WriterContext *wctx, const char *key, const char *valu if (section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS) { XML_INDENT(); - printf("<%s key=\"%s\"", - section->element_name, xml_escape_str(&buf, key, wctx)); - av_bprint_clear(&buf); - printf(" value=\"%s\"/>\n", xml_escape_str(&buf, value, wctx)); + printf("<%s key=\"%s\"", section->element_name, xml_escape_str(&buf, key)); + printf(" value=\"%s\"/>\n", xml_escape_str(&buf, value)); } else { if (wctx->nb_item[wctx->level]) printf(" "); - printf("%s=\"%s\"", key, xml_escape_str(&buf, value, wctx)); + printf("%s=\"%s\"", key, xml_escape_str(&buf, value)); } av_bprint_finalize(&buf, NULL); diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml index d2c5ecdf73..8abac000c9 100644 --- a/tests/ref/fate/ffprobe_xml +++ b/tests/ref/fate/ffprobe_xml @@ -51,7 +51,7 @@ - +