Commit 5bd834027d4c6b520ee058d753b479e31e6faf26

Robert Millan 2006-03-17T19:55:21

Add getprogname and setprogname

diff --git a/ChangeLog b/ChangeLog
index 0c7aaeb..814f041 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-03-17  Robert Millan  <rmh@aybabtu.com>
+
+	* src/progname.c: New file.
+	* include/bsd/stdlib.h: Add {get,set}progname declarations.
+	* Makefile (LIB_SRCS): Add 'progname.c'.
+	* Versions: Add getprogname and setprogname.
+
 2006-02-15  Guillem Jover  <guillem@debian.org>
 
 	* include/bsd/cdefs.h: Disable __unused, it conflicts with a struct
diff --git a/Makefile b/Makefile
index eea93c2..e84f454 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@
 #
 
 LIB_SRCS := arc4random.c bsd_getopt.c err.c fgetln.c inet_net_pton.c \
-	    strlcat.c strlcpy.c md5c.c fmtcheck.c
+	    strlcat.c strlcpy.c md5c.c fmtcheck.c progname.c
 LIB_SRCS := $(patsubst %,src/%,$(LIB_SRCS))
 
 LIB_INCLUDES := err.h getopt.h ip_icmp.h random.h queue.h md5.h string.h \
diff --git a/Versions b/Versions
index 318bbc3..77d3f29 100644
--- a/Versions
+++ b/Versions
@@ -7,6 +7,7 @@ LIBBSD_0.0 {
     fgetwln;
     fmtcheck;
     inet_net_pton;
+    getprogname; setprogname;
     strlcpy;
     strlcat;
     MD5Init;
diff --git a/include/bsd/stdlib.h b/include/bsd/stdlib.h
index ee358b6..25c37e2 100644
--- a/include/bsd/stdlib.h
+++ b/include/bsd/stdlib.h
@@ -1,6 +1,11 @@
 #ifndef LIBBSD_STDLIB_H
 #define LIBBSD_STDLIB_H
 
-const char *fmtcheck(const char *, const char *);
+#include <stdlib.h>
+
+const char *fmtcheck (const char *, const char *);
+
+char *getprogname ();
+void setprogname (char *);
 
 #endif
diff --git a/src/progname.c b/src/progname.c
new file mode 100644
index 0000000..c74d675
--- /dev/null
+++ b/src/progname.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2006 Robert Millan
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+/* 
+  Rejected in glibc (http://sourceware.org/ml/libc-alpha/2006-03/msg00125.html)
+*/
+
+#include <bsd/stdlib.h>
+
+static char *__progname;
+
+char *
+getprogname ();
+{
+  return __progname;
+}
+
+void
+setprogname (char *new);
+{
+  __progname = new;
+}