From: Guillem Jover Date: Wed, 3 Aug 2022 01:05:52 +0000 (+0200) Subject: man: Rewrite gerprogname(3bsd) from scratch X-Git-Tag: 0.11.7~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4baceb82c1de18eed363930632284455ddfec4b;p=thirdparty%2Flibbsd.git man: Rewrite gerprogname(3bsd) from scratch This gets rid of one of the last man pages with a BSD-4-clause license. --- diff --git a/COPYING b/COPYING index 18b996a..67223d4 100644 --- a/COPYING +++ b/COPYING @@ -37,39 +37,6 @@ License: BSD-4-clause-Niels-Provos (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Files: - man/getprogname.3bsd -Copyright: - Copyright © 2001 Christopher G. Demetriou - All rights reserved. -License: BSD-4-clause-Christopher-G-Demetriou - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed for the - NetBSD Project. See http://www.netbsd.org/ for - information about NetBSD. - 4. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Files: include/bsd/err.h include/bsd/stdlib.h diff --git a/man/getprogname.3bsd b/man/getprogname.3bsd index 0c74c64..e933f34 100644 --- a/man/getprogname.3bsd +++ b/man/getprogname.3bsd @@ -1,6 +1,4 @@ -.\" -.\" Copyright (c) 2001 Christopher G. Demetriou -.\" All rights reserved. +.\" Copyright (c) 2022 Guillem Jover .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -10,34 +8,27 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed for the -.\" NetBSD Project. See http://www.netbsd.org/ for -.\" information about NetBSD. -.\" 4. The name of the author may not be used to endorse or promote products +.\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. +.\" . +.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd May 1, 2001 +.Dd August 03, 2022 .Dt getprogname 3bsd .Os .Sh NAME .Nm getprogname , .Nm setprogname -.Nd get or set the program name +.Nd get and set program name .Sh LIBRARY .ds str-Lb-libbsd Utility functions from BSD systems (libbsd, \-lbsd) .ds doc-str-Lb-libbsd \*[str-Lb-libbsd] @@ -54,46 +45,39 @@ for include usage.) .Sh DESCRIPTION The .Fn getprogname -and -.Fn setprogname -functions manipulate the name of the current program. -They are used by error-reporting routines to produce -consistent output. -.Pp -The -.Fn getprogname -function returns the name of the program. -If the name has not been set yet, it will return -.Dv NULL . +returns a string with the current program name, +excluding any directory component. +The function will return +.Dv NULL +if it was unable to get the program name from any known source. .Pp The .Fn setprogname -function sets the name of the program to be the last component of the -.Fa progname -argument. -Since a pointer to the given string is kept as the program name, -it should not be modified for the rest of the program's lifetime. +function sets the current program name, +stripping any directory component prefix. +The function will keep a reference to the passed string pointer, +so it must not be freed or modified while these functions might +be called. .Pp -In -.Fx , -the name of the program is set by the start-up code that is run before -.Fn main ; -thus, -running -.Fn setprogname -is not necessary. -Programs that desire maximum portability should still call it; -on another operating system, -these functions may be implemented in a portability library. -Calling -.Fn setprogname -allows the aforementioned library to learn the program name without -modifications to the start-up code. +The implementations on most BSDs will try to initialize the program name +at program startup time, and +.Nm libbsd +will try to infer it from various known sources depending on the +target system. +But it is not a portable assumption that the program name will be set +without calling +.Fn setprogname , +so portable programs should always call it after starting up. .Sh SEE ALSO -.Xr err 3 , -.Xr setproctitle 3bsd +.Xr setproctitle 3bsd . .Sh HISTORY -These functions first appeared in +The +.Fn setprogname +and +.Fn getprogname +functions first appeared in .Nx 1.6 , -and made their way into -.Fx 4.4 . +.Fx 4.4 , +.Dx 2.1 +and +.Ox 5.4 .