From patchwork Wed Apr 12 07:11:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 3376 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp139006vsd; Wed, 12 Apr 2017 00:12:26 -0700 (PDT) X-Received: by 10.223.131.2 with SMTP id 2mr1442511wrd.87.1491981146462; Wed, 12 Apr 2017 00:12:26 -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 j79si6729131wmd.14.2017.04.12.00.12.26; Wed, 12 Apr 2017 00:12:26 -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 86CC8689811; Wed, 12 Apr 2017 10:11:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f180.google.com (mail-io0-f180.google.com [209.85.223.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D988689743 for ; Wed, 12 Apr 2017 10:11:36 +0300 (EEST) Received: by mail-io0-f180.google.com with SMTP id l7so29783407ioe.3 for ; Wed, 12 Apr 2017 00:11:42 -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; bh=AgAAwZGTX+VaDTcZ/5BHX/ZrIOUQchg0VXU88AHys7U=; b=b5czxdnCEa69fbO4S7zbu+H3wxTrocLA2q6Mu3B0m21FBPdOy1PCDTBn7I/8c5ggkO OfAZh7HjtNbE2WsCkPoBY1v+lZqTxhtgSmlNEJ1cf5Tl9f+cRJgt37EVXr4PgogqP1JU mYN4ZZ2neyQVuDYLwNOzv7tySS9l2euyy5TElKudzV6ZiQx6xN+RGctbaAXoO3t0s/J5 q4nExfLFCnzGl0+dSPGNf/I+4m4rrjxW8kuhU5khCEeDbtDcCqHJ46ICF2Pkr3JsSUHs 8V8w0w5OZxwy5M0hfW7CSHMyGojXfFuaDmmFC1JT76PBb9EaVnMIVQllAZOatwOYZt4s fLTQ== 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; bh=AgAAwZGTX+VaDTcZ/5BHX/ZrIOUQchg0VXU88AHys7U=; b=Y/ZgFNd/W0YTY9szBvzxfNQzY/bM9HXQMZsfNmYzp93psdBbkOR05nqZfy6qmCZ9Ou 1kHsWUZ689YCFOcqK8Uzt34hS0MvIYduyBxP46P0NV5wnzw1iudN6Fi0orLCsg0+uvFd cjonJR7IcmghfQaGHgoV2gWp/r8nlyYgYlNzBFofvryRjaFNpfG92JAcdXjWUkHccllJ pUgmQt1+6uUqd6nrDfM/IWzTjkoROcHfAdTzNY4CNTgjeoW5N1YrL52vmvlx38V0CAsF Xjhj7tCggl4N2paTzpFtx1mOTv7hEL50DFcjobOclWhEWsW42Nb0QZVcnXnlvTnzN4q6 dzDg== X-Gm-Message-State: AFeK/H2gQL/V/WgkBXK6OIhMPk6YY6DMe52cJQGpkR47t6vp5C+UJ0ELJzAvr03ta5BF0Q== X-Received: by 10.107.50.71 with SMTP id y68mr63099486ioy.77.1491981100938; Wed, 12 Apr 2017 00:11:40 -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.40 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 12 Apr 2017 00:11:40 -0700 (PDT) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Apr 2017 02:11:27 -0500 Message-Id: <20170412071127.60511-5-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> Subject: [FFmpeg-devel] [PATCH 5/5] lavu/bprint: add URL escaping 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavutil/avstring.h | 1 + libavutil/bprint.c | 11 +++++++++++ libavutil/version.h | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libavutil/avstring.h b/libavutil/avstring.h index 68b753a569..ccedddd210 100644 --- a/libavutil/avstring.h +++ b/libavutil/avstring.h @@ -315,6 +315,7 @@ enum AVEscapeMode { AV_ESCAPE_MODE_BACKSLASH, ///< Use backslash escaping. AV_ESCAPE_MODE_QUOTE, ///< Use single-quote escaping. AV_ESCAPE_MODE_XML, ///< Use XML ampersand-escaping; requires UTF-8 input. + AV_ESCAPE_MODE_URL, ///< Use URL percent-escaping }; /** diff --git a/libavutil/bprint.c b/libavutil/bprint.c index 8e44c57346..7335acf3c9 100644 --- a/libavutil/bprint.c +++ b/libavutil/bprint.c @@ -345,5 +345,16 @@ void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_cha } } break; + + case AV_ESCAPE_MODE_URL: + for (; *src; src++) { + int is_strictly_special = special_chars && strchr(special_chars, *src); + if (is_strictly_special || + (!(flags & AV_ESCAPE_FLAG_STRICT) && !strchr("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~", *src))) + av_bprintf(dstbuf, "%%%02X", *src); + else + av_bprint_chars(dstbuf, *src, 1); + } + break; } } diff --git a/libavutil/version.h b/libavutil/version.h index bba39e0180..90d9137e08 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 55 -#define LIBAVUTIL_VERSION_MINOR 61 +#define LIBAVUTIL_VERSION_MINOR 62 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \