LCOV - code coverage report
Current view: top level - lib - file-type.c (source / functions) Hit Total Coverage
Test: coreutils.info Lines: 10 16 62.5 %
Date: 2018-01-30 Functions: 1 1 100.0 %

          Line data    Source code
       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 3 of the License, or
       9             :    (at your option) 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, see <http://www.gnu.org/licenses/>.  */
      18             : 
      19             : /* Written by Paul Eggert.  */
      20             : 
      21             : #include <config.h>
      22             : 
      23             : #include "file-type.h"
      24             : 
      25             : #include <gettext.h>
      26             : #define _(text) gettext (text)
      27             : 
      28             : char const *
      29          40 : file_type (struct stat const *st)
      30             : {
      31             :   /* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107 for some of
      32             :      these formats.
      33             : 
      34             :      To keep diagnostics grammatical in English, the returned string
      35             :      must start with a consonant.  */
      36             : 
      37          40 :   if (S_ISREG (st->st_mode))
      38          31 :     return st->st_size == 0 ? _("regular empty file") : _("regular file");
      39             : 
      40           9 :   if (S_ISDIR (st->st_mode))
      41           4 :     return _("directory");
      42             : 
      43           5 :   if (S_ISBLK (st->st_mode))
      44           0 :     return _("block special file");
      45             : 
      46           5 :   if (S_ISCHR (st->st_mode))
      47           0 :     return _("character special file");
      48             : 
      49           5 :   if (S_ISFIFO (st->st_mode))
      50           0 :     return _("fifo");
      51             : 
      52           5 :   if (S_ISLNK (st->st_mode))
      53           5 :     return _("symbolic link");
      54             : 
      55           0 :   if (S_ISSOCK (st->st_mode))
      56           0 :     return _("socket");
      57             : 
      58             :   if (S_TYPEISMQ (st))
      59             :     return _("message queue");
      60             : 
      61             :   if (S_TYPEISSEM (st))
      62             :     return _("semaphore");
      63             : 
      64             :   if (S_TYPEISSHM (st))
      65             :     return _("shared memory object");
      66             : 
      67             :   if (S_TYPEISTMO (st))
      68             :     return _("typed memory object");
      69             : 
      70           0 :   return _("weird file");
      71             : }

Generated by: LCOV version 1.10