use lstat instead of stat in filestat, so we can check for if the file is a symlink in the browser
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@438 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
63c8ab94fb
commit
f0999a18f0
6
files.c
6
files.c
|
@ -1054,7 +1054,7 @@ char *input_tab(char *buf, int place, int *lastWasTab, int *newplace)
|
||||||
struct stat filestat(const char *path) {
|
struct stat filestat(const char *path) {
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
stat(path, &st);
|
lstat(path, &st);
|
||||||
return st;
|
return st;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1327,7 +1327,9 @@ char *do_browser(char *inpath)
|
||||||
if (S_ISDIR(st.st_mode))
|
if (S_ISDIR(st.st_mode))
|
||||||
strcpy(foo + longest - 5, "(dir)");
|
strcpy(foo + longest - 5, "(dir)");
|
||||||
else {
|
else {
|
||||||
if (st.st_size < 1024) /* less than 1 K */
|
if (S_ISLNK(st.st_mode))
|
||||||
|
strcpy(foo + longest - 2, "--");
|
||||||
|
else if (st.st_size < 1024) /* less than 1 K */
|
||||||
sprintf(foo + longest - 7, "%4d B", (int) st.st_size);
|
sprintf(foo + longest - 7, "%4d B", (int) st.st_size);
|
||||||
else if (st.st_size > 1073741824) /* at least 1 gig */
|
else if (st.st_size > 1073741824) /* at least 1 gig */
|
||||||
sprintf(foo + longest - 7, "%4d GB", (int) st.st_size / 1073741824);
|
sprintf(foo + longest - 7, "%4d GB", (int) st.st_size / 1073741824);
|
||||||
|
|
Loading…
Reference in New Issue