]> git.ipfire.org Git - thirdparty/bash.git/blame - hashcmd.h
Bash-4.3 patch 32
[thirdparty/bash.git] / hashcmd.h
CommitLineData
d166f048 1/* hashcmd.h - Common defines for hashing filenames. */
726f6388 2
3185942a 3/* Copyright (C) 1993-2009 Free Software Foundation, Inc.
726f6388
JA
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
3185942a
JA
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
726f6388 11
3185942a
JA
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
726f6388 16
3185942a
JA
17 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19*/
726f6388 20
bb70624e 21#include "stdc.h"
d166f048 22#include "hashlib.h"
726f6388 23
7117c2d2 24#define FILENAME_HASH_BUCKETS 64 /* must be power of two */
726f6388
JA
25
26extern HASH_TABLE *hashed_filenames;
27
3185942a 28typedef struct _pathdata {
726f6388 29 char *path; /* The full pathname of the file. */
ccc6cda3 30 int flags;
726f6388
JA
31} PATH_DATA;
32
ccc6cda3
JA
33#define HASH_RELPATH 0x01 /* this filename is a relative pathname. */
34#define HASH_CHKDOT 0x02 /* check `.' since it was earlier in $PATH */
35
726f6388 36#define pathdata(x) ((PATH_DATA *)(x)->data)
d166f048 37
7117c2d2
JA
38extern void phash_create __P((void));
39extern void phash_flush __P((void));
40
41extern void phash_insert __P((char *, char *, int, int));
42extern int phash_remove __P((const char *));
43extern char *phash_search __P((const char *));