summaryrefslogtreecommitdiff
blob: b72a6824a30514dd277918995f2f915f08c0d9eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
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 ();