poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[COMMITTED 4/4] poked,pokefmt: get rid of `err.h'


From: Mohammad-Reza Nabipoor
Subject: [COMMITTED 4/4] poked,pokefmt: get rid of `err.h'
Date: Sun, 11 Feb 2024 11:18:11 +0100

`err.h' is not available on some (old) systems.  This commit
replace them with a local implementation.

2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * poked/poked.c (#include <err.h>): Remove.
        (#include <stdarg.h>): Add.
        (err): New function.
        (errx): Likewise.
        * pokefmt/pokefmt.l (#include <err.h>): Remove.
        (#include <stdarg.h>): Add.
        (err): New function.
        (errx): Likewise.
---

Hi Jose.

Do you think this is safe to be included in the maint/poke-4?


Regards,
Mohammad-Reza


 ChangeLog         | 11 +++++++++++
 poked/poked.c     | 30 +++++++++++++++++++++++++++++-
 pokefmt/pokefmt.l | 33 ++++++++++++++++++++++++++++++++-
 3 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5c4071f2..1e3cf704 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * poked/poked.c (#include <err.h>): Remove.
+       (#include <stdarg.h>): Add.
+       (err): New function.
+       (errx): Likewise.
+       * pokefmt/pokefmt.l (#include <err.h>): Remove.
+       (#include <stdarg.h>): Add.
+       (err): New function.
+       (errx): Likewise.
+
 2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
 
        * poked/usock.c (usock_handle_notif): Handle `EWOULDBLOCK'
diff --git a/poked/poked.c b/poked/poked.c
index 9cb8de50..aa67d8ce 100644
--- a/poked/poked.c
+++ b/poked/poked.c
@@ -22,8 +22,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdarg.h>
 
-#include <err.h>
 #include <getopt.h>
 #include <pthread.h>
 #include <unistd.h>
@@ -33,6 +33,34 @@
 #include "libpoke.h"
 #include "configmake.h"
 
+//--- err and errx implementation
+
+static void
+errx(int eval, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  vfprintf (stderr, fmt, ap);
+  va_end (ap);
+  fprintf (stderr, "\n");
+  exit (eval);
+}
+
+static void
+err(int eval, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  vfprintf (stderr, fmt, ap);
+  va_end (ap);
+  fprintf (stderr, ": %s\n", strerror (errno));
+  exit (eval);
+}
+
+//---
+
 pk_compiler pkc;
 struct usock *srv;
 
diff --git a/pokefmt/pokefmt.l b/pokefmt/pokefmt.l
index f95f54f5..ac69bef0 100644
--- a/pokefmt/pokefmt.l
+++ b/pokefmt/pokefmt.l
@@ -130,8 +130,8 @@ struct source_range
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdarg.h>
 
-#include <err.h>
 #include <getopt.h>
 #include <unistd.h>
 
@@ -139,6 +139,9 @@ struct source_range
 #include "libpoke.h"
 #include "pk-utils.h"
 
+static void errx(int eval, const char *fmt, ...);
+static void err(int eval, const char *fmt, ...);
+
 struct poke
 {
   pk_compiler compiler;
@@ -257,6 +260,34 @@ main (int argc, char *argv[])
   return 0;
 }
 
+//--- err and errx implementation
+
+static void
+errx(int eval, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  vfprintf (stderr, fmt, ap);
+  va_end (ap);
+  fprintf (stderr, "\n");
+  exit (eval);
+}
+
+static void
+err(int eval, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  vfprintf (stderr, fmt, ap);
+  va_end (ap);
+  fprintf (stderr, ": %s\n", strerror (errno));
+  exit (eval);
+}
+
+//---
+
 static void
 pokefmt_version (void)
 {
-- 
2.43.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]