From patchwork Mon Jan 13 13:44:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 17322 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2F45C449B9A for ; Mon, 13 Jan 2020 16:06:49 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D57068ADAA; Mon, 13 Jan 2020 16:06:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7592468AAA5 for ; Mon, 13 Jan 2020 16:06:41 +0200 (EET) Received: by mail-pl1-f196.google.com with SMTP id bd4so3865955plb.8 for ; Mon, 13 Jan 2020 06:06:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=xO+6MqkVoTUUHJjLvE+7d6DXGtR3y5wmdDg1zZ+Y6MM=; b=sN9PF3Gt+/rnzph36CB0g1Ag/B9koCs6c0OD68MOcVczgyrxmkvMK+w7sRcKBXTvYu fBhA6AAEle5hyaQWaHLnej5l33OWZ34VZcudu1qYvZ7/ZF8ZrUyUEdSAj0hZKO/5xY2I 8sGnMXpVjO+InqmS+i5TmUyLA9NOEDoeKvHH7TtU0KFp41/PxnRfA+TgT8rYYfwE3RFC v8h+xu0OhF4GexWaSf+gxH4r4wZUu8ID65IIs/+dV9+03TpoCKGVxuHtHmsoj7Xx6JTA Z6/riKJaK6N/EhK+wQ98dkloovLH27o0JImA+vJt8pu+eHDRtfj7ikNerhhOq/UfY8LX Z1Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=xO+6MqkVoTUUHJjLvE+7d6DXGtR3y5wmdDg1zZ+Y6MM=; b=GngmeVLHfbXvpl57Xt1u3g4Sdz8jc8V8vdBYn3Ycj6xOay0mcgOhY6P9EFGUOFj9ji 2VhRd7bzWc+4Cm3eAdwz1/6XQMRH3ZOyK5j0Pv4PFX5kn5h+hBEZJdFalpRANiUthZun 8dyYNeY5mypu9jddB3/ZHk6vGgZPDgTZ4AHmJp5bPJpguUwgK70ZhxyKlNso3XB00ARi khlpWp2DHXIq3OognMrhzRkXTf6oWAQq7DxGpR5N9Df5oKjijzo0bZkprMybyH9gf7/p cVtlkBMVhOTKLiWsyxyyjtOQieZEL9AKPK+MbbN3lgO17EY272ODrhc7qdyOPWClTrwC uKxQ== X-Gm-Message-State: APjAAAXn+8lDOPGCmeQSSYMzy4ZqJfBi8wW2zgYe71W+VAZbZ+gOYqfa 1kCFkFP7rUR6wT5YGdkv0o89Ve3i X-Google-Smtp-Source: APXvYqw4/U2o6WzrJ/HQje4K5iG61zmj08r4YhDBR29uJjScdSpfn6WaNHnsB8Mhz9p3d/er56IHaw== X-Received: by 2002:a17:90a:e98d:: with SMTP id v13mr22899979pjy.89.1578923096769; Mon, 13 Jan 2020 05:44:56 -0800 (PST) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id 13sm14413773pfi.78.2020.01.13.05.44.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jan 2020 05:44:56 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 13 Jan 2020 21:44:49 +0800 Message-Id: <20200113134451.9511-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1 1/3] avutil/avstring: Fix warning: ISO C90 forbids mixed declarations and code 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavutil/avstring.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavutil/avstring.c b/libavutil/avstring.c index 76a13ba..f4b8ed2 100644 --- a/libavutil/avstring.c +++ b/libavutil/avstring.c @@ -258,15 +258,17 @@ char *av_strireplace(const char *str, const char *from, const char *to) const char *av_basename(const char *path) { char *p; +#if HAVE_DOS_PATHS + char *q, *d; +#endif if (!path || *path == '\0') return "."; p = strrchr(path, '/'); #if HAVE_DOS_PATHS - char *q = strrchr(path, '\\'); - char *d = strchr(path, ':'); - + q = strrchr(path, '\\'); + d = strchr(path, ':'); p = FFMAX3(p, q, d); #endif From patchwork Mon Jan 13 13:44:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 17323 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 610BF44AAA9 for ; Mon, 13 Jan 2020 16:10:11 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38A1968AD9D; Mon, 13 Jan 2020 16:10:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2669368AD48 for ; Mon, 13 Jan 2020 16:10:04 +0200 (EET) Received: by mail-pf1-f195.google.com with SMTP id p14so4944821pfn.4 for ; Mon, 13 Jan 2020 06:10:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NCDBvDgqeoYXsnuWg2RMwjXLD4bfASTPWyRhSaF5XiQ=; b=JgW9usP4FFz15OBunJT7yUT4eC39hhD5eGGDMYmzNHbfwQ+qq7FKp1AYnQk5Hi38y8 HARfYyoJZxn5vwYczA1xyQZZqVSihUl4841TPfhsfP7zPLp5U1vOAewnme5Fj8pyRUc0 34KVMCDpwQvZ+aCSpST/HAaxDHkLEYdqNdmA4hDlghEFBvrwK5oC6tQZZB+pdedm8g+u LP9Iju2VELUvNGF4FZzgWcJWLumDoSg2L689WhPjcEiajMHJ9VAw07xIQF7LjgwVmssH bWgMmzNtvyFr0vPCPjw56AzE32XUOIfYE7iSdl10ppMUw21s0CNUblvMCoEKvNtC2WYs fxoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NCDBvDgqeoYXsnuWg2RMwjXLD4bfASTPWyRhSaF5XiQ=; b=ZrXMEscxoKvuWjh1u7oztAr9n72B9OcXNQlCP9jFoiLZzkq+q/92d1N6TAfmwx7Tvi +fgej2qQW6HFGY2qpMxhPm4+W61CUGT3yDGFXQdNIkCiXEph3C7XbjMUkS1xvife6D1l eF1Rrk7i587FynoQrprSKWnXBsGc0oFQtN/3gvMwo9fsyFUxQg5d0doq5/RLksog9OOc ZdVPz2sfY68QImsbk5NP/gdm/Y6UmLqWojy1nk91dBu4f58alFxsSksSvXKd6DFBv3Qb K3A3du6OEC1ZMJVkUD/wdgVvCJppiR2U/9jVPsDVEJIL0QWBRTqffz9xmCykdlBz06h/ nryg== X-Gm-Message-State: APjAAAWuT9U1SU1H56b5/yp5LvLOOO4MEm4/OlEQJn45n/8zjw2HGUJw 4Iv9TAF/zAbjKRb3jH5Btcbrpfmz X-Google-Smtp-Source: APXvYqx+NLamsnWM5N3pKiSSgG6qeRIE1SloNGXqQpfN8ikL3cOpLBvU6E41nyDhMPAkFgZrp24X1Q== X-Received: by 2002:a63:6b07:: with SMTP id g7mr20430967pgc.243.1578923099490; Mon, 13 Jan 2020 05:44:59 -0800 (PST) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id 13sm14413773pfi.78.2020.01.13.05.44.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jan 2020 05:44:59 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 13 Jan 2020 21:44:50 +0800 Message-Id: <20200113134451.9511-2-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200113134451.9511-1-lance.lmwang@gmail.com> References: <20200113134451.9511-1-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v1 2/3] avutil/avstring: add support for '\\' seperator for the path append 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang I don't have a windows develoment system yet, so I had to test with modified avutil/tests/avstring.c like below, (change / to \\) and change HAVE_DOS_PATHS to 1 in config.h: - TEST_APPEND_PATH_COMPONENT("path", "/", "path"); - TEST_APPEND_PATH_COMPONENT("path", "comp", "path/comp"); - TEST_APPEND_PATH_COMPONENT("path/", "comp", "path/comp"); - TEST_APPEND_PATH_COMPONENT("path", "/comp", "path/comp"); - TEST_APPEND_PATH_COMPONENT("path/", "/comp", "path/comp"); - TEST_APPEND_PATH_COMPONENT("path/path2/", "/comp/comp2", "path/path2/comp/comp2"); + TEST_APPEND_PATH_COMPONENT("path", "\\", "path"); + TEST_APPEND_PATH_COMPONENT("path", "comp", "path\\comp"); + TEST_APPEND_PATH_COMPONENT("path\\", "comp", "path\\comp"); + TEST_APPEND_PATH_COMPONENT("path", "\\comp", "path\\comp"); + TEST_APPEND_PATH_COMPONENT("path\\", "\\comp", "path\\comp"); + TEST_APPEND_PATH_COMPONENT("path\\path2\\", "\\comp\\comp2", "path\\path2\\comp\\comp2"); Then do test with fate-avstring for valid checking: make fate-avstring SAMPLES=../fate-suite master: -path/comp = path/comp -path/comp = path/comp -path/comp = path/comp -path/comp = path/comp -path/path2/comp/comp2 = path/path2/comp/comp2 +path/comp = path\comp +path\/comp = path\comp +path/\comp = path\comp +path\/\comp = path\comp +path\path2\/\comp\comp2 = path\path2\comp\comp2 Applied the patch: -path/comp = path/comp -path/comp = path/comp -path/comp = path/comp -path/comp = path/comp -path/path2/comp/comp2 = path/path2/comp/comp2 +path\comp = path\comp +path\comp = path\comp +path\comp = path\comp +path\comp = path\comp +path\path2\comp\comp2 = path\path2\comp\comp2 Signed-off-by: Limin Wang --- libavutil/avstring.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/libavutil/avstring.c b/libavutil/avstring.c index f4b8ed2..24bcc7d 100644 --- a/libavutil/avstring.c +++ b/libavutil/avstring.c @@ -299,14 +299,20 @@ const char *av_dirname(char *path) return path; } +#if HAVE_DOS_PATHS +#define SEPARATOR '\\' +#else +#define SEPARATOR '/' +#endif + char *av_append_path_component(const char *path, const char *component) { size_t p_len, c_len; char *fullpath; - if (!path) + if (!path || strlen(path) == 0 ) return av_strdup(component); - if (!component) + if (!component || strlen(component) == 0) return av_strdup(path); p_len = strlen(path); @@ -315,18 +321,16 @@ char *av_append_path_component(const char *path, const char *component) return NULL; fullpath = av_malloc(p_len + c_len + 2); if (fullpath) { - if (p_len) { - av_strlcpy(fullpath, path, p_len + 1); - if (c_len) { - if (fullpath[p_len - 1] != '/' && component[0] != '/') - fullpath[p_len++] = '/'; - else if (fullpath[p_len - 1] == '/' && component[0] == '/') - p_len--; - } - } - av_strlcpy(&fullpath[p_len], component, c_len + 1); - fullpath[p_len + c_len] = 0; + const char *component1 = component; + + av_strlcpy(fullpath, path, p_len + 1); + if (fullpath[p_len - 1] != SEPARATOR) + fullpath[p_len++] = SEPARATOR; + if (*component1 == SEPARATOR) + component1++; + av_strlcpy(fullpath + p_len, component1, strlen(component1) + 1); } + return fullpath; } From patchwork Mon Jan 13 13:44:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 17321 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2EEC944B527 for ; Mon, 13 Jan 2020 15:53:18 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0C85B68ADB3; Mon, 13 Jan 2020 15:53:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C4175689BC9 for ; Mon, 13 Jan 2020 15:53:11 +0200 (EET) Received: by mail-pf1-f193.google.com with SMTP id 195so4907279pfw.11 for ; Mon, 13 Jan 2020 05:53:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ua3dCQqQb5b+s0cFacn4CGRSg7vSM7e1xYMJ5avpJ84=; b=AZ5t5EmY14pDCZ5S6vxOEFNijsgvWeRSf7wC0XVzS1ByoNO64msON9YZppA7yAWJfp 2awbVClHI/lRi1r3P2OngEoRFdmsNon7zJJjGTuZ3TtCUXSPhuF/P4sAfqrYKJU6nWGG m8rgniM8Wfpii1EtjZoWvoQu3J1xb3gHu0qO1S0tKUkA774cdMffDC1EMwpMIK05+vZ9 rWwi2IasTA4RlY3Q0qj+dy3lhJHmKvYn5aKtpC5SNSAsh3fSvm9gPoISOmDEJrMfcKDw dU9iiisejLm6lcO8W5NH52kHAWL8qyEYxqVX7peJK0P7KcdkL9PLppmywfOHuy1eum2a O2Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ua3dCQqQb5b+s0cFacn4CGRSg7vSM7e1xYMJ5avpJ84=; b=aJiotTuMRMtePEhvUTLkogNl5LwVhyEGZ/TH3VuAIt896aWK2mq9T/ZBHV52gHaYY1 NTtvXK59jJ+RCGyLdb/+ehtTZ1qqgnqsqzAE9XyFksKDaaUXczOFskmzYOjRS4KTolnI X8tGpbqDaZcJ3mT5yPfotslIVGxCevGAraUJjzcg2YOXH4izfk6T2GvGGBPC192gJwVk A3TwVqxCh4uut16qbFNvZ5XagpzupoWgX8k0jJ28WGKiNuGW4sG4TmMp5udYhIdovimz 0Lq3bY+y4Y2xoJ91f63TnSWJi6sVQzwbs72s6JLUA9bmgHOaI7AUuY3oFXTPCrI/unbx +xTw== X-Gm-Message-State: APjAAAWqyJHSX7c91HaQ65iiDkme2sYfX+UgXxkhBmA7unDRA649pshT ksGAIXchyiWSSFF+lpsrmVBmfnUs X-Google-Smtp-Source: APXvYqzCkfCdtG8+0gfVGcuxuOcvwLnU/St16cRGXyy91FWQmuNTXqtaWtch8HJofy0x+qzqjHVr+g== X-Received: by 2002:a62:2e41:: with SMTP id u62mr19567176pfu.248.1578923101971; Mon, 13 Jan 2020 05:45:01 -0800 (PST) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id 13sm14413773pfi.78.2020.01.13.05.45.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jan 2020 05:45:01 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 13 Jan 2020 21:44:51 +0800 Message-Id: <20200113134451.9511-3-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200113134451.9511-1-lance.lmwang@gmail.com> References: <20200113134451.9511-1-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v1 3/3] avutil/tests: add more avstring test case for fate 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang One test case is different, before the patchset, it's: "path" + "/" = "path/" After applied the patchset, it's: "path" + "/" = "path" Signed-off-by: Limin Wang --- libavutil/tests/avstring.c | 3 +++ tests/ref/fate/avstring | 3 +++ 2 files changed, 6 insertions(+) diff --git a/libavutil/tests/avstring.c b/libavutil/tests/avstring.c index 887bd25..a94f7a5 100644 --- a/libavutil/tests/avstring.c +++ b/libavutil/tests/avstring.c @@ -76,6 +76,9 @@ int main(void) TEST_APPEND_PATH_COMPONENT(NULL, NULL, "(null)") TEST_APPEND_PATH_COMPONENT("path", NULL, "path"); TEST_APPEND_PATH_COMPONENT(NULL, "comp", "comp"); + TEST_APPEND_PATH_COMPONENT("path", "", "path"); + TEST_APPEND_PATH_COMPONENT("", "comp", "comp"); + TEST_APPEND_PATH_COMPONENT("path", "/", "path"); TEST_APPEND_PATH_COMPONENT("path", "comp", "path/comp"); TEST_APPEND_PATH_COMPONENT("path/", "comp", "path/comp"); TEST_APPEND_PATH_COMPONENT("path", "/comp", "path/comp"); diff --git a/tests/ref/fate/avstring b/tests/ref/fate/avstring index 1ca9be5..92ec918 100644 --- a/tests/ref/fate/avstring +++ b/tests/ref/fate/avstring @@ -29,6 +29,9 @@ Testing av_append_path_component() (null) = (null) path = path comp = comp +path = path +comp = comp +path/ = path path/comp = path/comp path/comp = path/comp path/comp = path/comp