X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-lib%2Ffile.c;h=ed74aada186c8e75f576645b2e984707b3902df2;hb=66572f4a9c4574c9f2a2c3ef59526ac66b807b0b;hp=946d86725533c443cc32a5a906c06d850b816ff1;hpb=8336b26fc23c7943bf6681ba2c290bb5cd2c54b8;p=apps%2Fmadmutt.git diff --git a/lib-lib/file.c b/lib-lib/file.c index 946d867..ed74aad 100644 --- a/lib-lib/file.c +++ b/lib-lib/file.c @@ -70,7 +70,7 @@ int safe_open(const char *path, int flags) return -1; } - return (fd); + return fd; } @@ -226,7 +226,7 @@ FILE *safe_fopen(const char *path, const char *mode) flags |= (mode[1] == '+' ? O_RDWR : O_WRONLY); if ((fd = safe_open(path, flags)) < 0) - return (NULL); + return NULL; return fdopen (fd, mode); } @@ -364,6 +364,26 @@ const char *mutt_basename(const char *f) return p ? p + 1 : f; } +ssize_t m_dirname(char *dst, ssize_t dlen, const char *path) +{ + ssize_t plen = m_strlen(path); + + while (plen > 0 && path[plen - 1] == '/') + plen--; + + while (plen > 0 && path[plen - 1] != '/') + plen--; + + while (plen > 0 && path[plen - 1] == '/') + plen--; + + if (plen) + return m_strncpy(dst, dlen, path, plen); + + if (*path == '/') + return m_strcpy(dst, dlen, "/"); + return m_strcpy(dst, dlen, "."); +} char * mutt_concat_path(char *d, ssize_t n, const char *dir, const char *fname)