about summary refs log tree commit diff
path: root/lr.c
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2015-10-22 23:03:54 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2015-10-22 23:03:54 +0200
commit9a5679ccca2bdd67d9a238b0c2ec306428cf612c (patch)
treed1ae69e8a1a05644a2035aa4da4500f82b37c331 /lr.c
parent668380475e91248dde4766079a9dcc979b1415a0 (diff)
downloadlr-9a5679ccca2bdd67d9a238b0c2ec306428cf612c.tar.gz
lr-9a5679ccca2bdd67d9a238b0c2ec306428cf612c.tar.xz
lr-9a5679ccca2bdd67d9a238b0c2ec306428cf612c.zip
hardcode -> for -l
Diffstat (limited to 'lr.c')
-rw-r--r--lr.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/lr.c b/lr.c
index 77ebce0..2dc947b 100644
--- a/lr.c
+++ b/lr.c
@@ -36,6 +36,7 @@ int Hflag = 0;
 int Lflag = 0;
 int xflag = 0;
 int Uflag = 0;
+int lflag = 0;
 
 char *format;
 char *ordering;
@@ -560,8 +561,6 @@ print(const void *nodep, const VISIT which, const int depth)
 				case 'i': printf("%ld", fi->sb.st_ino); break;
 				case 'p': printf("%s", fi->fpath); break;
 				case 'l': printf("%s", readlin(fi->fpath, "")); break;
-				case 'L': if (S_ISLNK(fi->sb.st_mode))
-						printf(" -> "); break;
 				case 'n': printf("%ld", fi->sb.st_nlink); break;
 				case 'F':
 					if (S_ISDIR(fi->sb.st_mode)) {
@@ -571,7 +570,10 @@ print(const void *nodep, const VISIT which, const int depth)
 					} else if (S_ISFIFO(fi->sb.st_mode)) {
 						putchar('|');
 					} else if (S_ISLNK(fi->sb.st_mode)) {
-						putchar('@');
+						if (lflag)
+							printf(" -> ");
+						else
+							putchar('@');
 					} else if (fi->sb.st_mode & S_IXUSR) {
 						putchar('*');
 					}
@@ -726,7 +728,7 @@ main(int argc, char *argv[])
 	format = "%p\\n";
 	ordering = "n";
 
-	while ((c = getopt(argc, argv, "df:t:o:xLHUl0")) != -1)
+	while ((c = getopt(argc, argv, "df:t:o:xLFHUl0")) != -1)
 		switch(c) {
 		case 'd': dflag++; break;
 		case 'f': format = optarg; break;
@@ -738,9 +740,10 @@ main(int argc, char *argv[])
 		case 'U': Uflag++; break;
 		case '0': format = "%p\\0"; break;
 		case 'l':
-			// todo: print symlinks
+			lflag++;
 			// "%M %2n %u %g %9s %TY-%Tm-%Td %TH:%TM %p%F\n"; break;
-			format = "%M %n %u %g %s %MY-%Mm-%Md %MH:%MM %p%F%L%l\n"; break;
+			format = "%M %n %u %g %s %MY-%Mm-%Md %MH:%MM %p%F%l\n"; break;
+		case 'F': format = "%p%F\\n"; break;
 		default:
 			fprintf(stderr, "Usage: %s [-oxL] PATH...\n", argv[0]);
 			exit(2);