1
|
#!/usr/bin/env sh
|
2
|
|
3
|
# In the CoCoALib-0.99800 release some files necessary for building the GUI
|
4
|
# are missing. See https://cocoa.dima.unige.it/redmine/issues/1393#note-13
|
5
|
# This script copies these files from the previous release 0.99718 and patches
|
6
|
# them for Qt5 support.
|
7
|
#
|
8
|
# Executing this script in an empty folder will download both releases of
|
9
|
# CoCoALib; releases already present will not be downloaded again.
|
10
|
#
|
11
|
# The files in the folder CoCoALib-0.99800_gui will afterwards be patched. To
|
12
|
# compile with the Qt5 GUI pass the option --Qt-gui to the configure script.
|
13
|
|
14
|
VER1=0.99718
|
15
|
VER2=0.99800
|
16
|
|
17
|
COCOALIB_VER1_DIR=CoCoALib-$VER1
|
18
|
COCOALIB_VER2_DIR=CoCoALib-$VER2
|
19
|
|
20
|
COCOALIB_VER1_SHA256=1b822387c4482c1e81b1d060abca726a27507702c7c642c10c094527fc0e7bbc
|
21
|
#COCOALIB_VER2_SHA256=6f38dbf9156d5598e67c05c9557f03281880527afd579d71cd4076be535ec523
|
22
|
COCOALIB_VER2_SHA256=f8bb227e2e1729e171cf7ac2008af71df25914607712c35db7bcb5a044a928c6
|
23
|
|
24
|
# Check if directory is clean enough:
|
25
|
|
26
|
echo -n "Checking directory... "
|
27
|
if [ -e $COCOALIB_VER1_DIR ]; then
|
28
|
echo "Error: $COCOALIB_VER1_DIR already exists, exiting"
|
29
|
exit 1
|
30
|
fi
|
31
|
if [ -e $COCOALIB_VER2_DIR ]; then
|
32
|
echo "Error: $COCOALIB_VER2_DIR already exists, exiting"
|
33
|
exit 1
|
34
|
fi
|
35
|
if [ -e ${COCOALIB_VER2_DIR}_gui ]; then
|
36
|
echo "Error: ${COCOALIB_VER2_DIR}_gui already exists, exiting"
|
37
|
exit 1
|
38
|
fi
|
39
|
echo "done"
|
40
|
|
41
|
# Download CoCoALib and check SHA256 sums:
|
42
|
|
43
|
for i in $VER1 $VER2; do
|
44
|
if [ $i = $VER1 ]; then
|
45
|
SHA256SUM=$COCOALIB_VER1_SHA256
|
46
|
elif [ $i = $VER2 ]; then
|
47
|
SHA256SUM=$COCOALIB_VER2_SHA256
|
48
|
else
|
49
|
echo "An error occured: \$i = $i" 2>&1
|
50
|
exit 1
|
51
|
fi
|
52
|
if [ ! -e CoCoALib-$i.tgz ]; then
|
53
|
echo -n "Downloading CoCoALib-$i.tgz... "
|
54
|
wget -q https://cocoa.dima.unige.it/cocoa/cocoalib/tgz/CoCoALib-$i.tgz
|
55
|
echo "done"
|
56
|
fi
|
57
|
echo -n "Verifying CoCoALib-$i.tgz... "
|
58
|
sha256sum --status -c <<-EOF
|
59
|
$SHA256SUM CoCoALib-$i.tgz
|
60
|
EOF
|
61
|
if [ $? -ne 0 ]; then
|
62
|
echo "\nCoCoALib-$i.tgz invalid" 1>&2
|
63
|
exit 1
|
64
|
fi
|
65
|
echo "done"
|
66
|
done
|
67
|
|
68
|
# Unpack CoCoALib:
|
69
|
|
70
|
for i in $VER1 $VER2; do
|
71
|
echo -n "Unpacking CoCoALib-$i... "
|
72
|
tar xf CoCoALib-$i.tgz
|
73
|
echo "done"
|
74
|
done
|
75
|
|
76
|
# Copy the missing files from the old release to the new one:
|
77
|
|
78
|
echo -n "Copying files... "
|
79
|
SRC=$COCOALIB_VER1_DIR
|
80
|
DST=$COCOALIB_VER2_DIR
|
81
|
|
82
|
mkdir -p $DST/src/CoCoA-5
|
83
|
cp -p \
|
84
|
$SRC/src/CoCoA-5/C5.pro.in \
|
85
|
$SRC/src/CoCoA-5/C5.qrc \
|
86
|
$SRC/src/CoCoA-5/Console.ui \
|
87
|
$SRC/src/CoCoA-5/Debugger.ui \
|
88
|
$SRC/src/CoCoA-5/MainWindow.ui \
|
89
|
$SRC/src/CoCoA-5/make-c5makefile.sh \
|
90
|
$SRC/src/CoCoA-5/make-gui-finish.sh \
|
91
|
$SRC/src/CoCoA-5/make-qcodeeditmakefile.sh \
|
92
|
$SRC/src/CoCoA-5/SourceEditor.ui \
|
93
|
$DST/src/CoCoA-5
|
94
|
|
95
|
mkdir -p $DST/src/CoCoA-5/images
|
96
|
cp -p \
|
97
|
$SRC/src/CoCoA-5/images/applications-graphics.png \
|
98
|
$SRC/src/CoCoA-5/images/CoCoALogo-icon.png \
|
99
|
$SRC/src/CoCoA-5/images/dialog-information.png \
|
100
|
$SRC/src/CoCoA-5/images/document-new.png \
|
101
|
$SRC/src/CoCoA-5/images/document-open.png \
|
102
|
$SRC/src/CoCoA-5/images/document-save-as.png \
|
103
|
$SRC/src/CoCoA-5/images/document-save.png \
|
104
|
$SRC/src/CoCoA-5/images/emblem-system.png \
|
105
|
$SRC/src/CoCoA-5/images/go-jump.png \
|
106
|
$SRC/src/CoCoA-5/images/go-last.png \
|
107
|
$SRC/src/CoCoA-5/images/go-next.png \
|
108
|
$SRC/src/CoCoA-5/images/go-top.png \
|
109
|
$SRC/src/CoCoA-5/images/go-up.png \
|
110
|
$SRC/src/CoCoA-5/images/help-browser.png \
|
111
|
$SRC/src/CoCoA-5/images/preferences-desktop-font.png \
|
112
|
$SRC/src/CoCoA-5/images/preferences-desktop-keyboard-shortcuts.png \
|
113
|
$SRC/src/CoCoA-5/images/preferences-system.png \
|
114
|
$SRC/src/CoCoA-5/images/preferences-system-windows.png \
|
115
|
$SRC/src/CoCoA-5/images/process-stop.png \
|
116
|
$SRC/src/CoCoA-5/images/system-log-out.png \
|
117
|
$SRC/src/CoCoA-5/images/utilities-system-monitor.png \
|
118
|
$SRC/src/CoCoA-5/images/utilities-terminal.png \
|
119
|
$DST/src/CoCoA-5/images
|
120
|
|
121
|
mkdir -p $DST/src/CoCoA-5/QCodeEdit/document
|
122
|
cp -p \
|
123
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentbuffer.cpp \
|
124
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentbuffer.h \
|
125
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentcommand.cpp \
|
126
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentcommand.h \
|
127
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocument.cpp \
|
128
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentcursor.cpp \
|
129
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentcursor.h \
|
130
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentcursor_p.h \
|
131
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocument.h \
|
132
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentline.cpp \
|
133
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentline.h \
|
134
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentline_p.h \
|
135
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocument_p.h \
|
136
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.cpp \
|
137
|
$SRC/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.h \
|
138
|
$DST/src/CoCoA-5/QCodeEdit/document
|
139
|
|
140
|
mkdir -p $DST/src/CoCoA-5/QCodeEdit/images
|
141
|
cp -p \
|
142
|
$SRC/src/CoCoA-5/QCodeEdit/images/bold.png \
|
143
|
$SRC/src/CoCoA-5/QCodeEdit/images/closeall.png \
|
144
|
$SRC/src/CoCoA-5/QCodeEdit/images/comment.png \
|
145
|
$SRC/src/CoCoA-5/QCodeEdit/images/copy.png \
|
146
|
$SRC/src/CoCoA-5/QCodeEdit/images/cut.png \
|
147
|
$SRC/src/CoCoA-5/QCodeEdit/images/down.png \
|
148
|
$SRC/src/CoCoA-5/QCodeEdit/images/editor.png \
|
149
|
$SRC/src/CoCoA-5/QCodeEdit/images/Edyuk.qrc \
|
150
|
$SRC/src/CoCoA-5/QCodeEdit/images/exit.png \
|
151
|
$SRC/src/CoCoA-5/QCodeEdit/images/fillcolor.png \
|
152
|
$SRC/src/CoCoA-5/QCodeEdit/images/find.png \
|
153
|
$SRC/src/CoCoA-5/QCodeEdit/images/formats.png \
|
154
|
$SRC/src/CoCoA-5/QCodeEdit/images/goto.png \
|
155
|
$SRC/src/CoCoA-5/QCodeEdit/images/indent.png \
|
156
|
$SRC/src/CoCoA-5/QCodeEdit/images/italic.png \
|
157
|
$SRC/src/CoCoA-5/QCodeEdit/images/new.png \
|
158
|
$SRC/src/CoCoA-5/QCodeEdit/images/open.png \
|
159
|
$SRC/src/CoCoA-5/QCodeEdit/images/package_settings.png \
|
160
|
$SRC/src/CoCoA-5/QCodeEdit/images/paste.png \
|
161
|
$SRC/src/CoCoA-5/QCodeEdit/images/print.png \
|
162
|
$SRC/src/CoCoA-5/QCodeEdit/images/redo.png \
|
163
|
$SRC/src/CoCoA-5/QCodeEdit/images/reload.png \
|
164
|
$SRC/src/CoCoA-5/QCodeEdit/images/replace.png \
|
165
|
$SRC/src/CoCoA-5/QCodeEdit/images/saveas.png \
|
166
|
$SRC/src/CoCoA-5/QCodeEdit/images/save.png \
|
167
|
$SRC/src/CoCoA-5/QCodeEdit/images/settings.png \
|
168
|
$SRC/src/CoCoA-5/QCodeEdit/images/strikeout.png \
|
169
|
$SRC/src/CoCoA-5/QCodeEdit/images/strokecolor.png \
|
170
|
$SRC/src/CoCoA-5/QCodeEdit/images/textcolor.png \
|
171
|
$SRC/src/CoCoA-5/QCodeEdit/images/uncomment.png \
|
172
|
$SRC/src/CoCoA-5/QCodeEdit/images/underline.png \
|
173
|
$SRC/src/CoCoA-5/QCodeEdit/images/undo.png \
|
174
|
$SRC/src/CoCoA-5/QCodeEdit/images/unindent.png \
|
175
|
$SRC/src/CoCoA-5/QCodeEdit/images/up.png \
|
176
|
$DST/src/CoCoA-5/QCodeEdit/images
|
177
|
|
178
|
mkdir -p $DST/src/CoCoA-5/QCodeEdit/qnfa
|
179
|
cp -p \
|
180
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/light_vector.h \
|
181
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/qnfa.cpp \
|
182
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/qnfadefinition.cpp \
|
183
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/qnfadefinition.h \
|
184
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/qnfa.h \
|
185
|
$SRC/src/CoCoA-5/QCodeEdit/qnfa/xml2qnfa.cpp \
|
186
|
$DST/src/CoCoA-5/QCodeEdit/qnfa
|
187
|
|
188
|
mkdir -p $DST/src/CoCoA-5/QCodeEdit/snippets
|
189
|
cp -p \
|
190
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetbinding.cpp \
|
191
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetbinding.h \
|
192
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippet.cpp \
|
193
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetedit.cpp \
|
194
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetedit.h \
|
195
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippet.h \
|
196
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.cpp \
|
197
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.h \
|
198
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippetpatternloader.h \
|
199
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/qsnippet_p.h \
|
200
|
$SRC/src/CoCoA-5/QCodeEdit/snippets/snippetedit.ui \
|
201
|
$DST/src/CoCoA-5/QCodeEdit/snippets
|
202
|
|
203
|
mkdir -p $DST/src/CoCoA-5/QCodeEdit/widgets
|
204
|
cp -p \
|
205
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/editconfig.ui \
|
206
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/formatconfig.ui \
|
207
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/gotolinedialog.ui \
|
208
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/gotoline.ui \
|
209
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qcalltip.cpp \
|
210
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qcalltip.h \
|
211
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qeditconfig.cpp \
|
212
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qeditconfig.h \
|
213
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qfoldpanel.cpp \
|
214
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qfoldpanel.h \
|
215
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qformatconfig.cpp \
|
216
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qformatconfig.h \
|
217
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qgotolinedialog.cpp \
|
218
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qgotolinedialog.h \
|
219
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qgotolinepanel.cpp \
|
220
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qgotolinepanel.h \
|
221
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinechangepanel.cpp \
|
222
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinechangepanel.h \
|
223
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinemarkpanel.cpp \
|
224
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinemarkpanel.h \
|
225
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinenumberpanel.cpp \
|
226
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qlinenumberpanel.h \
|
227
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qpanel.cpp \
|
228
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qpanel.h \
|
229
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qsearchreplacepanel.cpp \
|
230
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qsearchreplacepanel.h \
|
231
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qsimplecolorpicker.cpp \
|
232
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qsimplecolorpicker.h \
|
233
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qstatuspanel.cpp \
|
234
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/qstatuspanel.h \
|
235
|
$SRC/src/CoCoA-5/QCodeEdit/widgets/searchreplace.ui \
|
236
|
$DST/src/CoCoA-5/QCodeEdit/widgets
|
237
|
|
238
|
mkdir -p $DST/src/CoCoA-5/qxs
|
239
|
cp -p \
|
240
|
$SRC/src/CoCoA-5/qxs/cocoa5.qnfa \
|
241
|
$DST/src/CoCoA-5/qxs
|
242
|
echo "done"
|
243
|
|
244
|
# Apply Qt5 patches to the copied files:
|
245
|
|
246
|
echo -n "Applying Qt5 patches to copied files... "
|
247
|
patch -p0 -s << 'EOF'
|
248
|
diff -Naur CoCoALib-0.99800/src/CoCoA-5/C5.pro.in CoCoALib-0.99800_gui/src/CoCoA-5/C5.pro.in
|
249
|
--- CoCoALib-0.99800/src/CoCoA-5/C5.pro.in 2019-12-18 09:25:25.000000000 +0100
|
250
|
+++ CoCoALib-0.99800_gui/src/CoCoA-5/C5.pro.in 2022-03-03 20:32:17.711894478 +0100
|
251
|
@@ -1,10 +1,10 @@
|
252
|
|
253
|
#QMAKE_CXXFLAGS += -ansi -Wall -Wextra -pedantic -O0 -g3
|
254
|
#QMAKE_CXXFLAGS += -ansi -Wall -Wextra -pedantic # for bug in gcc-4.5.2
|
255
|
-QMAKE_CXXFLAGS += -std=c++11 -ansi -Wall -Wextra -pedantic -O2
|
256
|
+QMAKE_CXXFLAGS += -std=c++14 -Wall -pedantic -O2
|
257
|
QMAKE_MAKEFILE = C5Makefile
|
258
|
DESTDIR = .
|
259
|
-CONFIG += c++11 debug qt thread
|
260
|
+CONFIG += c++14 debug qt thread
|
261
|
TEMPLATE = app
|
262
|
TARGET = C5
|
263
|
DEPENDPATH += .
|
264
|
@@ -16,7 +16,7 @@
|
265
|
MOC_DIR =
|
266
|
UI_DIR =
|
267
|
OBJECTS_DIR = Debug
|
268
|
-QT += xml
|
269
|
+QT += xml webkitwidgets printsupport
|
270
|
HEADERS += AST.H \
|
271
|
C5.H \
|
272
|
CoCoALibSupplement.H \
|
273
|
@@ -34,6 +34,7 @@
|
274
|
SOURCES += AST.C \
|
275
|
BuiltInFunctions.C \
|
276
|
BuiltInFunctions-CoCoALib.C \
|
277
|
+ BuiltInFunctionsVarArgs-CoCoALib.C \
|
278
|
BuiltInOneLiners-CoCoALib.C \
|
279
|
BuiltInFunctions-Frobby.C \
|
280
|
BuiltInFunctions-GFan.C \
|
281
|
@@ -49,6 +50,7 @@
|
282
|
Banner.C \
|
283
|
OnlineHelp.C \
|
284
|
VersionInfo.C \
|
285
|
- Parser.C
|
286
|
+ Parser.C \
|
287
|
+ globals.C
|
288
|
RESOURCES += C5.qrc
|
289
|
|
290
|
diff -Naur CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/document/qdocument.cpp CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/document/qdocument.cpp
|
291
|
--- CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/document/qdocument.cpp 2010-08-23 21:57:39.000000000 +0200
|
292
|
+++ CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/document/qdocument.cpp 2022-02-25 15:35:53.956652017 +0100
|
293
|
@@ -6157,7 +6157,8 @@
|
294
|
|
295
|
it = areas.insert(m.line, n);
|
296
|
|
297
|
- if ( it != areas.end() && (it - 1) != areas.end() )
|
298
|
+ // if ( it != areas.end() && (it - 1) != areas.end() )
|
299
|
+ if ( it != areas.end() && it != areas.begin() )
|
300
|
{
|
301
|
tmp = it - 1;
|
302
|
int off = tmp.key() + *tmp - l;
|
303
|
diff -Naur CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.cpp CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.cpp
|
304
|
--- CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.cpp 2010-08-23 21:57:39.000000000 +0200
|
305
|
+++ CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/document/qdocumentsearch.cpp 2022-02-25 15:35:53.956652017 +0100
|
306
|
@@ -566,7 +566,7 @@
|
307
|
{
|
308
|
QString replacement = m_replace;
|
309
|
|
310
|
- for ( int i = m_regexp.numCaptures(); i >= 0; --i )
|
311
|
+ for ( int i = m_regexp.captureCount(); i >= 0; --i )
|
312
|
replacement.replace(QString("\\") + QString::number(i),
|
313
|
m_regexp.cap(i));
|
314
|
|
315
|
diff -Naur CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.h CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.h
|
316
|
--- CoCoALib-0.99800/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.h 2010-08-23 21:57:39.000000000 +0200
|
317
|
+++ CoCoALib-0.99800_gui/src/CoCoA-5/QCodeEdit/snippets/qsnippetmanager.h 2022-02-25 15:35:53.960652065 +0100
|
318
|
@@ -23,6 +23,7 @@
|
319
|
\brief Definition of the QSnippetManager class
|
320
|
*/
|
321
|
|
322
|
+#include <QObject>
|
323
|
#include <QStringList>
|
324
|
|
325
|
class QSnippet;
|
326
|
EOF
|
327
|
echo "done"
|
328
|
|
329
|
# Clean up:
|
330
|
|
331
|
echo -n "Cleaning up... "
|
332
|
rm -r $COCOALIB_VER1_DIR
|
333
|
mv $COCOALIB_VER2_DIR ${COCOALIB_VER2_DIR}_gui
|
334
|
echo "done"
|