Commit Graph

85 Commits

Author SHA1 Message Date
ed
f58d00c87a Put some static keywords in the source code.
For these simple utilities, it doesn't harm to make all global variables
static. In fact, this allows the compiler to perform better forms of
optimisation and analysis.
2011-10-31 08:59:17 +00:00
jilles
2a22eeb6a2 bin: Prefer strrchr() to rindex().
This removes the last index/rindex usage from /bin.
2011-03-15 22:22:11 +00:00
joel
be2c32910f Spelling fixes. 2010-07-31 21:09:49 +00:00
jilles
ae7b50400b symlink(7): Add lpathconf(2) and *at system calls.
MFC after:	1 week
2010-04-25 13:29:59 +00:00
jilles
92afafdbae symlink(7): The ownership of symlinks is used by the system,
in at least three ways, so do not say it is ignored:
* who may delete/rename a symlink in a sticky directory
* who may do lchflags(2)/lchown(2)/lchmod(2)
* whose inode quota is charged

MFC after:	1 week
2010-04-25 13:13:23 +00:00
jilles
1a724f1dca ln: Allow a trailing slash when creating a link to a directory.
In the 'ln source... directory' synopsis, the basename of each source
determines the name of the created link. Determine this using basename(3)
instead of strrchr(..., '/') which is incorrect if the pathname ends in a
slash.

The patch is somewhat changed to allow for basename(3) implementations that
change the passed pathname, and to fix the -w option's checking also.
The code to compare directory entries only applies to hard links, which
cannot be created to directories using ln.

Example:
  ln -s /etc/defaults/ /tmp
This should create a symlink named defaults.

PR:		121568
Submitted by:	Ighighi
MFC after:	1 week
2010-04-21 21:57:03 +00:00
jilles
fd633ce008 ln: Refuse deleting a directory entry by hardlinking it to itself.
Two pathnames refer to the same directory entry iff the directories match
and the final components' names match.

Example: (assuming file1 is an existing file)
  ln -f file1 file1
This now fails while leaving file1 intact. It used to delete file1 and then
complain it cannot be linked because it is gone.

With -i, this error is detected before the question is asked.

MFC after:	2 weeks
2010-04-17 22:39:53 +00:00
jilles
afad68b5dc Allow creating hard links to symlinks using ln(1).
This implements the POSIX.1-2008 -L and -P flags.

The default remains to create hard links to the target of symlinks.

