~ubuntu-branches/ubuntu/trusty/bash/trusty-security

« back to all changes in this revision

Viewing changes to lib/readline/posixstat.h

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-03-03 22:52:05 UTC
  • mfrom: (1.3.5) (2.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20140303225205-87ltrt5kspeq0g1b
Tags: 4.3-1ubuntu1
* Merge with Debian; remaining changes:
  - skel.bashrc:
    - Run lesspipe.
    - Enable ls aliases.
    - Set options in ll alias to -alF.
    - Define an alert alias.
    - Enabled colored grep aliases.
  - etc.bash.bashrc:
    - Add sudo hint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* posixstat.h -- Posix stat(2) definitions for systems that
 
2
   don't have them. */
 
3
 
 
4
/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
 
5
 
 
6
   This file is part of GNU Bash, the Bourne Again SHell.
 
7
 
 
8
   Bash is free software: you can redistribute it and/or modify
 
9
   it under the terms of the GNU General Public License as published by
 
10
   the Free Software Foundation, either version 3 of the License, or
 
11
   (at your option) any later version.
 
12
 
 
13
   Bash is distributed in the hope that it will be useful,
 
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
   GNU General Public License for more details.
 
17
 
 
18
   You should have received a copy of the GNU General Public License
 
19
   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
 
20
*/
 
21
 
 
22
/* This file should be included instead of <sys/stat.h>.
 
23
   It relies on the local sys/stat.h to work though. */
 
24
#if !defined (_POSIXSTAT_H_)
 
25
#define _POSIXSTAT_H_
 
26
 
 
27
#include <sys/stat.h>
 
28
 
 
29
#if defined (STAT_MACROS_BROKEN)
 
30
#  undef S_ISBLK
 
31
#  undef S_ISCHR
 
32
#  undef S_ISDIR
 
33
#  undef S_ISFIFO
 
34
#  undef S_ISREG
 
35
#  undef S_ISLNK
 
36
#endif /* STAT_MACROS_BROKEN */
 
37
 
 
38
/* These are guaranteed to work only on isc386 */
 
39
#if !defined (S_IFDIR) && !defined (S_ISDIR)
 
40
#  define S_IFDIR 0040000
 
41
#endif /* !S_IFDIR && !S_ISDIR */
 
42
#if !defined (S_IFMT)
 
43
#  define S_IFMT  0170000
 
44
#endif /* !S_IFMT */
 
45
 
 
46
/* Posix 1003.1 5.6.1.1 <sys/stat.h> file types */
 
47
 
 
48
/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but
 
49
   do not provide the S_IS* macros that Posix requires. */
 
50
 
 
51
#if defined (_S_IFMT) && !defined (S_IFMT)
 
52
#define S_IFMT _S_IFMT
 
53
#endif
 
54
#if defined (_S_IFIFO) && !defined (S_IFIFO)
 
55
#define S_IFIFO _S_IFIFO
 
56
#endif
 
57
#if defined (_S_IFCHR) && !defined (S_IFCHR)
 
58
#define S_IFCHR _S_IFCHR
 
59
#endif
 
60
#if defined (_S_IFDIR) && !defined (S_IFDIR)
 
61
#define S_IFDIR _S_IFDIR
 
62
#endif
 
63
#if defined (_S_IFBLK) && !defined (S_IFBLK)
 
64
#define S_IFBLK _S_IFBLK
 
65
#endif
 
66
#if defined (_S_IFREG) && !defined (S_IFREG)
 
67
#define S_IFREG _S_IFREG
 
68
#endif
 
69
#if defined (_S_IFLNK) && !defined (S_IFLNK)
 
70
#define S_IFLNK _S_IFLNK
 
71
#endif
 
72
#if defined (_S_IFSOCK) && !defined (S_IFSOCK)
 
73
#define S_IFSOCK _S_IFSOCK
 
74
#endif
 
75
 
 
76
/* Test for each symbol individually and define the ones necessary (some
 
77
   systems claiming Posix compatibility define some but not all). */
 
78
 
 
79
#if defined (S_IFBLK) && !defined (S_ISBLK)
 
80
#define S_ISBLK(m)      (((m)&S_IFMT) == S_IFBLK)       /* block device */
 
81
#endif
 
82
 
 
83
#if defined (S_IFCHR) && !defined (S_ISCHR)
 
84
#define S_ISCHR(m)      (((m)&S_IFMT) == S_IFCHR)       /* character device */
 
85
#endif
 
86
 
 
87
#if defined (S_IFDIR) && !defined (S_ISDIR)
 
88
#define S_ISDIR(m)      (((m)&S_IFMT) == S_IFDIR)       /* directory */
 
89
#endif
 
90
 
 
91
#if defined (S_IFREG) && !defined (S_ISREG)
 
92
#define S_ISREG(m)      (((m)&S_IFMT) == S_IFREG)       /* file */
 
93
#endif
 
94
 
 
95
#if defined (S_IFIFO) && !defined (S_ISFIFO)
 
96
#define S_ISFIFO(m)     (((m)&S_IFMT) == S_IFIFO)       /* fifo - named pipe */
 
97
#endif
 
98
 
 
99
#if defined (S_IFLNK) && !defined (S_ISLNK)
 
100
#define S_ISLNK(m)      (((m)&S_IFMT) == S_IFLNK)       /* symbolic link */
 
101
#endif
 
102
 
 
103
#if defined (S_IFSOCK) && !defined (S_ISSOCK)
 
104
#define S_ISSOCK(m)     (((m)&S_IFMT) == S_IFSOCK)      /* socket */
 
105
#endif
 
106
 
 
107
/*
 
108
 * POSIX 1003.1 5.6.1.2 <sys/stat.h> File Modes
 
109
 */
 
110
 
 
111
#if !defined (S_IRWXU)
 
112
#  if !defined (S_IREAD)
 
113
#    define S_IREAD     00400
 
114
#    define S_IWRITE    00200
 
115
#    define S_IEXEC     00100
 
116
#  endif /* S_IREAD */
 
117
 
 
118
#  if !defined (S_IRUSR)
 
119
#    define S_IRUSR     S_IREAD                 /* read, owner */
 
120
#    define S_IWUSR     S_IWRITE                /* write, owner */
 
121
#    define S_IXUSR     S_IEXEC                 /* execute, owner */
 
122
 
 
123
#    define S_IRGRP     (S_IREAD  >> 3)         /* read, group */
 
124
#    define S_IWGRP     (S_IWRITE >> 3)         /* write, group */
 
125
#    define S_IXGRP     (S_IEXEC  >> 3)         /* execute, group */
 
126
 
 
127
#    define S_IROTH     (S_IREAD  >> 6)         /* read, other */
 
128
#    define S_IWOTH     (S_IWRITE >> 6)         /* write, other */
 
129
#    define S_IXOTH     (S_IEXEC  >> 6)         /* execute, other */
 
130
#  endif /* !S_IRUSR */
 
131
 
 
132
#  define S_IRWXU       (S_IRUSR | S_IWUSR | S_IXUSR)
 
133
#  define S_IRWXG       (S_IRGRP | S_IWGRP | S_IXGRP)
 
134
#  define S_IRWXO       (S_IROTH | S_IWOTH | S_IXOTH)
 
135
#endif /* !S_IRWXU */
 
136
 
 
137
/* These are non-standard, but are used in builtins.c$symbolic_umask() */
 
138
#define S_IRUGO         (S_IRUSR | S_IRGRP | S_IROTH)
 
139
#define S_IWUGO         (S_IWUSR | S_IWGRP | S_IWOTH)
 
140
#define S_IXUGO         (S_IXUSR | S_IXGRP | S_IXOTH)
 
141
 
 
142
#endif /* _POSIXSTAT_H_ */