2024-09-27 09:07:54 +02:00
|
|
|
From 87d363a5493e5a8803f23a7dfef353ddff3d3172 Mon Sep 17 00:00:00 2001
|
2014-07-28 12:48:17 +00:00
|
|
|
From: Natanael Copa <ncopa@alpinelinux.org>
|
2023-01-04 13:38:02 +01:00
|
|
|
Date: Fri, 25 Jul 2014 02:10:50 +0200
|
2018-08-04 00:11:42 +02:00
|
|
|
Subject: [PATCH] Add flag for not following symlinks when recursing
|
2014-07-28 12:48:17 +00:00
|
|
|
|
|
|
|
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
|
2023-01-04 13:38:02 +01:00
|
|
|
|
2014-07-28 12:48:17 +00:00
|
|
|
---
|
|
|
|
editors/diff.c | 8 +++++++-
|
|
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/editors/diff.c b/editors/diff.c
|
2023-01-04 13:38:02 +01:00
|
|
|
index 1adc4cbc7..f7c0f5250 100644
|
2014-07-28 12:48:17 +00:00
|
|
|
--- a/editors/diff.c
|
|
|
|
+++ b/editors/diff.c
|
2018-03-06 16:54:09 +01:00
|
|
|
@@ -113,6 +113,9 @@
|
2014-07-28 12:48:17 +00:00
|
|
|
//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"
|
2018-03-06 16:54:09 +01:00
|
|
|
@@ -154,6 +157,7 @@ enum { /* Commandline flags */
|
2014-07-28 12:48:17 +00:00
|
|
|
FLAG_p, /* not implemented */
|
|
|
|
FLAG_B,
|
|
|
|
FLAG_E, /* not implemented */
|
|
|
|
+ FLAG_no_deref,
|
|
|
|
};
|
|
|
|
#define FLAG(x) (1 << FLAG_##x)
|
|
|
|
|
2018-03-06 16:54:09 +01:00
|
|
|
@@ -867,7 +871,8 @@ static void diffdir(char *p[2], const char *s_start)
|
2014-07-28 12:48:17 +00:00
|
|
|
* 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 |
|
2014-08-23 01:46:51 +03:00
|
|
|
+ ((option_mask32 & FLAG(no_deref)) ? 0 : ACTION_FOLLOWLINKS),
|
2021-01-08 14:28:53 +01:00
|
|
|
add_to_dirlist, skip_dir, &list[i]);
|
2014-07-28 12:48:17 +00:00
|
|
|
/* Sort dl alphabetically.
|
|
|
|
* GNU diff does this ignoring any number of trailing dots.
|
2018-03-06 16:54:09 +01:00
|
|
|
@@ -964,6 +969,7 @@ static const char diff_longopts[] ALIGN1 =
|
2014-07-28 12:48:17 +00:00
|
|
|
"report-identical-files\0" No_argument "s"
|
|
|
|
"starting-file\0" Required_argument "S"
|
|
|
|
"minimal\0" No_argument "d"
|
|
|
|
+ "no-dereference\0" No_argument "\xff"
|
|
|
|
;
|
2018-03-06 16:54:09 +01:00
|
|
|
# define GETOPT32 getopt32long
|
|
|
|
# define LONGOPTS ,diff_longopts
|