From patchwork Fri Nov 8 15:39:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 16167 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 D6CE9448945 for ; Fri, 8 Nov 2019 17:39:18 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B3DC468AF62; Fri, 8 Nov 2019 17:39:18 +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 E189768AF54 for ; Fri, 8 Nov 2019 17:39:11 +0200 (EET) Received: by mail-pl1-f196.google.com with SMTP id az9so3402849plb.11 for ; Fri, 08 Nov 2019 07:39: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; bh=SlEFOhQxriX6mofQ4EBkeLdKlmNmhEU8JpuThTd4NT4=; b=OWrx4KPqW6Gbt/p1xSH8+TSogEPt5nHnbtd8habRKfNefuuQzKjXG+fsGMvRkqf/Yo zG6dSKYPxXa240wZG7M4YHB8WjQsQu0qKNSAX/5+GTuE+x7xHLZmPAhkUXShcHIwVKyj jF+tkJ4MqoxvHq1HfvZYqpuTXYAS/A7NFbzsfJJDAw2Wv+vsblDIu2E/ftTbVib7TNdh MYwVSPWUUGY1xxGuXn0PG74+/1fUZ+O/mvyX8UNq3wo+E4O8/yPIHna8MQFjHRXc2Nyz E0IzDGSFKUkkHx7/3hdHm02x3YX+GFeIfSVVIrAN1b322GICxtqa4UdyuCpuFAxieEju oTkw== 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=SlEFOhQxriX6mofQ4EBkeLdKlmNmhEU8JpuThTd4NT4=; b=Tc0qZ6YHqIw7Y0xLRRYTUnEYSr28WrY/8IJm5O7ey/fahJXTFN1SuVqvZav4cbsNOr g+HFtgpderp0xlciOkVA00pvht0ySJyTpReYgvlKdulbkYf781yJCq2Ma0eW8kwonD+s RLjTu1/sFGsudZjZ0efZMgfiPFdpgsP31v3LjiFNNcVbBRbOP3dNqEGNehchILuNRBR4 rWwVyFnOjdjw3fbnmoAZgQAjQGzaFQSkIFeDUOCt1cWeivwvIg72Ahgc9yHEB+bB9hCM D/FKXpmXvalcHpSMUM9wa1/5Cp0DKnNn9TaXvblirseFCUEHF0pSmxyCBBs10OUvJAM0 JMOg== X-Gm-Message-State: APjAAAXsnKL4evioMHBHWF49uuJTxdtUIQoVYnHz6Qjqp1o6b7cqXKs+ mUxiTXFv/dlPRcomj/JXb0ZhiJ0LdUs= X-Google-Smtp-Source: APXvYqw1UJCqgjvTJjUUVvKQ8MPuMhtIuG5izt5zHWx0GWu8KiQBoOr4HN2ZbFehJ8a7qbqtA5DF+Q== X-Received: by 2002:a17:902:a410:: with SMTP id p16mr11165929plq.184.1573227549817; Fri, 08 Nov 2019 07:39:09 -0800 (PST) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id o15sm4540018pgf.2.2019.11.08.07.39.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Nov 2019 07:39:09 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 Nov 2019 23:39:04 +0800 Message-Id: <20191108153904.30142-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 Subject: [FFmpeg-devel] [PATCH v1] avformat/utils: simplify the ff_mkdir_p with SEPARATOR 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 --- libavformat/utils.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 8196442..e634f15 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -4843,35 +4843,32 @@ void av_url_split(char *proto, int proto_size, } } +#if HAVE_DOS_PATHS +#define SEPARATOR '\\' +#else +#define SEPARATOR '/' +#endif + int ff_mkdir_p(const char *path) { int ret = 0; char *temp = av_strdup(path); char *pos = temp; - char tmp_ch = '\0'; if (!path || !temp) { return -1; } - if (!av_strncasecmp(temp, "/", 1) || !av_strncasecmp(temp, "\\", 1)) { - pos++; - } else if (!av_strncasecmp(temp, "./", 2) || !av_strncasecmp(temp, ".\\", 2)) { - pos += 2; - } - - for ( ; *pos != '\0'; ++pos) { - if (*pos == '/' || *pos == '\\') { - tmp_ch = *pos; + for ( ; *pos; ++pos) { + if (*pos == SEPARATOR) { + /* Temporarily truncate */ *pos = '\0'; - ret = mkdir(temp, 0755); - *pos = tmp_ch; + ret += mkdir(temp, 0755); + *pos = SEPARATOR; } } - if ((*(pos - 1) != '/') || (*(pos - 1) != '\\')) { - ret = mkdir(temp, 0755); - } + ret += mkdir(temp, 0755); av_free(temp); return ret;