You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
6.8 KiB
185 lines
6.8 KiB
From 7b08f7a2af3f66ab95437e4490499cebb20e5e41 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
|
Date: Wed, 28 Apr 2021 22:11:42 +0200
|
|
Subject: [PATCH] Remove dynamic exception specification to fix C++17
|
|
compatibility
|
|
|
|
The dynamic exception specifications have been deprecated in C++11
|
|
and eventually removed in C++17 [1]. GCC-11 uses gnu++17 by default,
|
|
causing advancecomp to fail to compile:
|
|
|
|
In file included from rezip.cc:24:
|
|
file.h:70:43: error: ISO C++17 does not allow dynamic exception specifications
|
|
70 | bool file_exists(const std::string& file) throw (error);
|
|
| ^~~~~
|
|
file.h:71:75: error: ISO C++17 does not allow dynamic exception specifications
|
|
71 | e(const std::string& path, const char* data, unsigned size) throw (error);
|
|
| ^~~~~
|
|
...
|
|
|
|
Since there is really no gain from having these specifications anymore,
|
|
just remove them to fix the build.
|
|
|
|
[1] https://en.cppreference.com/w/cpp/language/except_spec
|
|
---
|
|
file.cc | 26 +++++++++++++-------------
|
|
file.h | 24 ++++++++++++------------
|
|
2 files changed, 25 insertions(+), 25 deletions(-)
|
|
|
|
diff --git a/file.cc b/file.cc
|
|
index 1e90348..d676d25 100644
|
|
--- a/file.cc
|
|
+++ b/file.cc
|
|
@@ -98,7 +98,7 @@ void infopath::readonly_set(bool Areadonly)
|
|
/**
|
|
* Check if a file exists.
|
|
*/
|
|
-bool file_exists(const string& path) throw (error)
|
|
+bool file_exists(const string& path)
|
|
{
|
|
struct stat s;
|
|
if (stat(path.c_str(), &s) != 0) {
|
|
@@ -114,7 +114,7 @@ bool file_exists(const string& path) throw (error)
|
|
/**
|
|
* Write a whole file.
|
|
*/
|
|
-void file_write(const string& path, const char* data, unsigned size) throw (error)
|
|
+void file_write(const string& path, const char* data, unsigned size)
|
|
{
|
|
FILE* f = fopen(path.c_str(), "wb");
|
|
if (!f)
|
|
@@ -134,7 +134,7 @@ void file_write(const string& path, const char* data, unsigned size) throw (erro
|
|
/**
|
|
* Read a whole file.
|
|
*/
|
|
-void file_read(const string& path, char* data, unsigned size) throw (error)
|
|
+void file_read(const string& path, char* data, unsigned size)
|
|
{
|
|
file_read(path, data, 0, size);
|
|
}
|
|
@@ -142,7 +142,7 @@ void file_read(const string& path, char* data, unsigned size) throw (error)
|
|
/**
|
|
* Read a whole file.
|
|
*/
|
|
-void file_read(const string& path, char* data, unsigned offset, unsigned size) throw (error)
|
|
+void file_read(const string& path, char* data, unsigned offset, unsigned size)
|
|
{
|
|
FILE* f = fopen(path.c_str(), "rb");
|
|
if (!f)
|
|
@@ -166,7 +166,7 @@ void file_read(const string& path, char* data, unsigned offset, unsigned size) t
|
|
/**
|
|
* Get the time of a file.
|
|
*/
|
|
-time_t file_time(const string& path) throw (error)
|
|
+time_t file_time(const string& path)
|
|
{
|
|
struct stat s;
|
|
if (stat(path.c_str(), &s)!=0)
|
|
@@ -178,7 +178,7 @@ time_t file_time(const string& path) throw (error)
|
|
/**
|
|
* Set the time of a file.
|
|
*/
|
|
-void file_utime(const string& path, time_t tod) throw (error)
|
|
+void file_utime(const string& path, time_t tod)
|
|
{
|
|
struct utimbuf u;
|
|
|
|
@@ -192,7 +192,7 @@ void file_utime(const string& path, time_t tod) throw (error)
|
|
/**
|
|
* Get the size of a file.
|
|
*/
|
|
-unsigned file_size(const string& path) throw (error)
|
|
+unsigned file_size(const string& path)
|
|
{
|
|
struct stat s;
|
|
if (stat(path.c_str(), &s)!=0)
|
|
@@ -204,7 +204,7 @@ unsigned file_size(const string& path) throw (error)
|
|
/**
|
|
* Get the crc of a file.
|
|
*/
|
|
-crc_t file_crc(const string& path) throw (error)
|
|
+crc_t file_crc(const string& path)
|
|
{
|
|
unsigned size = file_size(path);
|
|
|
|
@@ -227,7 +227,7 @@ crc_t file_crc(const string& path) throw (error)
|
|
/**
|
|
* Copy a file.
|
|
*/
|
|
-void file_copy(const string& path1, const string& path2) throw (error)
|
|
+void file_copy(const string& path1, const string& path2)
|
|
{
|
|
unsigned size;
|
|
|
|
@@ -249,7 +249,7 @@ void file_copy(const string& path1, const string& path2) throw (error)
|
|
/**
|
|
* Move a file.
|
|
*/
|
|
-void file_move(const string& path1, const string& path2) throw (error)
|
|
+void file_move(const string& path1, const string& path2)
|
|
{
|
|
if (rename(path1.c_str(), path2.c_str())!=0
|
|
&& errno==EXDEV) {
|
|
@@ -271,7 +271,7 @@ void file_move(const string& path1, const string& path2) throw (error)
|
|
/**
|
|
* Remove a file.
|
|
*/
|
|
-void file_remove(const string& path1) throw (error)
|
|
+void file_remove(const string& path1)
|
|
{
|
|
if (remove(path1.c_str())!=0) {
|
|
throw error() << "Failed remove of " << path1;
|
|
@@ -281,7 +281,7 @@ void file_remove(const string& path1) throw (error)
|
|
/**
|
|
* Rename a file.
|
|
*/
|
|
-void file_rename(const string& path1, const string& path2) throw (error)
|
|
+void file_rename(const string& path1, const string& path2)
|
|
{
|
|
if (rename(path1.c_str(), path2.c_str())!=0) {
|
|
throw error() << "Failed rename of " << path1 << " to " << path2;
|
|
@@ -409,7 +409,7 @@ string file_adjust(const string& path) throw ()
|
|
/**
|
|
* Make a drectory tree.
|
|
*/
|
|
-void file_mktree(const std::string& path) throw (error)
|
|
+void file_mktree(const std::string& path)
|
|
{
|
|
string dir = file_dir(path);
|
|
string name = file_name(path);
|
|
diff --git a/file.h b/file.h
|
|
index 1b0cf85..49429b5 100644
|
|
--- a/file.h
|
|
+++ b/file.h
|
|
@@ -67,18 +67,18 @@ typedef unsigned crc_t;
|
|
crc_t crc_compute(const char* data, unsigned len);
|
|
crc_t crc_compute(crc_t pred, const char* data, unsigned len);
|
|
|
|
-bool file_exists(const std::string& file) throw (error);
|
|
-void file_write(const std::string& path, const char* data, unsigned size) throw (error);
|
|
-void file_read(const std::string& path, char* data, unsigned size) throw (error);
|
|
-void file_read(const std::string& path, char* data, unsigned offset, unsigned size) throw (error);
|
|
-time_t file_time(const std::string& path) throw (error);
|
|
-void file_utime(const std::string& path, time_t tod) throw (error);
|
|
-unsigned file_size(const std::string& path) throw (error);
|
|
-crc_t file_crc(const std::string& path) throw (error);
|
|
-void file_copy(const std::string& path1, const std::string& path2) throw (error);
|
|
-void file_move(const std::string& path1, const std::string& path2) throw (error);
|
|
-void file_remove(const std::string& path1) throw (error);
|
|
-void file_mktree(const std::string& path1) throw (error);
|
|
+bool file_exists(const std::string& file);
|
|
+void file_write(const std::string& path, const char* data, unsigned size);
|
|
+void file_read(const std::string& path, char* data, unsigned size);
|
|
+void file_read(const std::string& path, char* data, unsigned offset, unsigned size);
|
|
+time_t file_time(const std::string& path);
|
|
+void file_utime(const std::string& path, time_t tod);
|
|
+unsigned file_size(const std::string& path);
|
|
+crc_t file_crc(const std::string& path);
|
|
+void file_copy(const std::string& path1, const std::string& path2);
|
|
+void file_move(const std::string& path1, const std::string& path2);
|
|
+void file_remove(const std::string& path1);
|
|
+void file_mktree(const std::string& path1);
|
|
|
|
std::string file_temp(const std::string& path) throw ();
|
|
std::string file_randomize(const std::string& path, int n) throw ();
|