pmaports/busybox/0012-diff-add-support-for-no-dereference.patch
Oliver Smith 1c0ff6aa23 Put postmarketOS aports inside pmbootstrap repo
Later, the aports folder will probably get split up in its own repository.
But right now this is simply convenient.
2017-05-26 22:26:25 +02:00

63 lines
2.5 KiB
Diff

From 56c14ec7f75a68c191f2fc210915108f428e849c Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 25 Jul 2014 15:28:33 +0200
Subject: [PATCH 12/12] diff: add support for --no-dereference
Add flag for not following symlinks when recursing
function old new delta
.rodata 7934 7967 +33
diff_longopts 253 270 +17
packed_usage 1704 1720 +16
diff_main 1665 1662 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 66/-3) Total: 63 bytes
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
editors/diff.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/editors/diff.c b/editors/diff.c
index 75229ad8c..6266bde0d 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -117,6 +117,9 @@
//usage: "\n -N Treat absent files as empty"
//usage: "\n -q Output only whether files differ"
//usage: "\n -r Recurse"
+//usage: IF_LONG_OPTS(
+//usage: "\n --no-dereference Don't follow symlinks"
+//usage: )
//usage: "\n -S Start with FILE when comparing directories"
//usage: "\n -T Make tabs line up by prefixing a tab when necessary"
//usage: "\n -s Report when two files are the same"
@@ -158,6 +161,7 @@ enum { /* Commandline flags */
FLAG_p, /* not implemented */
FLAG_B,
FLAG_E, /* not implemented */
+ FLAG_no_deref,
};
#define FLAG(x) (1 << FLAG_##x)
@@ -872,7 +876,8 @@ static void diffdir(char *p[2], const char *s_start)
* Using list.len to specify its length,
* add_to_dirlist will remove it. */
list[i].len = strlen(p[i]);
- recursive_action(p[i], ACTION_RECURSE | ACTION_FOLLOWLINKS,
+ recursive_action(p[i], ACTION_RECURSE |
+ ((option_mask32 & FLAG(no_deref)) ? 0 : ACTION_FOLLOWLINKS),
add_to_dirlist, skip_dir, &list[i], 0);
/* Sort dl alphabetically.
* GNU diff does this ignoring any number of trailing dots.
@@ -969,6 +974,7 @@ static const char diff_longopts[] ALIGN1 =
"report-identical-files\0" No_argument "s"
"starting-file\0" Required_argument "S"
"minimal\0" No_argument "d"
+ "no-dereference\0" No_argument "\xff"
;
#endif
--
2.11.0