View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000044 | file | General | public | 2018-09-17 00:26 | 2018-10-01 18:48 |
| Reporter | anonymous | Assigned To | christos | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | resolved | Resolution | fixed | ||
| Product Version | 5.34 | ||||
| Fixed in Version | 5.35 | ||||
| Summary | 0000044: Obsolete HAVE_SIGNAL_H symbol | ||||
| Description | The <signal.h> header file is part of the standard C89 headers [1] and on current systems can be included unconditionally. Since file requires at least C89 or greater, the HAVE_SIGNAL_H symbol defined by Autoconf in configure.ac [2] can be ommitted and simplifed. Refs: [1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2 [2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4 Thank you. | ||||
| Additional Information | Pull request has been also opened on GitHub for better overview of the patch needed. https://github.com/file/file/pull/42 | ||||
| Tags | No tags attached. | ||||
|
|
42.patch (2,813 bytes)
From 0425c8e2760ebbb452ed0038c99356b20c945991 Mon Sep 17 00:00:00 2001
From: Peter Kokot <peterkokot@gmail.com>
Date: Mon, 17 Sep 2018 02:22:46 +0200
Subject: [PATCH] Remove HAVE_SIGNAL_H
The `<signal.h>` header file is part of the standard C89 headers [1]
and on current systems can be included unconditionally.
Since file requires at least C89 or greater, the `HAVE_SIGNAL_H` symbol
defined by Autoconf in configure.ac [2] can be ommitted and simplifed.
Refs:
[1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2
[2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
---
configure.ac | 7 ++-----
src/compress.c | 12 ++----------
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/configure.ac b/configure.ac
index ab4f6fc21..72d69ed66 100644
--- a/configure.ac
+++ b/configure.ac
@@ -92,15 +92,12 @@ AC_HEADER_MAJOR
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h)
AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h)
-AC_CHECK_HEADERS(getopt.h err.h xlocale.h signal.h)
+AC_CHECK_HEADERS(getopt.h err.h xlocale.h)
AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h)
if test "$enable_zlib" != "no"; then
AC_CHECK_HEADERS(zlib.h)
fi
-AC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif])
+AC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[#include <signal.h>])
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
diff --git a/src/compress.c b/src/compress.c
index 041ba4c6d..bfd45b443 100644
--- a/src/compress.c
+++ b/src/compress.c
@@ -47,12 +47,10 @@ FILE_RCSID("@(#)$File: compress.c,v 1.111 2018/09/11 16:33:21 christos Exp $")
#include <errno.h>
#include <ctype.h>
#include <stdarg.h>
-#ifdef HAVE_SIGNAL_H
#include <signal.h>
-# ifndef HAVE_SIG_T
+#ifndef HAVE_SIG_T
typedef void (*sig_t)(int);
-# endif /* HAVE_SIG_T */
-#endif
+#endif /* HAVE_SIG_T */
#if !defined(__MINGW32__) && !defined(WIN32)
#include <sys/ioctl.h>
#endif
@@ -228,16 +226,12 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name)
int fd = b->fd;
const unsigned char *buf = b->fbuf;
size_t nbytes = b->flen;
-#ifdef HAVE_SIGNAL_H
sig_t osigpipe;
-#endif
if ((ms->flags & MAGIC_COMPRESS) == 0)
return 0;
-#ifdef HAVE_SIGNAL_H
osigpipe = signal(SIGPIPE, SIG_IGN);
-#endif
for (i = 0; i < ncompr; i++) {
int zm;
if (nbytes < compr[i].maglen)
@@ -308,9 +302,7 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name)
out:
DPRINTF("rv = %d\n", rv);
-#ifdef HAVE_SIGNAL_H
(void)signal(SIGPIPE, osigpipe);
-#endif
free(newbuf);
ms->flags |= MAGIC_COMPRESS;
DPRINTF("Zmagic returns %d\n", rv);
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-09-17 00:26 | anonymous | New Issue | |
| 2018-09-17 00:26 | anonymous | File Added: 42.patch | |
| 2018-10-01 18:48 | christos | Assigned To | => christos |
| 2018-10-01 18:48 | christos | Status | new => assigned |
| 2018-10-01 18:48 | christos | Status | assigned => resolved |
| 2018-10-01 18:48 | christos | Resolution | open => fixed |
| 2018-10-01 18:48 | christos | Fixed in Version | => 5.35 |