Currently dired mode doesn't use the adjustname() function early
enough when passed ~. For example typing 'M-x dired', then:
Dired: ~
Doesn't open your home directory. However, with this diff mg behaves
like emacs.
ok?
mark
Index: dired.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/dired.c,v
retrieving revision 1.56
diff -u -p -r1.56 dired.c
--- dired.c 29 May 2013 19:16:48 -0000 1.56
+++ dired.c 29 May 2013 19:38:33 -0000
@@ -754,11 +754,6 @@ dired_(char *dname)
int i;
size_t len;
- if ((access(dname, R_OK | X_OK)) == -1) {
- if (errno == EACCES)
- ewprintf("Permission denied");
- return (NULL);
- }
if ((dname = adjustname(dname, FALSE)) == NULL) {
ewprintf("Bad directory name");
return (NULL);
@@ -768,6 +763,11 @@ dired_(char *dname)
if (dname[len - 1] != '/') {
dname[len++] = '/';
dname[len] = '\0';
+ }
+ if ((access(dname, R_OK | X_OK)) == -1) {
+ if (errno == EACCES)
+ ewprintf("Permission denied");
+ return (NULL);
}
if ((bp = findbuffer(dname)) == NULL) {
ewprintf("Could not create buffer");