コミットメタ情報

リビジョンba5a3597601d82283f6b6cf6604bd72061723641 (tree)
日時2021-06-23 01:39:29
作者Fojtik
コミッターFojtik

ログメッセージ

Emit error and let building process to hang when problem with codepage occurs.

変更サマリ

差分

diff -r 8e5d624f7915 -r ba5a3597601d trunk/sources.cc/cp_lib/cpbldr.cc
--- a/trunk/sources.cc/cp_lib/cpbldr.cc Thu Jun 17 00:12:11 2021 +0200
+++ b/trunk/sources.cc/cp_lib/cpbldr.cc Tue Jun 22 18:39:29 2021 +0200
@@ -432,39 +432,40 @@
432432 WP2LaTeX.erase();
433433
434434 ForgeFname(FileName, "internal");
435- LoadCodePage(FileName(), internal);
436- LoadCodePage("unicode", unicode,0);
437-
438- LoadCodePage("cp852",cp852,0);
439- LoadCodePage("cp1250",cp1250,0);
440- LoadCodePage("cp1251",cp1251,0);
441- LoadCodePage("cp1252",cp1252,0);
442- LoadCodePage("cp1253",cp1253,0);
443- LoadCodePage("kam",cpkam,0);
435+ if(!LoadCodePage(FileName(), internal)) return -1;
436+ if(!LoadCodePage("unicode", unicode,0)) return -2;
444437
445- LoadCodePage("wp6",cpwp6,0);
446- LoadCodePage("wp5",cpwp5,0);
447- LoadCodePage("wp5_cz",cpwp5_cz,0);
448- LoadCodePage("wp4a",cpwp4a,0);
449- LoadCodePage("is8859_1",iso_8859_1,0);
450- LoadCodePage("is8859_2",iso_8859_2,0);
451- LoadCodePage("is8859_3",iso_8859_3,0);
452- LoadCodePage("is8859_4",iso_8859_4,0);
453- if(iso_8859_1.name) {free(iso_8859_1.name);iso_8859_1.name=strdup("iso_8859_1");}
454- if(iso_8859_2.name) {free(iso_8859_2.name);iso_8859_2.name=strdup("iso_8859_2");}
455- if(iso_8859_3.name) {free(iso_8859_3.name);iso_8859_3.name=strdup("iso_8859_3");}
456- if(iso_8859_4.name) {free(iso_8859_4.name);iso_8859_4.name=strdup("iso_8859_4");}
438+ // WP speciffic code pages.
439+ if(!LoadCodePage("wp6",cpwp6,0)) return -9;
440+ if(!LoadCodePage("wp5",cpwp5,0)) return -10;
441+ if(!LoadCodePage("wp5_cz",cpwp5_cz,0)) return -11;
442+ if(!LoadCodePage("wp4a",cpwp4a,0)) return -12;
457443
444+ LoadCodePage("mtef2",mtef2,0);
445+ LoadCodePage("symbol",symbol,0);
446+ LoadCodePage("mac_roma",MAC_ROMAN,0);
447+ if(MAC_ROMAN.name){free(MAC_ROMAN.name);MAC_ROMAN.name=strdup("MacRoman");}
448+
449+ if(!LoadCodePage("cp852",cp852,0)) return -3;
450+ if(!LoadCodePage("cp1250",cp1250,0)) return -4;
451+ if(!LoadCodePage("cp1251",cp1251,0)) return -5;
452+ if(!LoadCodePage("cp1252",cp1252,0)) return -6;
453+ if(!LoadCodePage("cp1253",cp1253,0)) return -7;
454+ if(!LoadCodePage("cp1276",cp1276,0)) return -7;
455+
456+ if(!LoadCodePage("kam",cpkam,0)) return -8;
458457 LoadCodePage("koi8cs",koi8cs,0);
459458 LoadCodePage("koi8_r",koi8r,0);
460459
461- LoadCodePage("mtef2",mtef2,0);
462- LoadCodePage("symbol",symbol,0);
460+ LoadCodePage("is8859_1",iso_8859_1,0);
461+ if(iso_8859_1.name) {free(iso_8859_1.name);iso_8859_1.name=strdup("iso_8859_1");}
462+ LoadCodePage("is8859_2",iso_8859_2,0);
463+ if(iso_8859_2.name) {free(iso_8859_2.name);iso_8859_2.name=strdup("iso_8859_2");}
464+ LoadCodePage("is8859_3",iso_8859_3,0);
465+ if(iso_8859_3.name) {free(iso_8859_3.name);iso_8859_3.name=strdup("iso_8859_3");}
466+ LoadCodePage("is8859_4",iso_8859_4,0);
467+ if(iso_8859_4.name) {free(iso_8859_4.name);iso_8859_4.name=strdup("iso_8859_4");}
463468
464- LoadCodePage("mac_roma",MAC_ROMAN,0);
465- if(MAC_ROMAN.name){free(MAC_ROMAN.name);MAC_ROMAN.name=strdup("MacRoman");}
466-
467- LoadCodePage("cp1276",cp1276,0);
468469
469470 //if(heapcheck()<=0)
470471 // asm int 3;
diff -r 8e5d624f7915 -r ba5a3597601d trunk/sources.cc/cp_lib/cplib.cc
--- a/trunk/sources.cc/cp_lib/cplib.cc Thu Jun 17 00:12:11 2021 +0200
+++ b/trunk/sources.cc/cp_lib/cplib.cc Tue Jun 22 18:39:29 2021 +0200
@@ -233,7 +233,7 @@
233233 }
234234
235235
236-void LoadCodePage(string cpfilename, codepage & cp, int ShowAll=1)
236+bool LoadCodePage(string cpfilename, codepage & cp, int ShowAll=1)
237237 {
238238 FILE *Fcp;
239239
@@ -245,13 +245,14 @@
245245 if((Fcp=fopen(cpfilename,"r"))==NULL )
246246 {
247247 printf("\nError: cannot open file:%s!!!",cpfilename());
248- return;
248+ return false;
249249 }
250250
251251 while(!feof(Fcp))
252252 ReadChar(Fcp,cp);
253253
254254 fclose(Fcp);
255+ return true;
255256 }
256257
257258
旧リポジトリブラウザで表示