Files
macports-ports/sysutils/rmlint/files/patch-darwin-old.diff

120 lines
2.7 KiB
Diff

See: https://gist.github.com/ingramj/1105106/adfad1a7b1f0575dd7737c296d644856f2c2d074
--- lib/cmdline.c.orig 2020-06-13 17:42:45.000000000 +0800
+++ lib/cmdline.c 2022-05-31 20:35:42.000000000 +0800
@@ -39,6 +39,97 @@
#include <search.h>
#include <sys/time.h>
+#if defined(__APPLE__)
+#if __STDC_VERSION__ >= 199901L
+/* restrict is a keyword */
+#else
+# define restrict
+#endif
+
+#ifndef _POSIX_SOURCE
+typedef long ssize_t;
+#define SSIZE_MAX LONG_MAX
+#endif
+
+ssize_t getdelim(char **restrict lineptr, size_t *restrict n, int delimiter,
+ FILE *restrict stream);
+ssize_t getline(char **restrict lineptr, size_t *restrict n,
+ FILE *restrict stream);
+
+#define _GETDELIM_GROWBY 128 /* amount to grow line buffer by */
+#define _GETDELIM_MINLEN 4 /* minimum line buffer size */
+
+ssize_t getdelim(char **restrict lineptr, size_t *restrict n, int delimiter,
+ FILE *restrict stream)
+{
+ char *buf, *pos;
+ int c;
+ ssize_t bytes;
+
+ if (lineptr == NULL || n == NULL) {
+ errno = EINVAL;
+ return -1;
+ }
+ if (stream == NULL) {
+ errno = EBADF;
+ return -1;
+ }
+
+ /* resize (or allocate) the line buffer if necessary */
+ buf = *lineptr;
+ if (buf == NULL || *n < _GETDELIM_MINLEN) {
+ buf = realloc(*lineptr, _GETDELIM_GROWBY);
+ if (buf == NULL) {
+ /* ENOMEM */
+ return -1;
+ }
+ *n = _GETDELIM_GROWBY;
+ *lineptr = buf;
+ }
+
+ /* read characters until delimiter is found, end of file is reached,
+ or an error occurs. */
+ bytes = 0;
+ pos = buf;
+ while ((c = getc(stream)) != EOF) {
+ if (bytes + 1 >= SSIZE_MAX) {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ bytes++;
+ if (bytes >= *n - 1) {
+ buf = realloc(*lineptr, *n + _GETDELIM_GROWBY);
+ if (buf == NULL) {
+ /* ENOMEM */
+ return -1;
+ }
+ *n += _GETDELIM_GROWBY;
+ pos = buf + bytes - 1;
+ *lineptr = buf;
+ }
+
+ *pos++ = (char) c;
+ if (c == delimiter) {
+ break;
+ }
+ }
+
+ if (ferror(stream) || (feof(stream) && (bytes == 0))) {
+ /* EOF, or an error from getc(). */
+ return -1;
+ }
+
+ *pos = '\0';
+ return bytes;
+}
+
+ssize_t getline(char **restrict lineptr, size_t *restrict n,
+ FILE *restrict stream)
+{
+ return getdelim(lineptr, n, '\n', stream);
+}
+#endif
+
#include "cmdline.h"
#include "formats.h"
#include "hash-utility.h"
# See: https://github.com/hboetes/mg/issues/7#issuecomment-475869095
--- lib/traverse.c.orig 2020-06-13 17:42:45.000000000 +0800
+++ lib/traverse.c 2022-05-31 19:48:09.000000000 +0800
@@ -41,6 +41,12 @@
#include "fts/fts.h"
+#if defined(__APPLE__)
+#define st_atim st_atimespec
+#define st_ctim st_ctimespec
+#define st_mtim st_mtimespec
+#endif
+
//////////////////////
// TRAVERSE SESSION //
//////////////////////