X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Ffilemode.c;h=0f6641ace6a364bdc488a5dc2643f97e4c93bec7;hb=7cbc494f7cc150886b741e2af5051685d818f89c;hp=5636c9e7c0480449d6dd098172d46ecae4b4ce8e;hpb=79c0a43808d9ca85acd04600149fc1a9b75bd1b9;p=gnulib.git diff --git a/lib/filemode.c b/lib/filemode.c index 5636c9e7c..0f6641ace 100644 --- a/lib/filemode.c +++ b/lib/filemode.c @@ -1,12 +1,12 @@ /* filemode.c -- make a string describing file modes - Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006 Free Software - Foundation, Inc. + Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006, 2009-2011 Free + Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,17 +14,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ -#ifdef HAVE_CONFIG_H -# include -#endif +#include #include "filemode.h" -#include "stat-macros.h" - /* The following is for Cray DMF (Data Migration Facility), which is a HSM file system. A migrated file has a `st_dm_mode' that is different from the normal `st_mode', so any tests for migrated @@ -104,18 +99,18 @@ strmode (mode_t mode, char *str) str[1] = mode & S_IRUSR ? 'r' : '-'; str[2] = mode & S_IWUSR ? 'w' : '-'; str[3] = (mode & S_ISUID - ? (mode & S_IXUSR ? 's' : 'S') - : (mode & S_IXUSR ? 'x' : '-')); + ? (mode & S_IXUSR ? 's' : 'S') + : (mode & S_IXUSR ? 'x' : '-')); str[4] = mode & S_IRGRP ? 'r' : '-'; str[5] = mode & S_IWGRP ? 'w' : '-'; str[6] = (mode & S_ISGID - ? (mode & S_IXGRP ? 's' : 'S') - : (mode & S_IXGRP ? 'x' : '-')); + ? (mode & S_IXGRP ? 's' : 'S') + : (mode & S_IXGRP ? 'x' : '-')); str[7] = mode & S_IROTH ? 'r' : '-'; str[8] = mode & S_IWOTH ? 'w' : '-'; str[9] = (mode & S_ISVTX - ? (mode & S_IXOTH ? 't' : 'T') - : (mode & S_IXOTH ? 'x' : '-')); + ? (mode & S_IXOTH ? 't' : 'T') + : (mode & S_IXOTH ? 'x' : '-')); str[10] = ' '; str[11] = '\0'; } @@ -127,43 +122,43 @@ strmode (mode_t mode, char *str) 12 characters are stored in STR. The characters stored in STR are: - 0 File type, as in ftypelet above, except that other letters are used + 0 File type, as in ftypelet above, except that other letters are used for files whose type cannot be determined solely from st_mode: - 'F' semaphore - 'M' migrated file (Cray DMF) - 'Q' message queue - 'S' shared memory object - 'T' typed memory object + 'F' semaphore + 'M' migrated file (Cray DMF) + 'Q' message queue + 'S' shared memory object + 'T' typed memory object - 1 'r' if the owner may read, '-' otherwise. + 1 'r' if the owner may read, '-' otherwise. - 2 'w' if the owner may write, '-' otherwise. + 2 'w' if the owner may write, '-' otherwise. - 3 'x' if the owner may execute, 's' if the file is - set-user-id, '-' otherwise. - 'S' if the file is set-user-id, but the execute - bit isn't set. + 3 'x' if the owner may execute, 's' if the file is + set-user-id, '-' otherwise. + 'S' if the file is set-user-id, but the execute + bit isn't set. - 4 'r' if group members may read, '-' otherwise. + 4 'r' if group members may read, '-' otherwise. - 5 'w' if group members may write, '-' otherwise. + 5 'w' if group members may write, '-' otherwise. - 6 'x' if group members may execute, 's' if the file is - set-group-id, '-' otherwise. - 'S' if it is set-group-id but not executable. + 6 'x' if group members may execute, 's' if the file is + set-group-id, '-' otherwise. + 'S' if it is set-group-id but not executable. - 7 'r' if any user may read, '-' otherwise. + 7 'r' if any user may read, '-' otherwise. - 8 'w' if any user may write, '-' otherwise. + 8 'w' if any user may write, '-' otherwise. - 9 'x' if any user may execute, 't' if the file is "sticky" - (will be retained in swap space after execution), '-' - otherwise. - 'T' if the file is sticky but not executable. + 9 'x' if any user may execute, 't' if the file is "sticky" + (will be retained in swap space after execution), '-' + otherwise. + 'T' if the file is sticky but not executable. 10 ' ' for compatibility with 4.4BSD strmode, - since this interface does not support ACLs. + since this interface does not support ACLs. 11 '\0'. */