View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000042 | file | General | public | 2018-09-16 07:06 | 2018-10-01 18:48 |
Reporter | petk | Assigned To | christos | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 5.34 | ||||
Fixed in Version | 5.35 | ||||
Summary | 0000042: Obsolete HAVE_LOCALE_H symbol | ||||
Description | The <locale.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_LOCALE_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 for additional info is at https://github.com/file/file/pull/40 | ||||
Tags | No tags attached. | ||||
|
40.patch (1,645 bytes)
From 9cfaa5e7aad4a3ae834e02323c3ed9252615b518 Mon Sep 17 00:00:00 2001 From: Peter Kokot <peterkokot@gmail.com> Date: Sun, 16 Sep 2018 05:48:14 +0200 Subject: [PATCH] Remove HAVE_LOCALE_H The `<locale.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_LOCALE_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 | 2 +- src/file.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index ab4f6fc21..b5e2c1c54 100644 --- a/configure.ac +++ b/configure.ac @@ -90,7 +90,7 @@ dnl Checks for headers AC_HEADER_STDC 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(stdint.h fcntl.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(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h) diff --git a/src/file.h b/src/file.h index c24e0a903..e0fb9d0e1 100644 --- a/src/file.h +++ b/src/file.h @@ -513,9 +513,7 @@ protected void buffer_init(struct buffer *, int, const void *, size_t); protected void buffer_fini(struct buffer *); protected int buffer_fill(const struct buffer *); -#if defined(HAVE_LOCALE_H) #include <locale.h> -#endif #if defined(HAVE_XLOCALE_H) #include <xlocale.h> #endif |
|
Have you tried building with visual studio (is it c89?)? |
|
Hello, I haven't build this with Visual Studio but I can check it out via some virtual machine how this works... Visual Studio 2015 and 2017 should both support C89 standard headers, yes. For example: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?view=vs-2015 |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-09-16 07:06 | petk | New Issue | |
2018-09-16 07:06 | petk | File Added: 40.patch | |
2018-09-17 00:37 | christos | Note Added: 0000073 | |
2018-09-17 01:32 | petk | Note Added: 0000074 | |
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 |