ccbf4bcd73
ufraw includes jasper headers from a C++ file, and jasper relies in int_limit.h defines. But NetBSD only defines the macros in C mode, or in C++>=C11. Ask for the defines explicitly. Set ufraw to C99, and gc support for gcc before 3.
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
$NetBSD: patch-dcraw.cc,v 1.3 2023/05/13 11:55:55 gdt Exp $
|
|
|
|
The first hunk works around the combination of:
|
|
- NetBSD stdint.h/int_limit.sh not defining UINT_LEAST64_MAX in c++
|
|
mode before C++11
|
|
- ufraw including C headers in C++ mode
|
|
- ufraw being C++03
|
|
by just asking for the limit macros to be defined.
|
|
|
|
\todo Explain second hunk. This seems to be about avoiding a SWAP macro
|
|
and is likely not very interesting.
|
|
|
|
--- dcraw.cc.orig 2015-06-16 03:58:38.000000000 +0000
|
|
+++ dcraw.cc
|
|
@@ -24,6 +24,9 @@ extern "C" {
|
|
|
|
#define DCRAW_VERSION "9.26"
|
|
|
|
+/* Obtain UINT32_LEAST_MAX even in C++ mode. */
|
|
+#define __STDC_LIMIT_MACROS
|
|
+
|
|
#ifndef _GNU_SOURCE
|
|
#define _GNU_SOURCE
|
|
#endif
|
|
@@ -9240,11 +9243,15 @@ canon_a5:
|
|
filters = 0x16161616;
|
|
}
|
|
if (make[0] == 'O') {
|
|
- i = find_green (12, 32, 1188864, 3576832);
|
|
- c = find_green (12, 32, 2383920, 2387016);
|
|
- if (abs(i) < abs(c)) {
|
|
- SWAP(i,c);
|
|
+ float i_ = find_green (12, 32, 1188864, 3576832);
|
|
+ float c_ = find_green (12, 32, 2383920, 2387016);
|
|
+ if (abs(i_) < abs(c_)) {
|
|
+ c = i_;
|
|
+ i = c_;
|
|
load_flags = 24;
|
|
+ } else {
|
|
+ i = i_;
|
|
+ c = c_;
|
|
}
|
|
if ((int) i < 0) filters = 0x61616161;
|
|
}
|