octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Status of GNU sources


From: John W. Eaton
Subject: Status of GNU sources
Date: Thu, 13 Jan 2011 18:56:23 -0500

On 13-Jan-2011, CdeMills wrote:

| I've checked the files with .c extensions under liboctave. Status are:
| filemode.c => should be overriden by the one in gnulib

Thanks, I made the attached change, but then noticed that filemode.h
is not C++ friendly, so I'll wait until that can be fixed in gnulib
(I'll ask about it).

jwe

# HG changeset patch
# User John W. Eaton <address@hidden>
# Date 1294962874 18000
# Node ID e2c7680b6780d7dbb69c0c6e340028ab89ce8ddb
# Parent  4f60db87514724920554ed1c8f47ad757b29987d
use gnulib filemode module

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2011-01-13  John W. Eaton  <address@hidden>
 
+       * bootstrap.conf (gnulib_modules): Include filemode in the list.
+
        * configure.ac (AC_ARG_ENABLE(extra-warning-flags)):
        Eliminate some code duplication.
 
diff --git a/bootstrap.conf b/bootstrap.conf
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -22,6 +22,7 @@
   copysign
   crypto/md5
   fcntl
+  filemode
   fnmatch
   getcwd
   gethostname
diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,11 @@
+2011-01-13  John W. Eaton  <address@hidden>
+
+       * file-stat.cc (mode_as_string): Call strmode instead of mode_string.
+
+       * filemode.h, filemode.c: Delete.
+       * Makefile.am (INCS): Remove filemode.h from the list.
+       (LIBOCTAVE_C_SOURCES): Remove filemode.c from the list.
+
 2011-01-13  John W. Eaton  <address@hidden>
 
        * CColVector.cc, CMatrix.cc, CRowVector.cc, CSparse.cc,
diff --git a/liboctave/Makefile.am b/liboctave/Makefile.am
--- a/liboctave/Makefile.am
+++ b/liboctave/Makefile.am
@@ -198,7 +198,6 @@
   dir-ops.h \
   file-ops.h \
   file-stat.h \
-  filemode.h \
   functor.h \
   glob-match.h \
   idx-vector.h \
@@ -479,7 +478,6 @@
 
 LIBOCTAVE_C_SOURCES = \
   f2c-main.c \
-  filemode.c \
   lo-cieee.c \
   lo-cutils.c \
   randgamma.c \
diff --git a/liboctave/file-stat.cc b/liboctave/file-stat.cc
--- a/liboctave/file-stat.cc
+++ b/liboctave/file-stat.cc
@@ -31,9 +31,10 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "filemode.h"
+
 #include "file-ops.h"
 #include "file-stat.h"
-#include "filemode.h"
 #include "statdefs.h"
 
 // FIXME -- the is_* and mode_as_string functions are only valid
@@ -157,7 +158,7 @@
 {
   char buf[11];
 
-  mode_string (fs_mode, buf);
+  strmode (fs_mode, buf);
 
   buf[10] = '\0';
 
diff --git a/liboctave/filemode.c b/liboctave/filemode.c
deleted file mode 100644
--- a/liboctave/filemode.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* filemode.c -- make a string describing file modes
-   Copyright (C) 1985, 1990, 1993 Free Software Foundation, Inc.
-
-   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 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
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   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.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "filemode.h"
-
-#if !S_IRUSR
-# if S_IREAD
-#  define S_IRUSR S_IREAD
-# else
-#  define S_IRUSR 00400
-# endif
-#endif
-
-#if !S_IWUSR
-# if S_IWRITE
-#  define S_IWUSR S_IWRITE
-# else
-#  define S_IWUSR 00200
-# endif
-#endif
-
-#if !S_IXUSR
-# if S_IEXEC
-#  define S_IXUSR S_IEXEC
-# else
-#  define S_IXUSR 00100
-# endif
-#endif
-
-#ifdef STAT_MACROS_BROKEN
-#undef S_ISBLK
-#undef S_ISCHR
-#undef S_ISDIR
-#undef S_ISFIFO
-#undef S_ISLNK
-#undef S_ISMPB
-#undef S_ISMPC
-#undef S_ISNWK
-#undef S_ISREG
-#undef S_ISSOCK
-#endif /* STAT_MACROS_BROKEN.  */
-
-#if !defined(S_ISBLK) && defined(S_IFBLK)
-#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
-#endif
-#if !defined(S_ISCHR) && defined(S_IFCHR)
-#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-#endif
-#if !defined(S_ISDIR) && defined(S_IFDIR)
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#endif
-#if !defined(S_ISREG) && defined(S_IFREG)
-#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-#endif
-#if !defined(S_ISFIFO) && defined(S_IFIFO)
-#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
-#endif
-#if !defined(S_ISLNK) && defined(S_IFLNK)
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#endif
-#if !defined(S_ISSOCK) && defined(S_IFSOCK)
-#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-#endif
-#if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */
-#define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
-#define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
-#endif
-#if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
-#define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
-#endif
-
-/* Return a character indicating the type of file described by
-   file mode BITS:
-   'd' for directories
-   'b' for block special files
-   'c' for character special files
-   'm' for multiplexor files
-   'l' for symbolic links
-   's' for sockets
-   'p' for fifos
-   '-' for regular files
-   '?' for any other file type.  */
-
-static char
-ftypelet (long bits)
-{
-#ifdef S_ISBLK
-  if (S_ISBLK (bits))
-    return 'b';
-#endif
-  if (S_ISCHR (bits))
-    return 'c';
-  if (S_ISDIR (bits))
-    return 'd';
-  if (S_ISREG (bits))
-    return '-';
-#ifdef S_ISFIFO
-  if (S_ISFIFO (bits))
-    return 'p';
-#endif
-#ifdef S_ISLNK
-  if (S_ISLNK (bits))
-    return 'l';
-#endif
-#ifdef S_ISSOCK
-  if (S_ISSOCK (bits))
-    return 's';
-#endif
-#ifdef S_ISMPC
-  if (S_ISMPC (bits))
-    return 'm';
-#endif
-#ifdef S_ISNWK
-  if (S_ISNWK (bits))
-    return 'n';
-#endif
-  return '?';
-}
-
-/* Look at read, write, and execute bits in BITS and set
-   flags in CHARS accordingly.  */
-
-static void
-rwx (unsigned short bits, char *chars)
-{
-  chars[0] = (bits & S_IRUSR) ? 'r' : '-';
-  chars[1] = (bits & S_IWUSR) ? 'w' : '-';
-  chars[2] = (bits & S_IXUSR) ? 'x' : '-';
-}
-
-/* Set the 's' and 't' flags in file attributes string CHARS,
-   according to the file mode BITS.  */
-
-static void
-setst (unsigned short bits, char *chars)
-{
-#ifdef S_ISUID
-  if (bits & S_ISUID)
-    {
-      if (chars[3] != 'x')
-        /* Set-uid, but not executable by owner.  */
-        chars[3] = 'S';
-      else
-        chars[3] = 's';
-    }
-#endif
-#ifdef S_ISGID
-  if (bits & S_ISGID)
-    {
-      if (chars[6] != 'x')
-        /* Set-gid, but not executable by group.  */
-        chars[6] = 'S';
-      else
-        chars[6] = 's';
-    }
-#endif
-#ifdef S_ISVTX
-  if (bits & S_ISVTX)
-    {
-      if (chars[9] != 'x')
-        /* Sticky, but not executable by others.  */
-        chars[9] = 'T';
-      else
-        chars[9] = 't';
-    }
-#endif
-}
-
-/* Like filemodestring, but only the relevant part of the `struct stat'
-   is given as an argument.  */
-
-void
-mode_string (unsigned short mode, char *str)
-{
-  str[0] = ftypelet ((long) mode);
-  rwx ((mode & 0700) << 0, &str[1]);
-  rwx ((mode & 0070) << 3, &str[4]);
-  rwx ((mode & 0007) << 6, &str[7]);
-  setst (mode, str);
-}
-
-/* filemodestring - fill in string STR with an ls-style ASCII
-   representation of the st_mode field of file stats block STATP.
-   10 characters are stored in STR; no terminating null is added.
-   The characters stored in STR are:
-
-   0    File type.  'd' for directory, 'c' for character
-        special, 'b' for block special, 'm' for multiplex,
-        'l' for symbolic link, 's' for socket, 'p' for fifo,
-        '-' for regular, '?' for any other file type
-
-   1    'r' if the owner may read, '-' 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.
-
-   4    'r' if group members may read, '-' 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.
-
-   7    'r' if any user may read, '-' 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.  */
-
-void
-filemodestring (struct stat *statp, char *str)
-{
-  mode_string (statp->st_mode, str);
-}
diff --git a/liboctave/filemode.h b/liboctave/filemode.h
deleted file mode 100644
--- a/liboctave/filemode.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-
-Copyright (C) 2011 John W. Eaton
-
-This file is part of Octave.
-
-Octave 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 3 of the License, or (at your
-option) any later version.
-
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Octave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#if !defined (octave_liboctave_filemode_h)
-#define octave_liboctave_filemode_h 1
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void mode_string (unsigned short, char *);
-
-void filemodestring (struct stat *, char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

reply via email to

[Prev in Thread] Current Thread [Next in Thread]