0
0
Fork 0
haikuports/sys-apps/diffutils/patches/diffutils-3.7.patchset

304 lines
8.8 KiB
Plaintext

From 264b60b3ba542c7fafcc64397252a847e8034a60 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Tue, 9 Aug 2016 18:34:58 +0300
Subject: gcc2 fixes
diff --git a/src/dir.c b/src/dir.c
index 734603e..551c0fe 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -265,6 +265,7 @@ diff_dirs (struct comparison const *cmp,
/* Loop while files remain in one or both dirs. */
while (*names[0] || *names[1])
{
+ int v1;
/* Compare next name in dir 0 with next name in dir 1.
At the end of a dir,
pretend the "next name" in that dir is very large. */
@@ -305,7 +306,7 @@ diff_dirs (struct comparison const *cmp,
}
}
- int v1 = (*handle_file) (cmp,
+ v1 = (*handle_file) (cmp,
0 < nameorder ? 0 : *names[0]++,
nameorder < 0 ? 0 : *names[1]++);
if (val < v1)
@@ -363,7 +364,8 @@ find_dir_file_pathname (char const *dir, char const *file)
match = file; /* longjmp may mess up MATCH. */
else
{
- for (char const **p = dirdata.names; *p; p++)
+ char const **p;
+ for (p = dirdata.names; *p; p++)
if (compare_names (*p, file) == 0)
{
if (file_name_cmp (*p, file) == 0)
diff --git a/src/io.c b/src/io.c
index 6c03c70..5705101 100644
--- a/src/io.c
+++ b/src/io.c
@@ -281,6 +281,8 @@ find_and_hash_each_line (struct file_data *current)
size_t column = 0;
while ((c = *p++) != '\n')
{
+ size_t repetitions = 1;
+
if (ig_white_space & IGNORE_TRAILING_SPACE
&& isspace (c))
{
@@ -295,8 +297,6 @@ find_and_hash_each_line (struct file_data *current)
while (isspace (c1));
}
- size_t repetitions = 1;
-
if (ig_white_space & IGNORE_TAB_EXPANSION)
switch (c)
{
diff --git a/src/util.c b/src/util.c
index 4f4d9bb..cddec11 100644
--- a/src/util.c
+++ b/src/util.c
@@ -580,7 +580,7 @@ parse_diff_color (void)
int ind_no; /* Indicator number */
char label[3]; /* Indicator label */
struct color_ext_type *ext; /* Extension we are working on */
-
+ enum parse_state state = PS_START;
if ((p = color_palette) == NULL || *p == '\0')
return;
@@ -593,7 +593,6 @@ parse_diff_color (void)
advance. */
buf = color_buf = xstrdup (p);
- enum parse_state state = PS_START;
while (true)
{
switch (state)
--
2.19.1
From dc949e176ac2be4716680d799141a327a594fded Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Sun, 21 Aug 2016 05:35:54 +0000
Subject: additional gcc2 patch for diffutils-3.5.
diff --git a/src/diff3.c b/src/diff3.c
index ec414a9..59eebcd 100644
--- a/src/diff3.c
+++ b/src/diff3.c
@@ -264,6 +264,7 @@ main (int argc, char **argv)
char *commonname;
char **file;
struct stat statb;
+ char *b0, *b1;
exit_failure = EXIT_TROUBLE;
initialize_main (&argc, &argv);
@@ -415,7 +416,6 @@ main (int argc, char **argv)
/* Invoke diff twice on two pairs of input files, combine the two
diffs, and output them. */
- char *b0, *b1;
commonname = file[rev_mapping[FILEC]];
thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block, &b1);
thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block, &b0);
--
2.19.1
From e42bf41db1daa4ea086e121e48557c46ff4f0858 Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Sun, 21 Aug 2016 05:35:54 +0000
Subject: replace /usr/bin/perl by /bin/perl in man/help2man.
diff --git a/man/help2man b/man/help2man
index 304985c..b6ed40b 100755
--- a/man/help2man
+++ b/man/help2man
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/perl -w
# Generate a short man page from --help and --version output.
# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2018 Free Software Foundation,
--
2.19.1
From 7f7d8250c31613f5f11533685290d7ac93e45e95 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 23 Mar 2019 17:39:40 +0100
Subject: gcc2 patch for version 3.7.
diff --git a/lib/diffseq.h b/lib/diffseq.h
index 9244729..c54b54c 100644
--- a/lib/diffseq.h
+++ b/lib/diffseq.h
@@ -200,6 +200,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
OFFSET c; /* Cost. */
bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd
diagonal with respect to the northwest. */
+ bool heuristic;
fd[fmid] = xoff;
bd[bmid] = xlim;
@@ -279,9 +280,9 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
continue;
#ifdef USE_HEURISTIC
- bool heuristic = ctxt->heuristic;
+ heuristic = ctxt->heuristic;
#else
- bool heuristic = false;
+ heuristic = false;
#endif
/* Heuristic: check occasionally for a diagonal that has made lots
diff --git a/lib/filenamecat-lgpl.c b/lib/filenamecat-lgpl.c
index f50ecc1..fc2741c 100644
--- a/lib/filenamecat-lgpl.c
+++ b/lib/filenamecat-lgpl.c
@@ -46,6 +46,8 @@
char *
mfile_name_concat (char const *dir, char const *base, char **base_in_result)
{
+ char *p_concat;
+ char *p;
char const *dirbase = last_component (dir);
size_t dirbaselen = base_len (dirbase);
size_t dirlen = dirbase - dir + dirbaselen;
@@ -67,8 +69,7 @@ mfile_name_concat (char const *dir, char const *base, char **base_in_result)
sep = '.';
}
- char *p_concat = malloc (dirlen + (sep != '\0') + baselen + 1);
- char *p;
+ p_concat = malloc (dirlen + (sep != '\0') + baselen + 1);
if (p_concat == NULL)
return NULL;
diff --git a/lib/mktime.c b/lib/mktime.c
index 9c3fb20..a344bb4 100644
--- a/lib/mktime.c
+++ b/lib/mktime.c
@@ -271,6 +271,9 @@ static struct tm *
ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
long_int *t, struct tm *tp)
{
+ long_int bad;
+ long_int ok;
+ struct tm oktm;
long_int t1 = (*t < mktime_min ? mktime_min
: *t <= mktime_max ? *t : mktime_max);
struct tm *r = convert_time (convert, t1, tp);
@@ -282,9 +285,9 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
if (errno != EOVERFLOW)
return NULL;
- long_int bad = t1;
- long_int ok = 0;
- struct tm oktm; oktm.tm_sec = -1;
+ bad = t1;
+ ok = 0;
+ oktm.tm_sec = -1;
/* BAD is a known out-of-range value, and OK is a known in-range one.
Use binary search to narrow the range between BAD and OK until
@@ -366,6 +369,8 @@ __mktime_internal (struct tm *tp,
int negative_offset_guess;
int sec_requested = sec;
+ long_int t0;
+ long_int t, t1, t2;
if (LEAP_SECONDS_POSSIBLE)
{
@@ -381,18 +386,19 @@ __mktime_internal (struct tm *tp,
time. */
INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
- long_int t0 = ydhms_diff (year, yday, hour, min, sec,
+ t0 = ydhms_diff (year, yday, hour, min, sec,
EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0,
negative_offset_guess);
- long_int t = t0, t1 = t0, t2 = t0;
+ t = t0, t1 = t0, t2 = t0;
/* Repeatedly use the error to improve the guess. */
while (true)
{
+ long_int dt;
if (! ranged_convert (convert, &t, &tm))
return -1;
- long_int dt = tm_diff (year, yday, hour, min, sec, &tm);
+ dt = tm_diff (year, yday, hour, min, sec, &tm);
if (dt == 0)
break;
@@ -524,13 +530,15 @@ __mktime_internal (struct tm *tp,
time_t
mktime (struct tm *tp)
{
+# if defined _LIBC || NEED_MKTIME_WORKING
+ static mktime_offset_t localtime_offset;
+#endif
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
time zone names contained in the external variable 'tzname' shall
be set as if the tzset() function had been called. */
__tzset ();
# if defined _LIBC || NEED_MKTIME_WORKING
- static mktime_offset_t localtime_offset;
return __mktime_internal (tp, __localtime_r, &localtime_offset);
# else
# undef mktime
diff --git a/lib/regexec.c b/lib/regexec.c
index c7d099c..00d171f 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -3346,12 +3346,13 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
goto out_free;
/* Avoid arithmetic overflow in size calculation. */
+ {
size_t ndests_max
= ((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
/ (3 * sizeof (re_dfastate_t *)));
if (__glibc_unlikely (ndests_max < ndests))
goto out_free;
-
+ }
if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
+ ndests * 3 * sizeof (re_dfastate_t *)))
dest_states = (re_dfastate_t **)
diff --git a/src/io.c b/src/io.c
index 5705101..fe49ee4 100644
--- a/src/io.c
+++ b/src/io.c
@@ -487,10 +487,11 @@ prepare_text (struct file_data *current)
if (strip_trailing_cr)
{
char *srclim = p + buffered;
- *srclim = '\r';
char *dst = rawmemchr (p, '\r');
+ char const *src;
+ *srclim = '\r';
- for (char const *src = dst; src != srclim; src++)
+ for (src = dst; src != srclim; src++)
{
src += *src == '\r' && src[1] == '\n';
*dst++ = *src;
--
2.19.1