annotate modules/fstrcmp @ 17074:d4ccb0388f18
fts: reduce two or more trailing slashes to just one, usually
* lib/fts.c (fts_open): Upon initialization, if a name ends in two
or more slashes, trim all but the final one. But if a name consists
solely of two slashes, don't modify it. If it consists solely of
three or more slashes, strip all but one.
This is part of the solution to a minor problem with rm:
it would print a bogus ELOOP diagnostic when failing to remove
the slash-decorated name of a symlink-to-directory:
$ mkdir d && ln -s d s && env rm -r s/
rm: cannot remove 's': Too many levels of symbolic links
With the change below and a trivial don't-trim-trailing-slashes
adjustment to remove.c, it does this:
$ env rm -r s/
rm: cannot remove 's/': Not a directory
Improved by: Eric Blake
author |
Jim Meyering <meyering@redhat.com> |
date |
Tue, 04 Sep 2012 11:36:38 +0200 |
parents |
8c5ddfde42d6 |
children |
|
rev |
line source |
9151
|
1 Description: |
|
2 Fuzzy string comparison. |
|
3 |
|
4 Files: |
|
5 lib/fstrcmp.h |
|
6 lib/fstrcmp.c |
|
7 |
|
8 Depends-on: |
|
9 diffseq |
|
10 lock |
|
11 tls |
|
12 minmax |
|
13 xalloc |
|
14 |
|
15 configure.ac: |
|
16 |
|
17 Makefile.am: |
|
18 lib_SOURCES += fstrcmp.h fstrcmp.c |
|
19 |
|
20 Include: |
|
21 "fstrcmp.h" |
|
22 |
|
23 License: |
|
24 GPL |
|
25 |
|
26 Maintainer: |
|
27 Bruno Haible |
|
28 |