On Wed, Jun 19, 2024 at 06:44:56PM +0200, Theo Buehler wrote:
> These are the ports using strmode.
>
> archivers/libarchive
> archivers/libtar
> editors/emacs
> games/gemrb
> math/octave
> misc/findutils
> net/lftp
> security/ssh-ldap-helper
> shells/ksh93
> sysutils/bfs
> sysutils/colorls
> sysutils/coreutils
> sysutils/lnav
> sysutils/tarsnap
>
> Given the short list and the nature of the change, I don't think it's
> necessary to run a bulk, but inspecting a few of them would be good,
> especially libarchive and coreutils are depended upon by a lot of ports.
> And there's emacs in this list.
New diff, taking the suggestion (but not all of it, the implementation
can use mode_t as it includes sys/types.h
I tested base + coreutils + emacs builds with this.
-Otto
Index: include/string.h
===================================================================
RCS file: /home/cvs/src/include/string.h,v
diff -u -p -r1.32 string.h
--- include/string.h 5 Sep 2017 03:16:13 -0000 1.32
+++ include/string.h 20 Jun 2024 07:13:03 -0000
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
#include <sys/_null.h>
-#include <machine/_types.h>
+#include <sys/_types.h>
/*
* POSIX mandates that certain string functions not present in ISO C
@@ -128,7 +128,7 @@ size_t strlcat(char *, const char *, si
__attribute__ ((__bounded__(__string__,1,3)));
size_t strlcpy(char *, const char *, size_t)
__attribute__ ((__bounded__(__string__,1,3)));
-void strmode(int, char *);
+void strmode(__mode_t, char *);
char *strsep(char **, const char *);
int timingsafe_bcmp(const void *, const void *, size_t);
int timingsafe_memcmp(const void *, const void *, size_t);
Index: lib/libc/string/strmode.c
===================================================================
RCS file: /home/cvs/src/lib/libc/string/strmode.c,v
diff -u -p -r1.8 strmode.c
--- lib/libc/string/strmode.c 31 Aug 2015 02:53:57 -0000 1.8
+++ lib/libc/string/strmode.c 20 Jun 2024 07:13:03 -0000
@@ -32,10 +32,8 @@
#include <sys/stat.h>
#include <string.h>
-/* XXX mode should be mode_t */
-
void
-strmode(int mode, char *p)
+strmode(mode_t mode, char *p)
{
/* print type */
switch (mode & S_IFMT) {