101 lines
3.1 KiB
Diff
101 lines
3.1 KiB
Diff
From: Sophie Brun <sophie@offensive-security.com>
|
|
Date: Mon, 30 Sep 2019 16:17:19 +0200
|
|
Subject: Fix ftbfs with GCC-9
|
|
|
|
Last-Update: 2019-10-01
|
|
Description:
|
|
"If a friend declaration specifies a default, it must be a friend
|
|
function definition, and no other declarations of this function are
|
|
allowed in the translation unit."
|
|
Remove default values from declaration and change these functions calls
|
|
in the code to add default values if not overwritten.
|
|
---
|
|
ddd/DispValue.C | 4 ++--
|
|
ddd/complete.C | 2 +-
|
|
ddd/exit.C | 2 +-
|
|
ddd/strclass.C | 1 +
|
|
ddd/strclass.h | 10 ++++++----
|
|
5 files changed, 11 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/ddd/DispValue.C b/ddd/DispValue.C
|
|
index de25768..2656242 100644
|
|
--- ddd/DispValue.C
|
|
+++ ddd/DispValue.C
|
|
@@ -1432,8 +1432,8 @@ void DispValue::get_index_surroundings(string& prefix, string& suffix) const
|
|
|
|
for (int i = 1; i < nchildren(); i++)
|
|
{
|
|
- prefix = common_prefix(prefix, child(i)->full_name());
|
|
- suffix = common_suffix(suffix, child(i)->full_name());
|
|
+ prefix = common_prefix(prefix, child(i)->full_name(), 0);
|
|
+ suffix = common_suffix(suffix, child(i)->full_name(), -1);
|
|
}
|
|
}
|
|
|
|
diff --git a/ddd/complete.C b/ddd/complete.C
|
|
index b161e74..4bde5ff 100644
|
|
--- ddd/complete.C
|
|
+++ ddd/complete.C
|
|
@@ -354,7 +354,7 @@ static void complete_reply(const string& complete_answer, void *qu_data)
|
|
string common_pfx = completions[0];
|
|
int i;
|
|
for (i = 1; i < completions_size; i++)
|
|
- common_pfx = common_prefix(common_pfx, completions[i]);
|
|
+ common_pfx = common_prefix(common_pfx, completions[i], 0);
|
|
|
|
if (completions_size > 1 && input == common_pfx)
|
|
{
|
|
diff --git a/ddd/exit.C b/ddd/exit.C
|
|
index f490c23..664f203 100644
|
|
--- ddd/exit.C
|
|
+++ ddd/exit.C
|
|
@@ -478,7 +478,7 @@ void get_core_pattern(int signal)
|
|
str_func_ret = "core";
|
|
}
|
|
else {
|
|
- readline(patternfile, pattern);
|
|
+ readline(patternfile, pattern, '\n', 1);
|
|
core_pat = pattern.chars();
|
|
while(*core_pat)
|
|
{
|
|
diff --git a/ddd/strclass.C b/ddd/strclass.C
|
|
index be0bade..dfbb054 100644
|
|
--- ddd/strclass.C
|
|
+++ ddd/strclass.C
|
|
@@ -1563,6 +1563,7 @@ std::istream& operator>>(std::istream& s, string& x)
|
|
return s;
|
|
}
|
|
|
|
+
|
|
int readline(std::istream& s, string& x, char terminator, int discard)
|
|
{
|
|
assert(!x.consuming());
|
|
diff --git a/ddd/strclass.h b/ddd/strclass.h
|
|
index 7ef16fa..035a17e 100644
|
|
--- ddd/strclass.h
|
|
+++ ddd/strclass.h
|
|
@@ -811,9 +811,11 @@ public:
|
|
const regex& sep);
|
|
|
|
friend string common_prefix(const string& x, const string& y,
|
|
- int startpos = 0);
|
|
+ int startpos);
|
|
+
|
|
friend string common_suffix(const string& x, const string& y,
|
|
- int startpos = -1);
|
|
+ int startpos);
|
|
+
|
|
friend string replicate(char c, int n);
|
|
friend string replicate(const string& y, int n);
|
|
friend string join(const string *src, int n, const string& sep);
|
|
@@ -864,8 +866,8 @@ public:
|
|
friend std::istream& operator>>(std::istream& s, string& x);
|
|
|
|
friend int readline(std::istream& s, string& x,
|
|
- char terminator = '\n',
|
|
- int discard_terminator = 1);
|
|
+ char terminator,
|
|
+ int discard_terminator);
|
|
|
|
// Status
|
|
unsigned int length() const;
|