чување fddfc84494f22d245c1a23b2f67bb2bbe05a4dfe
родитељ ad7dd428bef9bfd080c336c1d68b07b9ca1ddfe7
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sat, 8 Jun 2024 13:00:31 +0200
Bugfix: properly handle directories passed as argv[1]
Diffstat:
измењених датотека: 2, додавања: 4(+), брисања: 8(-)
diff --git a/TODO b/TODO
@@ -5,7 +5,7 @@ TODO
[ ] Bugfix: cursor after paste when on last line
-[ ] Bugfix: sled /; sled /etc; report "No such file or directory"
+[x] Bugfix: sled /; sled /etc; report "No such file or directory"
[ ] Check (and possibly remove) leftover constants
diff --git a/sled.c b/sled.c
@@ -216,11 +216,13 @@ dirname(char* dir, char* path, const size_t dir_size)
while (p != dir && *p != '/')
{
p--;
- if (*p == '/')
+ if (p != dir && *p == '/')
{
*p = 0;
return dir;
}
+ else if (p == dir)
+ return dir;
}
dir[0] = '.';
dir[1] = 0;
@@ -2648,12 +2650,6 @@ main(int argc, char** argv)
dir_access_errno = errno;
#ifdef BACKUP_FAIL_OK
state.backup_possible = dir_access != -1;
-#else /* !BACKUP_FAIL_OK */
- if (dir_access == -1)
- {
- errno = dir_access_errno;
- goto file_error;
- }
#endif /* BACKUP_FAIL_OK */
if (stat(state.filename, &st) == -1)
{