You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by br...@apache.org on 2002/02/11 22:03:44 UTC

cvs commit: apr/include apr_file_io.h

brane       02/02/11 13:03:44

  Modified:    file_io/os2 filestat.c
               file_io/unix filestat.c
               file_io/win32 filestat.c
               include  apr_file_io.h
  Log:
  apr_file_attrs_set takes a new parameter, attr_mask, that defines which
  bits in the attributes are valid.
  
  Changed Unix, OS/2 and Win32 implementation to match.
  
  Revision  Changes    Path
  1.27      +8 -4      apr/file_io/os2/filestat.c
  
  Index: filestat.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/os2/filestat.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- filestat.c	2 Feb 2002 06:12:34 -0000	1.26
  +++ filestat.c	11 Feb 2002 21:03:44 -0000	1.27
  @@ -202,6 +202,7 @@
   
   APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname,
                                                apr_fileattrs_t attributes,
  +                                             apr_fileattrs_t attr_mask,
                                                apr_pool_t *cont)
   {
       FILESTATUS3 fs3;
  @@ -210,10 +211,13 @@
       if (rc == 0) {
           ULONG old_attr = fs3.attrFile;
   
  -        if (attributes & APR_FILE_ATTR_READONLY) {
  -            fs3.attrFile |= FILE_READONLY;
  -        } else {
  -            fs3.attrFile &= ~FILE_READONLY;
  +        if (attr_mask & APR_FILE_ATTR_READONLY)
  +        {
  +            if (attributes & APR_FILE_ATTR_READONLY) {
  +                fs3.attrFile |= FILE_READONLY;
  +            } else {
  +                fs3.attrFile &= ~FILE_READONLY;
  +            }
           }
   
           if (fs3.attrFile != old_attr) {
  
  
  
  1.50      +35 -11    apr/file_io/unix/filestat.c
  
  Index: filestat.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/unix/filestat.c,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- filestat.c	1 Feb 2002 01:40:38 -0000	1.49
  +++ filestat.c	11 Feb 2002 21:03:44 -0000	1.50
  @@ -138,6 +138,7 @@
   
   APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname,
                                                apr_fileattrs_t attributes,
  +                                             apr_fileattrs_t attr_mask,
                                                apr_pool_t *cont)
   {
       apr_status_t status;
  @@ -147,21 +148,44 @@
       if (!APR_STATUS_IS_SUCCESS(status))
           return status;
   
  -    if (attributes & APR_FILE_ATTR_READONLY) {
  -        finfo.protection &= ~APR_UWRITE;
  -        finfo.protection &= ~APR_GWRITE;
  -        finfo.protection &= ~APR_WWRITE;
  +    /* ### TODO: should added bits be umask'd? */
  +    if (attr_mask & APR_FILE_ATTR_READONLY)
  +    {
  +        if (attributes & APR_FILE_ATTR_READONLY)
  +        {
  +            finfo.protection &= ~APR_UWRITE;
  +            finfo.protection &= ~APR_GWRITE;
  +            finfo.protection &= ~APR_WWRITE;
  +        }
  +        else
  +        {
  +            /* ### umask this! */
  +            finfo.protection |= APR_UWRITE;
  +            finfo.protection |= APR_GWRITE;
  +            finfo.protection |= APR_WWRITE;
  +        }
       }
  -    if (attributes & APR_FILE_ATTR_EXECUTABLE) {
  -        /* ### TODO: should this be umask'd? */
  -        finfo.protection |= APR_UEXECUTE;
  -        finfo.protection |= APR_GEXECUTE;
  -        finfo.protection |= APR_WEXECUTE;
  +
  +    if (attr_mask & APR_FILE_ATTR_EXECUTABLE)
  +    {
  +        if (attributes & APR_FILE_ATTR_EXECUTABLE)
  +        {
  +            /* ### umask this! */
  +            finfo.protection |= APR_UEXECUTE;
  +            finfo.protection |= APR_GEXECUTE;
  +            finfo.protection |= APR_WEXECUTE;
  +        }
  +        else
  +        {
  +            finfo.protection &= ~APR_UEXECUTE;
  +            finfo.protection &= ~APR_GEXECUTE;
  +            finfo.protection &= ~APR_WEXECUTE;
  +        }
       }
   
  -   return apr_file_perms_set(fname, finfo.protection);
  +    return apr_file_perms_set(fname, finfo.protection);
   }
  -                                                  
  +
   APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, 
                                      const char *fname, 
                                      apr_int32_t wanted, apr_pool_t *cont)
  
  
  
  1.65      +8 -4      apr/file_io/win32/filestat.c
  
  Index: filestat.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/filestat.c,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- filestat.c	10 Feb 2002 22:36:41 -0000	1.64
  +++ filestat.c	11 Feb 2002 21:03:44 -0000	1.65
  @@ -620,6 +620,7 @@
   
   APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname,
                                                apr_fileattrs_t attributes,
  +                                             apr_fileattrs_t attr_mask,
                                                apr_pool_t *cont)
   {
       DWORD flags;
  @@ -648,10 +649,13 @@
       if (flags == 0xFFFFFFFF)
           return apr_get_os_error();
   
  -    if (attributes & APR_FILE_ATTR_READONLY)
  -        flags |= FILE_ATTRIBUTE_READONLY;
  -    else
  -        flags &= !FILE_ATTRIBUTE_READONLY;
  +    if (attr_mask & APR_FILE_ATTR_READONLY)
  +    {
  +        if (attributes & APR_FILE_ATTR_READONLY)
  +            flags |= FILE_ATTRIBUTE_READONLY;
  +        else
  +            flags &= ~FILE_ATTRIBUTE_READONLY;
  +    }
   
   #if APR_HAS_UNICODE_FS
       IF_WIN_OS_IS_UNICODE
  
  
  
  1.118     +3 -1      apr/include/apr_file_io.h
  
  Index: apr_file_io.h
  ===================================================================
  RCS file: /home/cvs/apr/include/apr_file_io.h,v
  retrieving revision 1.117
  retrieving revision 1.118
  diff -u -r1.117 -r1.118
  --- apr_file_io.h	1 Feb 2002 01:40:38 -0000	1.117
  +++ apr_file_io.h	11 Feb 2002 21:03:44 -0000	1.118
  @@ -126,7 +126,7 @@
   /** @} */
   
   /** File attributes */
  -typedef apr_int32_t apr_fileattrs_t;
  +typedef apr_uint32_t apr_fileattrs_t;
   
   /** should be same as whence type in lseek, POSIX defines this as int */
   typedef int       apr_seek_where_t;
  @@ -583,6 +583,7 @@
    *            APR_FILE_ATTR_READONLY   - make the file readonly
    *            APR_FILE_ATTR_EXECUTABLE - make the file executable
    * </PRE>
  + * @param attr_mask Mask of valid bits in attributes.
    * @param cont the pool to use.
    * @remark This function should be used in preference to explict manipulation
    *      of the file permissions, because the operations to provide these
  @@ -593,6 +594,7 @@
    */
   APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname,
                                                apr_fileattrs_t attributes,
  +                                             apr_fileattrs_t attr_mask,
                                                apr_pool_t *cont);
   
   /**