From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Potashev Subject: [PATCH] add is_dot_or_dotdot inline function Date: Sat, 10 Jan 2009 15:07:50 +0300 Message-ID: <1231589270-15812-1-git-send-email-aspotashev@gmail.com> Cc: Git Mailing List , Alexander Potashev To: Junio C Hamano X-From: git-owner@vger.kernel.org Sat Jan 10 13:09:19 2009 Return-path: Envelope-to: gcvg-git-2@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by lo.gmane.org with esmtp (Exim 4.50) id 1LLceS-000228-Rp for gcvg-git-2@gmane.org; Sat, 10 Jan 2009 13:09:17 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752939AbZAJMHw (ORCPT ); Sat, 10 Jan 2009 07:07:52 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752881AbZAJMHv (ORCPT ); Sat, 10 Jan 2009 07:07:51 -0500 Received: from fg-out-1718.google.com ([72.14.220.154]:17348 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752753AbZAJMHu (ORCPT ); Sat, 10 Jan 2009 07:07:50 -0500 Received: by fg-out-1718.google.com with SMTP id 19so3611925fgg.17 for ; Sat, 10 Jan 2009 04:07:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=25VIaGfQuPB8yL9OdysTYs5Y+tze+k1T3CNNX7A1FgM=; b=YX0omS5D6zTkQ7wmelYmr+8v7rLuZ8JdsFCiyn5w706IfNI2BmeFYq+rnOas4ToN0r DGbyTBxvfFa1hQBlEOv95mRCS/1qe3djw+GemroGKsF7TTMQ6xHVUYnzCiCl9CjBnrNy 7rtzlHw3Yac7+D8+tbZnvjpHwTse9YDe8sHs0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=PZbeNP7WpdWkWXqmEL25vPpGsoQnjPI5riHUaGp+shLMl4x30jVfBScnCV2/c100bc m+CJGrhEZQiYbnXQyV8uykUREmimYMkSZ/KGI0Hr7h7+W6z1i4Q8dlzvl8unH8b4LXjk SD/lzjjBN317ZXc7HbhZWJaDRTkBHaTYb5H5U= Received: by 10.86.52.6 with SMTP id z6mr15072405fgz.63.1231589268188; Sat, 10 Jan 2009 04:07:48 -0800 (PST) Received: from localhost.localdomain (ppp83-237-189-185.pppoe.mtu-net.ru [83.237.189.185]) by mx.google.com with ESMTPS id 12sm16407159fgg.56.2009.01.10.04.07.47 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 10 Jan 2009 04:07:47 -0800 (PST) X-Mailer: git-send-email 1.6.1.76.gc123b.dirty Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: A new inline function is_dot_or_dotdot is used to check if the directory name is either "." or "..". It returns a non-zero value if the given string is "." or "..". It's applicable to a lot of Git source code. Signed-off-by: Alexander Potashev --- builtin-count-objects.c | 5 ++--- builtin-fsck.c | 14 ++++---------- builtin-prune.c | 14 ++++---------- builtin-rerere.c | 11 +++++------ dir.c | 12 ++++-------- dir.h | 6 ++++++ entry.c | 5 ++--- remote.c | 6 ++---- transport.c | 4 +--- 9 files changed, 30 insertions(+), 47 deletions(-) diff --git a/builtin-count-objects.c b/builtin-count-objects.c index ab35b65..62fd1f0 100644 --- a/builtin-count-objects.c +++ b/builtin-count-objects.c @@ -5,6 +5,7 @@ */ #include "cache.h" +#include "dir.h" #include "builtin.h" #include "parse-options.h" @@ -21,9 +22,7 @@ static void count_objects(DIR *d, char *path, int len, int verbose, const char *cp; int bad = 0; - if ((ent->d_name[0] == '.') && - (ent->d_name[1] == 0 || - ((ent->d_name[1] == '.') && (ent->d_name[2] == 0)))) + if (is_dot_or_dotdot(ent->d_name)) continue; for (cp = ent->d_name; *cp; cp++) { int ch = *cp; diff --git a/builtin-fsck.c b/builtin-fsck.c index 297b2c4..79b87ed 100644 --- a/builtin-fsck.c +++ b/builtin-fsck.c @@ -10,6 +10,7 @@ #include "tree-walk.h" #include "fsck.h" #include "parse-options.h" +#include "dir.h" #define REACHABLE 0x0001 #define SEEN 0x0002 @@ -395,19 +396,12 @@ static void fsck_dir(int i, char *path) while ((de = readdir(dir)) != NULL) { char name[100]; unsigned char sha1[20]; - int len = strlen(de->d_name); - switch (len) { - case 2: - if (de->d_name[1] != '.') - break; - case 1: - if (de->d_name[0] != '.') - break; + if (is_dot_or_dotdot(de->d_name)) continue; - case 38: + if (strlen(de->d_name) == 38) { sprintf(name, "%02x", i); - memcpy(name+2, de->d_name, len+1); + memcpy(name+2, de->d_name, 39); if (get_sha1_hex(name, sha1) < 0) break; add_sha1_list(sha1, DIRENT_SORT_HINT(de)); diff --git a/builtin-prune.c b/builtin-prune.c index 7b4ec80..545e9c1 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -5,6 +5,7 @@ #include "builtin.h" #include "reachable.h" #include "parse-options.h" +#include "dir.h" static const char * const prune_usage[] = { "git prune [-n] [-v] [--expire