Changeset 1715 for trunk


Ignore:
Timestamp:
Dec 7, 2004, 5:19:13 AM (21 years ago)
Author:
bird
Message:

Fixed some broken dir resolving. (incorrect flags)

Location:
trunk/src/emx/src/lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/lib/misc/dirent.c

    • Property cvs2svn:cvs-rev changed from 1.6 to 1.7
    r1714 r1715  
    1212#include <emx/syscalls.h>
    1313#include <emx/umalloc.h>
     14#define __LIBC_LOG_GROUP __LIBC_LOG_GRP_IO
     15#include <InnoTekLIBC/logstrict.h>
    1416
    1517
     
    5052DIR *_STD(opendir)(const char *name)
    5153{
     54    LIBCLOG_ENTER("name=%p:{%s}\n", (void *)name, name);
    5255    struct stat             statb;
    5356    struct _find            find;
     
    7477     */
    7578    if (stat(nbuf, &statb) < 0)
    76         return NULL;
     79        LIBCLOG_RETURN_P(NULL);
    7780    if ((statb.st_mode & S_IFMT) != S_IFDIR)
    7881    {
    7982        errno = ENOTDIR;
    80         return NULL;
     83        LIBCLOG_RETURN_P(NULL);
    8184    }
    8285
     
    9093    {
    9194        errno = ENOMEM;
    92         return NULL;
     95        LIBCLOG_RETURN_P(NULL);
    9396    }
    9497    if (!*psz) /* If dot was added. */
     
    102105    {
    103106        errno = ENOMEM;
    104         return pdir; /* why no free and return? */
     107        LIBCLOG_RETURN_P(pdir); /* why no free and return? */
    105108    }
    106109
     
    121124            free_dircontents(pdir->dd_contents);
    122125            errno = ENOMEM;
    123             return NULL;
     126            LIBCLOG_RETURN_P(NULL);
    124127        }
    125128        dp->_d_entry = (char*)(dp + 1);
     
    151154    pdir->dd_cp = pdir->dd_contents;
    152155    errno = saved_errno; /* getdirent/findnext sets errno when done */
    153     return pdir;
     156    LIBCLOG_RETURN_P(pdir);
    154157}
    155158
     
    157160int _STD(readdir_r)(DIR *dirp, struct dirent *pdent, struct dirent **ppdent)
    158161{
     162    LIBCLOG_ENTER("dirp=%p pdent=%p ppdent=%p\n", (void *)dirp, (void *)pdent, (void *)ppdent);
    159163    int cch;
    160164    /* done? */
     
    163167        errno = ENOENT;
    164168        *ppdent = NULL;
    165         return -1;
     169        LIBCLOG_RETURN_P(-1);
    166170    }
    167171
     
    188192    dirp->dd_loc++;
    189193    *ppdent = pdent;
    190     return 0;
     194    LIBCLOG_RETURN_P(0);
    191195}
    192196
     
    203207void _STD(seekdir)(DIR *dirp, long off)
    204208{
     209    LIBCLOG_ENTER("dirp=%p off=%ld\n", (void *)dirp, off);
    205210    if (off >= 0)
    206211    {
     
    216221    else
    217222        errno = EINVAL;
     223    LIBCLOG_RETURN_VOID();
    218224}
    219225
     
    227233long _STD(telldir)(DIR *dirp)
    228234{
    229     return dirp->dd_loc;
     235    LIBCLOG_ENTER("dirp=%p\n", (void *)dirp);
     236    LIBCLOG_RETURN_LONG(dirp->dd_loc);
    230237}
    231238
     
    233240int _STD(closedir)(DIR *dirp)
    234241{
     242    LIBCLOG_ENTER("dirp=%p\n", (void *)dirp);
    235243    free_dircontents(dirp->dd_contents);
    236244    free(dirp);
    237     return 0;
    238 }
    239 
     245    LIBCLOG_RETURN_INT(0);
     246}
     247
  • trunk/src/emx/src/lib/sys/b_fsFileStat.c

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1714 r1715  
    5252     */
    5353    char szNativePath[PATH_MAX];
    54     int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL, szNativePath, NULL);
     54    int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL | BACKFS_FLAGS_RESOLVE_DIR_MAYBE, szNativePath, NULL);
    5555    if (!rc)
    5656        rc = __libc_back_fsNativeFileStat(szNativePath, pStat);
  • trunk/src/emx/src/lib/sys/b_fsPathResolve.c

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r1714 r1715  
    6666    int     fInUnixTree;
    6767    char    szNativePath[PATH_MAX];
    68     rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL, szNativePath, &fInUnixTree);
     68    rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL | BACKFS_FLAGS_RESOLVE_DIR_MAYBE, szNativePath, &fInUnixTree);
    6969    if (!rc)
    7070    {
  • trunk/src/emx/src/lib/sys/b_fsStat.c

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r1714 r1715  
    7575    /** @todo Check if fsstat() can work on a non-existing path spec. */
    7676    char szNativePath[PATH_MAX];
    77     int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL, &szNativePath[0], NULL);
     77    int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL | BACKFS_FLAGS_RESOLVE_DIR_MAYBE, &szNativePath[0], NULL);
    7878    if (rc)
    7979        LIBCLOG_RETURN_INT(rc);
  • trunk/src/emx/src/lib/sys/b_fsSymlinkStat.c

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.3
    r1714 r1715  
    5353     */
    5454    char szNativePath[PATH_MAX];
    55     int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_PARENT, szNativePath, NULL);
     55    int rc = __libc_back_fsResolve(pszPath, BACKFS_FLAGS_RESOLVE_FULL, szNativePath, NULL);
    5656    if (!rc)
    5757        rc = __libc_back_fsNativeFileStat(szNativePath, pStat);
Note: See TracChangeset for help on using the changeset viewer.