(linenum→info "unix/slp.c:2238")

coreutils/6.9/lib/file-type.c

    1: /* Return a string describing the type of a file.
    2: 
    3:    Copyright (C) 1993, 1994, 2001, 2002, 2004, 2005, 2006 Free
    4:    Software Foundation, Inc.
    5: 
    6:    This program is free software; you can redistribute it and/or modify
    7:    it under the terms of the GNU General Public License as published by
    8:    the Free Software Foundation; either version 2, or (at your option)
    9:    any later version.
   10: 
   11:    This program is distributed in the hope that it will be useful,
   12:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   13:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   14:    GNU General Public License for more details.
   15: 
   16:    You should have received a copy of the GNU General Public License
   17:    along with this program; if not, write to the Free Software Foundation,
   18:    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
   19: 
   20: /* Written by Paul Eggert.  */
   21: 
   22: #include <config.h>
   23: 
   24: #include "file-type.h"
   25: 
   26: #include <gettext.h>
   27: #define _(text) gettext (text)
   28: 
   29: char const *
   30: file_type (struct stat const *st)
   31: {
   32:   /* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107 for some of
   33:      these formats.
   34: 
   35:      To keep diagnostics grammatical in English, the returned string
   36:      must start with a consonant.  */
   37: 
   38:   if (S_ISREG (st->st_mode))
   39:     return st->st_size == 0 ? _("regular empty file") : _("regular file");
   40: 
   41:   if (S_ISDIR (st->st_mode))
   42:     return _("directory");
   43: 
   44:   if (S_ISBLK (st->st_mode))
   45:     return _("block special file");
   46: 
   47:   if (S_ISCHR (st->st_mode))
   48:     return _("character special file");
   49: 
   50:   if (S_ISFIFO (st->st_mode))
   51:     return _("fifo");
   52: 
   53:   if (S_ISLNK (st->st_mode))
   54:     return _("symbolic link");
   55: 
   56:   if (S_ISSOCK (st->st_mode))
   57:     return _("socket");
   58: 
   59:   if (S_TYPEISMQ (st))
   60:     return _("message queue");
   61: 
   62:   if (S_TYPEISSEM (st))
   63:     return _("semaphore");
   64: 
   65:   if (S_TYPEISSHM (st))
   66:     return _("shared memory object");
   67: 
   68:   if (S_TYPEISTMO (st))
   69:     return _("typed memory object");
   70: 
   71:   return _("weird file");
   72: }
Syntax (Markdown)