Add getprogname and setprogname
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
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;
+}