Approved by:	re (kib), ed (mentor)
2009-07-19 17:35:23 +00:00
trhodes
8bfbf05bde Clean up a bit of confusing language and improve .Nd.
PR:		47818
Reviewed by:	keramida
2009-01-13 15:24:35 +00:00
keramida
3902e2cc48 Unbreak last commit to ln for amd64.
Cast string precision to `int'.  amd64 systems warn about the
field precision being `long int' if we don't, and pathnames are
normally short enough to fit in an `int'.

Noticed by:	pav
2008-06-07 09:37:30 +00:00
keramida
fd86b4a48c Add a -w warning flag to ln(1). When the -w option is enabled,
ln(1) checks to see if the source of a symlink, i.e. the file it
should point to actually exists.  The default is the old ln
behavior, that does not check, to avoid surprising people who may
be using ln(1) in scripts or other non-interactive places.

PR:		bin/7265
Submitted by:	Joel Ray Holveck, detlev!joelh at mail.camalott.com
MFC after:	2 weeks
2008-06-06 08:27:59 +00:00
ru
3371e72606 Express in the usage() and SYNOPSIS that -F depends on -s, and
that -f and -i are exclusive.
2007-11-17 21:01:22 +00:00
ru
4a831eed37 Swap "source"/"target" where appropriate, to match documentation. 2007-11-17 20:24:58 +00:00
glebius
e85d27fb5c Add '-F' option which allows to delete existing empty directories, when
creating symbolic links.

PR:		bin/92149
Submitted by:	Eugene Grosbein <eugen grosbein.pp.ru>
2006-02-14 11:08:05 +00:00
ru
1541af42f1 Expand *n't contractions. 2005-02-13 22:25:33 +00:00
ru
978b8f7f1d Sync program's usage() with manpage's SYNOPSIS. 2005-02-09 17:37:39 +00:00
ru
ffd9fd4c0e Add the new standard EXIT STATUS section where appropriate.
Sort standard sections in the (documented) preferred order.
2005-01-16 16:41:59 +00:00
imp
a76898b849 /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
ru
305463f129 Deal with double whitespace. 2004-07-03 00:06:28 +00:00
ru
d40c857e0d Mechanically kill hard sentence breaks. 2004-07-02 21:04:19 +00:00
ru
4b39413aeb Removed trailing whitespace. 2004-07-02 19:07:33 +00:00
markm
4383f14801 Remove clause 3 from the UCB licenses.
OK'ed by:	imp, core
2004-04-06 20:06:54 +00:00
obrien
eaf3fff90a Quiet warnings about copyright[]. 2003-05-01 16:58:57 +00:00
trhodes
9618da3e35 s/filesystem/file system/ as discussed on -developers 2002-08-21 17:32:44 +00:00
tjr
3a69a33134 Claim conformance to 1003.2-1992 instead of 1003.1-2001 due to doubts
raised by Lukas Ertl over symbolic link handling.

PR:		41576
MFC after:	1 week
2002-08-12 12:34:03 +00:00
markm
c55a4dc47c Fix an easy WARNS. 2002-07-31 16:53:59 +00:00
obrien
c84c569bd1 Consistently use __FBSDID 2002-06-30 05:13:54 +00:00
tjr
c2f443c824 Check that snprintf() does not truncate the destination pathname when
linking into a directory.
2002-06-29 04:10:40 +00:00
tjr
c239ae84e2 ln(1)'s symbolic link handling conforms to IEEE Std. 1003.1-2001, note
this in the Standards section.
2002-06-25 10:02:12 +00:00
tjr
18ad02fa6d Correctly mark up the final command line arguments with the Ar macro for
the last two synopsis forms.
2002-06-25 09:58:29 +00:00
tjr
a9256c24d5 Reject options, handle "--" end-of-options marker in link(1). 2002-05-30 00:57:38 +00:00
ru
d8884723c1 mdoc(7) police: punctuation. 2002-05-29 15:06:24 +00:00
tjr
77288420b0 Note that the lutimes(2) and lchflags(2) syscalls also do not follow symlinks.
Remove incorrect examples.

PR:		25016
Submitted by:	Martin Kammerhofer, Joshua Goodall
2002-05-26 12:51:38 +00:00
tjr
4cc401e5ef Add lchmod(2) to the list of syscalls that do not follow symbolic links. 2002-05-26 12:12:36 +00:00
trhodes
56036d2623 Consistancy check s/file system/filesystem/
Reviewed by:	brian
2002-05-16 01:57:20 +00:00
jedgar
818f9c0a64 Add semicolon to empty default case to silence warning. 2002-05-11 00:45:01 +00:00
markm
2e9a506a04 Fix warnings inspired by lint, a commercial lint and WARNS=4. 2002-02-22 21:11:03 +00:00
imp
50014e3541 o __P has been reoved
o Old-style K&R declarations have been converted to new C89 style
o register has been removed
o prototype for main() has been removed (gcc3 makes it an error)
o int main(int argc, char *argv[]) is the preferred main definition.
o Attempt to not break style(9) conformance for declarations more than
  they already are.
2002-02-02 06:48:10 +00:00
obrien
099f8ecbe9 Default to WARNS=2. Binary builds that cannot handle this must explicitly
set WARNS=0.

Reviewed by:	mike
2001-12-04 01:57:47 +00:00
ru
24c7b0a61d mdoc(7) police: s/BSD/.Bx/ where appropriate. 2001-08-14 10:01:54 +00:00
dd
a145482cf6 Remove whitespace at EOL. 2001-07-15 07:53:42 +00:00
ru
2149a5069b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 10:04:09 +00:00
dd
d705df8034 WARNS= -> WARNS?=
Submitted by:	Mike Barcroft <mike@q9media.com>
2001-06-22 21:38:30 +00:00
imp
bd38254e2e Use PATH_MAX in preference to MAXPATHLEN.
Also sort declarations per style(9) (big arrays come last) while I'm
in the area.
2001-05-29 17:27:56 +00:00
kris
87fe6c7de0 Silence WARNS=2 and BDECFLAGS on i386 and alpha
MFC After:	1 week
2001-05-20 04:54:15 +00:00
ru
3da5e6c90c Fixed a typo. 2001-04-27 08:12:45 +00:00
sobomax
376d2cec8e Put a note that -h' and -n' is non-standard and provided only for
compatibility purposes.

Prompted by:	ru
2001-04-27 08:00:19 +00:00
sobomax
d7706ae588 Bring in -h' compatability option and its alias -n' to match NetBSD and GNU
semantics.

style(9) Reviewed by:
Obtained from:	NetBSD
2001-04-26 17:15:57 +00:00
ru
011f71f63c MAN[1-9] -> MAN. 2001-03-27 10:03:10 +00:00
jdp
8c6da5a7af Note that rmdir(2) does not follow symbolic links. 2001-01-24 23:49:59 +00:00