From patchwork Fri Aug 11 14:50:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 109896 Delivered-To: patch@linaro.org Received: by 10.182.109.195 with SMTP id hu3csp977688obb; Fri, 11 Aug 2017 07:53:59 -0700 (PDT) X-Received: by 10.99.126.86 with SMTP id o22mr15417921pgn.384.1502463239025; Fri, 11 Aug 2017 07:53:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502463239; cv=none; d=google.com; s=arc-20160816; b=jpZW08IhiA15oHJj97ChaDlifBPJx5RVl3viIPAbRY5H2UqT1gvubP1SF9ovJJaZ/1 twcmIywGrtt1updkfPo92MeIf0pkwMYAzRDboXZAkOsxlSkVxY90jVLemDycIs1Qb7le bx0Q1SUeYf3ChGIugN/8IDBcymHessejflBentOPztaIlhLrJAmlxnkOL/eivjFyKZrn Se+1l7njgOdUDjHyYxDkv/XalJHOXXruGElqzeiwnfx9AZoa8K4abahhXcHN6lgkR+dK YXdOg4IyYAULnfrp6InYXO3GCvjHQwHjIC70ya26M1GxKJf6OzTU1m44aSAnWubfvqAI aQSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:to:from:delivered-to :sender:list-help:list-post:list-archive:list-subscribe :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=dHo/rGhFKd22WgoIf5gANIH4n8/GsmSTxh5VWCglJjw=; b=x8T/omS1Cjpla5oRV8oiG6eL2UADEY2UJ+JYf6Mdk6iAT3dE31IIk/HdbncIFPKksL 5pLp/aSxjWx1gPKP/SAyNBFH4wfvyB6Xn7Zl2NOgaiSIinIx2NQrej1UdHwNTaqkiw+G 8NXgZeOKngut9CWuXLxLqJqb4LTybvcURa1OutN7MJ3vS21y+H2/bI29dbu5ed0k9Rh2 i0HqYnVFO3HHxFXudEqw2MtuYyWSG3CXgjoedJYqM0XxB1PMfBC2Kbqg2wEVuzrtKOuk QmXeZVxKEwzxVWSzjcl2j8S7AQ9tOlWecX6MnuWBOi3WlCJ6J5hzCWy4zER4xtoOLUnF wE7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=DSbzG64/; spf=pass (google.com: domain of libc-alpha-return-83038-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-83038-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id l6si661277plk.441.2017.08.11.07.53.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Aug 2017 07:53:59 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-83038-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=DSbzG64/; spf=pass (google.com: domain of libc-alpha-return-83038-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-83038-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=qsJrgQ4TUtyXGAcD/RmGkuVqjI5UWeN K501p9OWOBWT/Leph3UVoMfvRVWntLUPvP6dhy69AeWoxgwLWSwb/P4LRK/qsqtq OWRjd1yPLvssoV4XjOq1ePeA0ihX7s5np45OZbhIGx/5SIxboaoUhbRzD9ZFQbHs Q1FYoz+VuLBQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=gK2pcZIsshKGmZqD22a5/I0opfY=; b=DSbzG 64/8dQCQIlmiIbRyGaUDLQVQTOZL9P70YczgSlGof/tPbFRtxLr9xW5hTk12gEGe RHUT11YAuTJKVTNgUiSVE/jfTGGwhrna6a2bnY+YCCgtYS19T/oThBYWekJlF5nQ x9YECMvI9h2Typ3UVakEZinLg1/bme27wXrGVw= Received: (qmail 90045 invoked by alias); 11 Aug 2017 14:51:33 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 81733 invoked by uid 89); 11 Aug 2017 14:51:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:3320 X-HELO: mail-qk0-f178.google.com 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=dHo/rGhFKd22WgoIf5gANIH4n8/GsmSTxh5VWCglJjw=; b=h+Wot36xmYpgM5C77Cwalr9XP9aJhFIdt4naiClUSGkk1aOtcPhZb7R76LL3tCPoQe xKP5Y2WCPBjGf5IRIMsP37qyGISpOyn61XDfftJ00gV6VITp+EI86YunMSy5DdxqeUjc t3XG+nXqDp5RHXSF16P5+FLuDrGIKn8WDBgvvDX0FJcu0B/0uNi1hYK80jTlB5y4nTuD VjX9dwp9ovo59DKGeksH4U2OnOV3jeG81jmTlMVBoukXb0vmfzEgWacjoJNrrnAb7ExQ wyxRsA7jjHKkFccmDG1Eu8OuatU88w1TZublCIelCgvsDMe4kbjo+759PdCOupMfZ2V/ tPcw== X-Gm-Message-State: AHYfb5jTfbNAURvGDi32DCgXdsZqvvXdZL1Nr7mLm23nbtmeM866AdLY hC0AuW+GnBfby4VifWkmwA== X-Received: by 10.55.136.1 with SMTP id k1mr20966787qkd.64.1502463075058; Fri, 11 Aug 2017 07:51:15 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 17/18] posix: Use enum for __glob_pattern_type result Date: Fri, 11 Aug 2017 11:50:43 -0300 Message-Id: <1502463044-4042-18-git-send-email-adhemerval.zanella@linaro.org> In-Reply-To: <1502463044-4042-1-git-send-email-adhemerval.zanella@linaro.org> References: <1502463044-4042-1-git-send-email-adhemerval.zanella@linaro.org> This patch replaces the internal integer constant from __glob_pattern_type return with a proper enum. Checked on x86_64-linux-gnu. * posix/glob_internal.h (__glob_pat_types): New enumeration. (__glob_pattern_type): Use __glob_pat_types. * posix/glob_pattern_p.c (__glob_pattern_p): Likewise. * posix/glob.c (glob): Likewise. (glob_in_dir): Likewise. --- posix/glob.c | 8 ++++---- posix/glob_internal.h | 18 +++++++++++++----- posix/glob_pattern_p.c | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) -- 2.7.4 diff --git a/posix/glob.c b/posix/glob.c index 647334d..37e8702 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -906,7 +906,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), [ which we handle the same, using fnmatch. Broken unterminated pattern bracket expressions ought to be rare enough that it is not worth special casing them, fnmatch will do the right thing. */ - if (meta & 5) + if (meta & (__glob_special | __glob_bracket)) { /* The directory name contains metacharacters, so we have to glob for the directory, and then glob for @@ -1059,7 +1059,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), size_t old_pathc = pglob->gl_pathc; int orig_flags = flags; - if (meta & 2) + if (meta & __glob_backslash) { char *p = strchr (char_array_str (&dirname), '\\'), *q; /* We need to unescape the dirname string. It is certainly @@ -1272,14 +1272,14 @@ glob_in_dir (const char *pattern, const char *directory, int flags, globnames_array_init (&globnames); meta = __glob_pattern_type (pattern, !(flags & GLOB_NOESCAPE)); - if (meta == 0 && (flags & (GLOB_NOCHECK|GLOB_NOMAGIC))) + if (meta == __glob_none && (flags & (GLOB_NOCHECK|GLOB_NOMAGIC))) { /* We need not do any tests. The PATTERN contains no meta characters and we must not return an error therefore the result will always contain exactly one name. */ flags |= GLOB_NOCHECK; } - else if (meta == 0) + else if (meta == __glob_none) { /* Since we use the normal file functions we can also use stat() to verify the file is there. */ diff --git a/posix/glob_internal.h b/posix/glob_internal.h index d989a98..54143c2 100644 --- a/posix/glob_internal.h +++ b/posix/glob_internal.h @@ -19,35 +19,43 @@ #ifndef GLOB_INTERNAL_H # define GLOB_INTERNAL_H +enum __glob_pat_types +{ + __glob_none = 0x0, + __glob_special = 0x1, + __glob_backslash = 0x2, + __glob_bracket = 0x4 +}; + static inline int __glob_pattern_type (const char *pattern, int quote) { const char *p; - int ret = 0; + int ret = __glob_none; for (p = pattern; *p != '\0'; ++p) switch (*p) { case '?': case '*': - return 1; + return __glob_special; case '\\': if (quote) { if (p[1] != '\0') ++p; - ret |= 2; + ret |= __glob_backslash; } break; case '[': - ret |= 4; + ret |= __glob_bracket; break; case ']': if (ret & 4) - return 1; + return __glob_special; break; } diff --git a/posix/glob_pattern_p.c b/posix/glob_pattern_p.c index 6e451f2..61caf37 100644 --- a/posix/glob_pattern_p.c +++ b/posix/glob_pattern_p.c @@ -24,6 +24,6 @@ int __glob_pattern_p (const char *pattern, int quote) { - return __glob_pattern_type (pattern, quote) == 1; + return __glob_pattern_type (pattern, quote) == __glob_special; } weak_alias (__glob_pattern_p, glob_pattern_p)