Read file block by block

This commit is contained in:
geoffrey 2024-09-24 14:25:00 +02:00
parent 2490ef0087
commit 3131f79f73
9 changed files with 370 additions and 203 deletions

@ -1,139 +1,139 @@
Ô XFNSY UWêYWJ ! LWFSIJ âRJ ! TM ! OJ YTRGJ à LJSTZC ! Ô CKSXD ZBêDBO ! QBKXNO âWO ! YR ! TO DYWLO à QOXYEH !
OJZSJ, NQ FAFNY JSHTW IJ QTSLX OTZWX UFWRN STZX, TOEXO, SV KFKSD OXMYB NO VYXQC TYEBC ZKBWS XYEC,
NQ S'JS F UFX HTRUYé QJ STRGWJ ; SV X'OX K ZKC MYWZDé VO XYWLBO ;
NQ éYFNY à HJY âLJ Tù QJ GTSMJZW KQJZWNY ; SV éDKSD à MOD âQO Yù VO LYXROEB PVOEBSD ;
NQ F HTSXNIéWé QF HWTNC IJ OéXZX-HMWNXY SV K MYXCSNéBé VK MBYSH NO TéCEC-MRBSCD
YTZYJ WFDTSSFSYJ IFSX Q'TRGWJ. DYEDO BKIYXXKXDO NKXC V'YWLBO.
NQ F INY : — « H'JXY QJ INJZ IJ UWTLWèX JY I'FRTZW. SV K NSD : — « M'OCD VO NSOE NO ZBYQBèC OD N'KWYEB.
OéXZX, VZN ATNY YTS KWTSY HWTNY ATNW QJ KWTSY IZ OTZW. TéCEC, AES FYSD DYX PBYXD MBYSD FYSB VO PBYXD NE TYEB.
HMWNXY XTZWNY à VZN QJ WJUTZXXJ. MRBSCD CYEBSD à AES VO BOZYECCO.
UZNXVZ'NQ JXY RTWY UTZW STZX, OJ AJZC RTZWNW UTZW QZN ; ZESCAE'SV OCD WYBD ZYEB XYEC, TO FOEH WYEBSB ZYEB VES ;
IFSX XTS YTRGJFZ, ITSY O'FN QF UNJWWJ UTZW FUUZN, NKXC CYX DYWLOKE, NYXD T'KS VK ZSOBBO ZYEB KZZES,
NQ R'FUUJQQJ I'ZSJ ATNC ITZHJ. SV W'KZZOVVO N'EXO FYSH NYEMO.
« XF ITHYWNSJ JXY QJ HNJQ JSYW'TZAJWY ; UFW QF RFNS, « CK NYMDBSXO OCD VO MSOV OXDB'YEFOBD ; ZKB VK WKSX,
HTRRJ ZS UèWJ Q'JSKFSY, NQ YNJSY QJ LJSWJ MZRFNS ; MYWWO EX ZèBO V'OXPKXD, SV DSOXD VO QOXBO REWKSX ;
UFW QZN STZX ANATSX JY STZX XTRRJX ; ZKB VES XYEC FSFYXC OD XYEC CYWWOC ;
FZ HMJAJY IJX LJôQNJWX ITWRFSY IFSX QJZWX RFNXTSX, KE MROFOD NOC QOôVSOBC NYBWKXD NKXC VOEBC WKSCYXC,
NQ IéWTGJ QJX HQJKX IJ YTZYJX QJX UWNXTSX SV NéBYLO VOC MVOPC NO DYEDOC VOC ZBSCYXC
JY RJY JS QNGJWYé QJX MTRRJX. OD WOD OX VSLOBDé VOC RYWWOC.
« TW NQ JXY, QTNS IJ STZX, ZSJ FZYWJ MZRFSNYé « YB SV OCD, VYSX NO XYEC, EXO KEDBO REWKXSDé
VZN SJ QJ HTSSFîY UTNSY, JY IFSX Q'NSNVZNYé AES XO VO MYXXKîD ZYSXD, OD NKXC V'SXSAESDé
WFRUJ JSHMFîSéJ, JY XTZKKWJ JY YTRGJ ; BKWZO OXMRKîXéO, OD CYEPPBO OD DYWLO ;
NQX KTSY UTZW YWTZAJW INJZ IJ YéSéGWJZC JKKTWYX ; SVC PYXD ZYEB DBYEFOB NSOE NO DéXéLBOEH OPPYBDC ;
NQX X'FLNYJSY JS AFNS ; NQX XTSY HTRRJ IJX RTWYX SVC C'KQSDOXD OX FKSX ; SVC CYXD MYWWO NOC WYBDC
VZN YâYJSY QJ RZW IJ QJZW YTRGJ. AES DâDOXD VO WEB NO VOEB DYWLO.
« XFSX QTN, XFSX GZY, XFSX LZNIJ, NQX JWWJSY NHN-GFX. « CKXC VYS, CKXC LED, CKXC QESNO, SVC OBBOXD SMS-LKC.
NQX XTSY RéHMFSYX, éYFSY NLSTWFSYX ; NQX S'TSY UFX SVC CYXD WéMRKXDC, éDKXD SQXYBKXDC ; SVC X'YXD ZKC
QJZW UFWY IJ QF LWFSIJ HTSVZêYJ. VOEB ZKBD NO VK QBKXNO MYXAEêDO.
O'NWFN. UTZW QJX XFZAJW OJ VZNYYJ QJ XFNSY QNJZ. T'SBKS. ZYEB VOC CKEFOB TO AESDDO VO CKSXD VSOE.
Ô RJX KWèWJX, OJ ANJSX ATZX FUUTWYJW RTS INJZ, Ô WOC PBèBOC, TO FSOXC FYEC KZZYBDOB WYX NSOE,
OJ ANJSX ATZX FUUTWYJW RF YêYJ ! » — TO FSOXC FYEC KZZYBDOB WK DêDO ! » —
UWêYWJ, NQ X'JXY XTZAJSZ, HFQRJ JS STX OTZWX YWTZGQéX, ZBêDBO, SV C'OCD CYEFOXE, MKVWO OX XYC TYEBC DBYELVéC,
IJ QF UFWTQJ INYJ FZC FUôYWJX : — FQQJE, NO VK ZKBYVO NSDO KEH KZôDBOC : — KVVOJ,
GWFAJE QJX GûHMJWX JY QJX HQFNJX ! — LBKFOJ VOC LûMROBC OD VOC MVKSOC ! —
JY IJ Q'FINJZ IZ HMWNXY FZ XZUWêRJ RTRJSY : OD NO V'KNSOE NE MRBSCD KE CEZBêWO WYWOXD :
— Ô ANAFSY, FNRJE-ATZX ! FNRJE. JS ATZX FNRFSY, — Ô FSFKXD, KSWOJ-FYEC ! KSWOJ. OX FYEC KSWKXD,
KWèWJX, ATZX KJWRJWJE RJX UQFNJX. — PBèBOC, FYEC POBWOBOJ WOC ZVKSOC. —
NQ X'JXY INY VZ'NQ JXY GTS I'éHQFNWJW IFSX QJZW SZNY SV C'OCD NSD AE'SV OCD LYX N'éMVKSBOB NKXC VOEB XESD
HJX UJZUQJX éLFWéX QTNS IZ UWTLWèX VZN QZNY, MOC ZOEZVOC éQKBéC VYSX NE ZBYQBèC AES VESD,
ITSY Q'âRJ JXY HTZAJWYJ IJ ATNQJX ; NYXD V'âWO OCD MYEFOBDO NO FYSVOC ;
UZNX NQ X'JS JXY FQQé, IFSX QJX AJSYX, IFSX QJX KQTYX, ZESC SV C'OX OCD KVVé, NKXC VOC FOXDC, NKXC VOC PVYDC,
AJWX QJX STNWX HMJAFQJYX JY QJX XFSLQFSYX GNQQTYX, FOBC VOC XYSBC MROFKVODC OD VOC CKXQVKXDC LSVVYDC,
QJX DJZC KNCéX XZW QJX éYTNQJX. VOC IOEH PSHéC CEB VOC éDYSVOC.
NN. SS.
HJZC AJWX VZN HJY FUôYWJ FQQFNY, Q'TSY éLTWLé. MOEH FOBC AES MOD KZôDBO KVVKSD, V'YXD éQYBQé.
NNN. SSS.
TM ! YFSINX VZJ Qà-GFX, MéQFX ! HMJE HJX GFWGFWJX, YR ! DKXNSC AEO Và-LKC, RéVKC ! MROJ MOC LKBLKBOC,
X'éYFQJ Q'éHMFKFZI IJ YJX RJRGWJX HMFWLé, C'éDKVO V'éMRKPKEN NO DOC WOWLBOC MRKBQé,
VZJ QJ GTZWWJFZ, WFSLJFSY XJX LQFNAJX JY XJX GFWWJX, AEO VO LYEBBOKE, BKXQOKXD COC QVKSFOC OD COC LKBBOC,
KWTYYJ FZ LNGJY XTS TSLQJ Tù YTS XFSL X'JXY KNLé ; PBYDDO KE QSLOD CYX YXQVO Yù DYX CKXQ C'OCD PSQé ;
HNJQ ! YFSINX VZJ QJX HMNJSX IFSX HJ XFSL ANJSSJSY GTNWJ, MSOV ! DKXNSC AEO VOC MRSOXC NKXC MO CKXQ FSOXXOXD LYSBO,
JY VZJ QF RTZHMJ MTWWNGQJ, JXXFNR FZ ATQ OTDJZC, OD AEO VK WYEMRO RYBBSLVO, OCCKSW KE FYV TYIOEH,
HTRRJ IFSX ZSJ WZHMJ JSYWJ JS YF GTZHMJ STNWJ MYWWO NKXC EXO BEMRO OXDBO OX DK LYEMRO XYSBO
JY GTZWITSSJ FZ XTQJNQ IFSX QJX YWTZX IJ YJX DJZC ; OD LYEBNYXXO KE CYVOSV NKXC VOC DBYEC NO DOC IOEH ;
YFSINX VZ'éHMJAJQéJ, JY XFSX ATNC, XFSX UFZUNèWJX, DKXNSC AE'éMROFOVéO, OD CKXC FYSH, CKXC ZKEZSèBOC,
YF YêYJ GQêRJ JXY Qà XZW ZS NSKâRJ UNJZ, DK DêDO LVêWO OCD Và CEB EX SXPâWO ZSOE,
QNAWéJ FZC ANQX FKKWTSYX, RJZWYWNJ à HTZUX IJ UNJWWJX, VSFBéO KEH FSVC KPPBYXDC, WOEBDBSO à MYEZC NO ZSOBBOC,
NHN, IJWWNèWJ YTN, RFWYDW, TS AJSI YTS INJZ ! SMS, NOBBSèBO DYS, WKBDIB, YX FOXN DYX NSOE !
HJ INJZ VZN S'JXY VZ'à YTN, RFWYDW, TS YJ QJ ATQJ ! MO NSOE AES X'OCD AE'à DYS, WKBDIB, YX DO VO FYVO !
TS QJ QNAWJ à RFSIWNS, HJ INJZ UTZW VZN YZ RJZWX ! YX VO VSFBO à WKXNBSX, MO NSOE ZYEB AES DE WOEBC !
IJX MTRRJX, HTRRJ YTN WJAêYZX IJ Q'éYTQJ, NOC RYWWOC, MYWWO DYS BOFêDEC NO V'éDYVO,
UTZW êYWJ HFWINSFZC, UTZW êYWJ XéSFYJZWX, ZYEB êDBO MKBNSXKEH, ZYEB êDBO CéXKDOEBC,
IJX UWêYWJX, UTZW FATNW IJX UFQFNX, IJX HFWWTXXJX, NOC ZBêDBOC, ZYEB KFYSB NOC ZKVKSC, NOC MKBBYCCOC,
JY IJX OFWINSX Q'éYé WNFSY XTZX QJ HNJQ GQJZ, OD NOC TKBNSXC V'éDé BSKXD CYEC VO MSOV LVOE,
UTZW FWLJSYJW QJZW RNYWJ JY UTZW ITWJW QJZWX HWTXXJX, ZYEB KBQOXDOB VOEB WSDBO OD ZYEB NYBOB VOEBC MBYCCOC,
UTZW GTNWJ IJ GTS ANS, FXXNX UWèX I'ZS GTS KJZ, ZYEB LYSBO NO LYX FSX, KCCSC ZBèC N'EX LYX POE,
FZ KTWGFS ITSY QF RFNS IFSX QJ RJZWYWJ JXY YWJRUéJ, KE PYBLKX NYXD VK WKSX NKXC VO WOEBDBO OCD DBOWZéO,
FZ QFWWTS HMFWLé I'TW VZN UFDJ JY VZN XTZWNY, KE VKBBYX MRKBQé N'YB AES ZKIO OD AES CYEBSD,
LWFSI INJZ ! WJYTZWSJ-YTN AJWX STZX, YêYJ HTZUéJ ! QBKXN NSOE ! BODYEBXO-DYS FOBC XYEC, DêDO MYEZéO !
NQX AJSIJSY OéXZX-HMWNXY ! NQX AJSIJSY OéXZX-HMWNXY ! SVC FOXNOXD TéCEC-MRBSCD ! SVC FOXNOXD TéCEC-MRBSCD !
NQX QNAWJSY FZ GFSINY, UTZW VZJQVZJX XFHX XTWINIJX, SVC VSFBOXD KE LKXNSD, ZYEB AEOVAEOC CKMC CYBNSNOC,
Q'éAFSLNQJ, QF QTN, Q'FZYJQ éUTZAFSYé, V'éFKXQSVO, VK VYS, V'KEDOV éZYEFKXDé,
JY QF OZXYNHJ FZC DJZC XéAèWJX JY HFSINIJX, OD VK TECDSMO KEH IOEH CéFèBOC OD MKXNSNOC,
JY Q'éYTNQJ IZ HTJZW MZRFNS, QF AéWNYé ! OD V'éDYSVO NE MYOEB REWKSX, VK FéBSDé !
QJX GTSX OJYéX, ANAFSYX, FZ GFLSJ, TZ RTWYX, FZC KQJZAJX, VOC LYXC TODéC, FSFKXDC, KE LKQXO, YE WYBDC, KEH PVOEFOC,
Q'MTRRJ OZXYJ UWTXHWNY UFW HFWYTZHMJ XDQQF, V'RYWWO TECDO ZBYCMBSD ZKB MKBDYEMRO CIVVK,
Q'NSSTHJSY éLTWLé, QJ IJZNQ XFHWé IJX AJZAJX, V'SXXYMOXD éQYBQé, VO NOESV CKMBé NOC FOEFOC,
QJX UQJZWX IJ Q'TWUMJQNS, NQX AJSIJSY YTZY HJQF ! VOC ZVOEBC NO V'YBZROVSX, SVC FOXNOXD DYED MOVK !
YTZY ! QF KTN, QJ XJWRJSY VZJ INJZ YNJSY XTZX XF LFWIJ, DYED ! VK PYS, VO COBWOXD AEO NSOE DSOXD CYEC CK QKBNO,
QJ XFNSY YJRUQJ Tù, RTZWFSY, YZ INX :NSYWTïGT, VO CKSXD DOWZVO Yù, WYEBKXD, DE NSC :SXDBYïLY,
NQX QNAWJSY YTZY ! UZIJZW, AJWYZ ! — RFWYDW, WJLFWIJ, SVC VSFBOXD DYED ! ZENOEB, FOBDE ! — WKBDIB, BOQKBNO,
WTZAWJ YJX DJZC VZ'JRUQNY QF QZJZW IZ YTRGJFZ ; — BYEFBO DOC IOEH AE'OWZVSD VK VEOEB NE DYWLOKE ; —
NQX AJSIJSY Q'FWHMJ FZLZXYJ Tù Q'MTXYNJ éYNSHJQQJ ! SVC FOXNOXD V'KBMRO KEQECDO Yù V'RYCDSO éDSXMOVVO !
NQX AJSIJSY HMWNXY, YJ INX-OJ ! JY XJX RJRGWJX QNéX ! SVC FOXNOXD MRBSCD, DO NSC-TO ! OD COC WOWLBOC VSéC !
NQX AJSIJSY QF XZJZW VZN XZW XTS KWTSY WZNXXJQQJ, SVC FOXNOXD VK CEOEB AES CEB CYX PBYXD BESCCOVVO,
JY QJX HQTZX IJ XJX RFNSX, JY QJX HQTZX IJ XJX UNJIX ! OD VOC MVYEC NO COC WKSXC, OD VOC MVYEC NO COC ZSONC !
NQX AJSIJSY FZ GWNLFSI VZN HMJE QZN QJX FYYNWJ SVC FOXNOXD KE LBSQKXN AES MROJ VES VOC KDDSBO
QJ LWFSI HWZHNKNé XZW QJX MTRRJX UJSHMé ; VO QBKXN MBEMSPSé CEB VOC RYWWOC ZOXMRé ;
NQX AJSIJSY XF UFWTQJ, NQX AJSIJSY XTS RFWYDWJ, SVC FOXNOXD CK ZKBYVO, SVC FOXNOXD CYX WKBDIBO,
JY YTS RFWYDWJ à YTN UFW-IJXXZX QJ RFWHMé ! OD DYX WKBDIBO à DYS ZKB-NOCCEC VO WKBMRé !
YFSY UTZW QJX HTZUX IJ KTZJY VZ'NQ WJçZY à QF UTWYJ ! DKXD ZYEB VOC MYEZC NO PYEOD AE'SV BOçED à VK ZYBDO !
HéXFW ! YFSY UTZW Q'FRJS, YFSY UTZW Q'FQQéQZNF ! MéCKB ! DKXD ZYEB V'KWOX, DKXD ZYEB V'KVVéVESK !
YFSY UTZW QF UNJWWJ Tù ANSY MJZWYJW XF YêYJ RTWYJ ! DKXD ZYEB VK ZSOBBO Yù FSXD ROEBDOB CK DêDO WYBDO !
YFSY UTZW QJ IWFU WTZLN VZJ XF GFWGJ JXXZDF ! DKXD ZYEB VO NBKZ BYEQS AEO CK LKBLO OCCEIK !
NQX AJSIJSY XJX LJSTZC RJZWYWNX, XF UFQRJ AJWYJ, SVC FOXNOXD COC QOXYEH WOEBDBSC, CK ZKVWO FOBDO,
XF UQFNJ FZ KQFSH, XTS TJNQ YTZY GFNLSé I'NSKNSN, CK ZVKSO KE PVKXM, CYX YOSV DYED LKSQXé N'SXPSXS,
XJX UQJZWX, XTS FLTSNJ, JY XF GTZHMJ JSYWTZAJWYJ, COC ZVOEBC, CYX KQYXSO, OD CK LYEMRO OXDBYEFOBDO,
JY QJ HWN VZ'NQ UTZXXF : QFRRF XFGFHYMFSN ! OD VO MBS AE'SV ZYECCK : VKWWK CKLKMDRKXS !
NQX AJSIJSY QJ XéUZQHWJ ! NQX AJSIJSY QJX YéSèGWJX ! SVC FOXNOXD VO CéZEVMBO ! SVC FOXNOXD VOC DéXèLBOC !
QJX XéWFUMNSX HMFSYFSY FZ XJZNQ UWTKTSI IJX HNJZC, VOC CéBKZRSXC MRKXDKXD KE COESV ZBYPYXN NOC MSOEH,
JY QF RèWJ IJGTZY XTZX Q'FWGWJ FZC GWFX KZSèGWJX, OD VK WèBO NOLYED CYEC V'KBLBO KEH LBKC PEXèLBOC,
VZN, XJSYFSY Qà XTS KNQX, SJ QJAFNY UFX QJX DJZC ! AES, COXDKXD Và CYX PSVC, XO VOFKSD ZKC VOC IOEH !
TZN, HJX éAêVZJX, TZN, HJX RFWHMFSIX, TZN, HJX UWêYWJX YES, MOC éFêAEOC, YES, MOC WKBMRKXNC, YES, MOC ZBêDBOC
F Q'MNXYWNTS IZ HWNRJ, FXXTZAN, HTZWTSSé, K V'RSCDBSYX NE MBSWO, KCCYEFS, MYEBYXXé,
F HJ SéWTS WJUZ VZN WNY UFWRN QJX YWFîYWJX, K MO XéBYX BOZE AES BSD ZKBWS VOC DBKîDBOC,
ZS UNJI XZW YMWFXéFX, ZS HTZIJ XZW UMWDSé, EX ZSON CEB DRBKCéKC, EX MYENO CEB ZRBIXé,
FZ ATQJZW VZN YZF QJX QTNX à HTZUX IJ HWTXXJ, KE FYVOEB AES DEK VOC VYSC à MYEZC NO MBYCCO,
FZ UNWFYJ JRUJWJZW SFUTQéTS IJWSNJW, KE ZSBKDO OWZOBOEB XKZYVéYX NOBXSOB,
NAWJ IJZC KTNX, NRRTSIJ JSHTW UQZX VZJ KéWTHJ, SFBO NOEH PYSC, SWWYXNO OXMYB ZVEC AEO PéBYMO,
UTZWHJFZ IFSX QJ HQTFVZJ JY QTZU IFSX QJ HMFWSNJW, ZYEBMOKE NKXC VO MVYKAEO OD VYEZ NKXC VO MRKBXSOB,
NQX AJSIJSY, ô RFWYDW, QJ INJZ UJSXNK JY UâQJ SVC FOXNOXD, ô WKBDIB, VO NSOE ZOXCSP OD ZâVO
VZN, IJGTZY XZW QF YJWWJ JY XTZX QJ KNWRFRJSY, AES, NOLYED CEB VK DOBBO OD CYEC VO PSBWKWOXD,
YWNXYJ JY STZX XTZWNFSY IFSX STYWJ SZNY KFYFQJ, DBSCDO OD XYEC CYEBSKXD NKXC XYDBO XESD PKDKVO,
XZW QJ STNW LTQLTYMF XFNLSJ éYJWSJQQJRJSY ! CEB VO XYSB QYVQYDRK CKSQXO éDOBXOVVOWOXD !

@ -0,0 +1,139 @@
Ô SAINT PRêTRE ! GRANDE âME ! OH ! JE TOMBE à GENOUX !
JEUNE, IL AVAIT ENCOR DE LONGS JOURS PARMI NOUS,
IL N'EN A PAS COMPTé LE NOMBRE ;
IL éTAIT à CET âGE Où LE BONHEUR FLEURIT ;
IL A CONSIDéRé LA CROIX DE JéSUS-CHRIST
TOUTE RAYONNANTE DANS L'OMBRE.
IL A DIT : — « C'EST LE DIEU DE PROGRèS ET D'AMOUR.
JéSUS, QUI VOIT TON FRONT CROIT VOIR LE FRONT DU JOUR.
CHRIST SOURIT à QUI LE REPOUSSE.
PUISQU'IL EST MORT POUR NOUS, JE VEUX MOURIR POUR LUI ;
DANS SON TOMBEAU, DONT J'AI LA PIERRE POUR APPUI,
IL M'APPELLE D'UNE VOIX DOUCE.
« SA DOCTRINE EST LE CIEL ENTR'OUVERT ; PAR LA MAIN,
COMME UN PèRE L'ENFANT, IL TIENT LE GENRE HUMAIN ;
PAR LUI NOUS VIVONS ET NOUS SOMMES ;
AU CHEVET DES GEôLIERS DORMANT DANS LEURS MAISONS,
IL DéROBE LES CLEFS DE TOUTES LES PRISONS
ET MET EN LIBERTé LES HOMMES.
« OR IL EST, LOIN DE NOUS, UNE AUTRE HUMANITé
QUI NE LE CONNAîT POINT, ET DANS L'INIQUITé
RAMPE ENCHAîNéE, ET SOUFFRE ET TOMBE ;
ILS FONT POUR TROUVER DIEU DE TéNéBREUX EFFORTS ;
ILS S'AGITENT EN VAIN ; ILS SONT COMME DES MORTS
QUI TâTENT LE MUR DE LEUR TOMBE.
« SANS LOI, SANS BUT, SANS GUIDE, ILS ERRENT ICI-BAS.
ILS SONT MéCHANTS, éTANT IGNORANTS ; ILS N'ONT PAS
LEUR PART DE LA GRANDE CONQUêTE.
J'IRAI. POUR LES SAUVER JE QUITTE LE SAINT LIEU.
Ô MES FRèRES, JE VIENS VOUS APPORTER MON DIEU,
JE VIENS VOUS APPORTER MA TêTE ! » —
PRêTRE, IL S'EST SOUVENU, CALME EN NOS JOURS TROUBLéS,
DE LA PAROLE DITE AUX APôTRES : — ALLEZ,
BRAVEZ LES BûCHERS ET LES CLAIES ! —
ET DE L'ADIEU DU CHRIST AU SUPRêME MOMENT :
— Ô VIVANT, AIMEZ-VOUS ! AIMEZ. EN VOUS AIMANT,
FRèRES, VOUS FERMEREZ MES PLAIES. —
IL S'EST DIT QU'IL EST BON D'éCLAIRER DANS LEUR NUIT
CES PEUPLES éGARéS LOIN DU PROGRèS QUI LUIT,
DONT L'âME EST COUVERTE DE VOILES ;
PUIS IL S'EN EST ALLé, DANS LES VENTS, DANS LES FLOTS,
VERS LES NOIRS CHEVALETS ET LES SANGLANTS BILLOTS,
LES YEUX FIXéS SUR LES éTOILES.
II.
CEUX VERS QUI CET APôTRE ALLAIT, L'ONT éGORGé.
III.
OH ! TANDIS QUE Là-BAS, HéLAS ! CHEZ CES BARBARES,
S'éTALE L'éCHAFAUD DE TES MEMBRES CHARGé,
QUE LE BOURREAU, RANGEANT SES GLAIVES ET SES BARRES,
FROTTE AU GIBET SON ONGLE Où TON SANG S'EST FIGé ;
CIEL ! TANDIS QUE LES CHIENS DANS CE SANG VIENNENT BOIRE,
ET QUE LA MOUCHE HORRIBLE, ESSAIM AU VOL JOYEUX,
COMME DANS UNE RUCHE ENTRE EN TA BOUCHE NOIRE
ET BOURDONNE AU SOLEIL DANS LES TROUS DE TES YEUX ;
TANDIS QU'éCHEVELéE, ET SANS VOIX, SANS PAUPIèRES,
TA TêTE BLêME EST Là SUR UN INFâME PIEU,
LIVRéE AUX VILS AFFRONTS, MEURTRIE à COUPS DE PIERRES,
ICI, DERRIèRE TOI, MARTYR, ON VEND TON DIEU !
CE DIEU QUI N'EST QU'à TOI, MARTYR, ON TE LE VOLE !
ON LE LIVRE à MANDRIN, CE DIEU POUR QUI TU MEURS !
DES HOMMES, COMME TOI REVêTUS DE L'éTOLE,
POUR êTRE CARDINAUX, POUR êTRE SéNATEURS,
DES PRêTRES, POUR AVOIR DES PALAIS, DES CARROSSES,
ET DES JARDINS L'éTé RIANT SOUS LE CIEL BLEU,
POUR ARGENTER LEUR MITRE ET POUR DORER LEURS CROSSES,
POUR BOIRE DE BON VIN, ASSIS PRèS D'UN BON FEU,
AU FORBAN DONT LA MAIN DANS LE MEURTRE EST TREMPéE,
AU LARRON CHARGé D'OR QUI PAYE ET QUI SOURIT,
GRAND DIEU ! RETOURNE-TOI VERS NOUS, TêTE COUPéE !
ILS VENDENT JéSUS-CHRIST ! ILS VENDENT JéSUS-CHRIST !
ILS LIVRENT AU BANDIT, POUR QUELQUES SACS SORDIDES,
L'éVANGILE, LA LOI, L'AUTEL éPOUVANTé,
ET LA JUSTICE AUX YEUX SéVèRES ET CANDIDES,
ET L'éTOILE DU COEUR HUMAIN, LA VéRITé !
LES BONS JETéS, VIVANTS, AU BAGNE, OU MORTS, AUX FLEUVES,
L'HOMME JUSTE PROSCRIT PAR CARTOUCHE SYLLA,
L'INNOCENT éGORGé, LE DEUIL SACRé DES VEUVES,
LES PLEURS DE L'ORPHELIN, ILS VENDENT TOUT CELA !
TOUT ! LA FOI, LE SERMENT QUE DIEU TIENT SOUS SA GARDE,
LE SAINT TEMPLE Où, MOURANT, TU DIS :INTROïBO,
ILS LIVRENT TOUT ! PUDEUR, VERTU ! — MARTYR, REGARDE,
ROUVRE TES YEUX QU'EMPLIT LA LUEUR DU TOMBEAU ; —
ILS VENDENT L'ARCHE AUGUSTE Où L'HOSTIE éTINCELLE !
ILS VENDENT CHRIST, TE DIS-JE ! ET SES MEMBRES LIéS !
ILS VENDENT LA SUEUR QUI SUR SON FRONT RUISSELLE,
ET LES CLOUS DE SES MAINS, ET LES CLOUS DE SES PIEDS !
ILS VENDENT AU BRIGAND QUI CHEZ LUI LES ATTIRE
LE GRAND CRUCIFIé SUR LES HOMMES PENCHé ;
ILS VENDENT SA PAROLE, ILS VENDENT SON MARTYRE,
ET TON MARTYRE à TOI PAR-DESSUS LE MARCHé !
TANT POUR LES COUPS DE FOUET QU'IL REçUT à LA PORTE !
CéSAR ! TANT POUR L'AMEN, TANT POUR L'ALLéLUIA !
TANT POUR LA PIERRE Où VINT HEURTER SA TêTE MORTE !
TANT POUR LE DRAP ROUGI QUE SA BARBE ESSUYA !
ILS VENDENT SES GENOUX MEURTRIS, SA PALME VERTE,
SA PLAIE AU FLANC, SON OEIL TOUT BAIGNé D'INFINI,
SES PLEURS, SON AGONIE, ET SA BOUCHE ENTROUVERTE,
ET LE CRI QU'IL POUSSA : LAMMA SABACTHANI !
ILS VENDENT LE SéPULCRE ! ILS VENDENT LES TéNèBRES !
LES SéRAPHINS CHANTANT AU SEUIL PROFOND DES CIEUX,
ET LA MèRE DEBOUT SOUS L'ARBRE AUX BRAS FUNèBRES,
QUI, SENTANT Là SON FILS, NE LEVAIT PAS LES YEUX !
OUI, CES éVêQUES, OUI, CES MARCHANDS, OUI, CES PRêTRES
A L'HISTRION DU CRIME, ASSOUVI, COURONNé,
A CE NéRON REPU QUI RIT PARMI LES TRAîTRES,
UN PIED SUR THRASéAS, UN COUDE SUR PHRYNé,
AU VOLEUR QUI TUA LES LOIS à COUPS DE CROSSE,
AU PIRATE EMPEREUR NAPOLéON DERNIER,
IVRE DEUX FOIS, IMMONDE ENCOR PLUS QUE FéROCE,
POURCEAU DANS LE CLOAQUE ET LOUP DANS LE CHARNIER,
ILS VENDENT, ô MARTYR, LE DIEU PENSIF ET PâLE
QUI, DEBOUT SUR LA TERRE ET SOUS LE FIRMAMENT,
TRISTE ET NOUS SOURIANT DANS NOTRE NUIT FATALE,
SUR LE NOIR GOLGOTHA SAIGNE éTERNELLEMENT !

@ -1,3 +1,3 @@
#!/bin/sh #!/bin/sh
gcc -W src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4 gcc -Wall src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4

Binary file not shown.

Binary file not shown.

@ -1,55 +1,85 @@
#include "caesar.h" #include "caesar.h"
#define BUFFER_SIZE 128
/*
This function read the file block by block until the end of it
*/
int readFile(FILE *f, int *size, char *buffer){
int index = 0;
char c;
int end = 0;
do{
c = fgetc(f);
buffer[index] = c;
index++;
*size += 1;
// End of the file, we stop it
if (c == EOF){
buffer[index - 1] = '\0';
index = BUFFER_SIZE;
end = 1;
}
}while(index < BUFFER_SIZE);
return end;
}
/* /*
s -> path source s -> path source
d -> path destination d -> path destination
key -> key of encryption key -> key of encryption
This function encrypt data This function encrypt data
*/ */
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *data) { int cryptCaesar(const char *s, const char *filenameDst, const int key) {
char *buffer, *bufferDst = NULL;
int i; int i;
int error = countCharact;
char c = 0; char c = 0;
FILE *f = NULL, *fDst = NULL;
char data[BUFFER_SIZE];
char dataEncrypted[BUFFER_SIZE];
int size = 0, end = 0;
if(error == -1) return NULL; // Open the file
f = fopen(s, "r+");
if (f == NULL) return -1;
// Malloc the dest buffer fDst = fopen(filenameDst, "w");
bufferDst = malloc(sizeof(int) * countCharact); if (fDst == NULL) {
memset(bufferDst, 0, sizeof(int) * countCharact); fclose(f);
return -1;
}
/* Allocation dynamique */ // We are going to read the file block by block
buffer = malloc(countCharact + 1); /* + 1 for '\0' */ do {
end = readFile(f, &size, data);
/* Copy the data of file into the buffer[] */ /********* Encryption **********/
error = copyFile(s, buffer); for (i = 0; i < size; i++){
if(error != 0) return NULL; if (data[i] >= 'A' && data[i] <= 'Z'){
c = data[i] - 'A';
dataEncrypted[i] = ((c + key) % 26) + 'A';
}
else if (data[i] >= 'a' && data[i] <= 'z'){
c = data[i] - 'a';
dataEncrypted[i] = ((c + key) % 26) + 'A';
}
else dataEncrypted[i] = data[i];
/********* Encryption **********/ // We can write into the dest file
for(i = 0; i < countCharact; i++) { if (dataEncrypted[i] != '\0')
int val = 0; fputc(dataEncrypted[i], fDst);
/* For characters of A to Z */ }
if(buffer[i] >= 'A' && buffer[i] <= 'Z') { size = 0;
c = buffer[i] - 'A';
val = ((c + key) % 26) + 'A';
}
/* For characters of 'a' to 'z' */
else if(buffer[i] >= 'a' && buffer[i] <= 'z') {
c = buffer[i] - 'a';
val = ((c + key) % 26) + 'A';
}
/* For others characters */
else val = buffer[i];
bufferDst[i] = val; memset(data, 0, BUFFER_SIZE);
} memset(dataEncrypted, 0, BUFFER_SIZE);
}while(end != 1);
bufferDst[i] = '\0'; /* Close files */
fclose(f);
/* Freedom the memory */ fclose(fDst);
free(buffer); return 0;
return bufferDst;
} }
/* /*
s -> path source s -> path source
@ -57,44 +87,51 @@ char *cryptCaesar(const char *s, const int key, const int countCharact, const ch
key -> key of decryption key -> key of decryption
This function decryption by Cesar This function decryption by Cesar
*/ */
char *decryptCaesar(const char *s, const int key, const int countCharact) { int decryptCaesar(const char *s, const char *filenameDst, const int key) {
int error = countCharact;
char *buffer, *bufferDst = NULL;
int i; int i;
FILE *f = NULL, *fDst = NULL;
char data[BUFFER_SIZE];
char dataDecrypted[BUFFER_SIZE];
int size = 0, end = 0;
if(error == -1) // Open the file
return NULL; f = fopen(s, "r+");
if (f == NULL) return -1;
// Malloc the dest buffer fDst = fopen(filenameDst, "w");
bufferDst = malloc(sizeof(int) * countCharact); if (fDst == NULL) {
memset(bufferDst, 0, sizeof(int) * countCharact); fclose(f);
return -1;
}
/* Allocation dynamique */ // We are going to read the file block by block
buffer = malloc(countCharact + 1); /* +1 for '\0' */ do {
end = readFile(f, &size, data);
/* Copy the data from file into buffer */ /********* Decryption **********/
error = copyFile(s, buffer); for (i = 0; i < size; i++){
if(error != 0) return NULL; int val = 0;
//if (data[i] >= 'A' && data[i] <= 'Z'){
if(data[i] >= 65 && data[i] <= 90) {
val = data[i] - key;
if (val < 'A')
val = val + 26;
}
else val = data[i];
dataDecrypted[i] = val;
// We can write into the dest file
if (dataDecrypted[i] != '\0')
fputc(dataDecrypted[i], fDst);
}
size = 0;
/********* Decryption **********/ memset(data, 0, BUFFER_SIZE);
for(i = 0; i < countCharact; i++) { memset(dataDecrypted, 0, BUFFER_SIZE);
int val = 0; }while(end != 1);
/* buffer[i] >= 'A' AND buffer[i] <= 'Z' */
if(buffer[i] >= 65 && buffer[i] <= 90) {
val = buffer[i] - key;
/* val < 'A' */
if(val < 65)
val = val + 26;
}
else
val = buffer[i];
bufferDst[i] = val; /* Close files */
} fclose(f);
bufferDst[i] = '\0'; fclose(fDst);
/* Freedom the memory */ return 0;
free(buffer);
return bufferDst;
} }

@ -6,7 +6,8 @@
#include "functions.h" #include "functions.h"
/* Functions */ /* Functions */
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *); int foo(FILE *, int *, char *);
char *decryptCaesar(const char *s, const int key, const int countCharact); int cryptCaesar(const char *, const char *, const int);
int decryptCaesar(const char *, const char *, const int);
#endif #endif

@ -4,9 +4,8 @@
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
int error = 0; int error = 0;
int numberCharacters = 0;
char *options[4] = {"-c","-v","-t","-s"}; char *options[4] = {"-c","-v","-t","-s"};
char *hook, *fileSrc, *fileDst, *data, *buffer = NULL; char *hook, *fileSrc, *fileDst, *buffer = NULL;
size_t sFile, i; size_t sFile, i;
if(argc != 4) { if(argc != 4) {
@ -64,20 +63,11 @@ int main(int argc, char *argv[]) {
fileDst[i++] = 't'; fileDst[i++] = 't';
fileDst[i++] = '\0'; fileDst[i++] = '\0';
// Get size of the file
numberCharacters = fileNumberCaract(fileSrc);
// Read the file
data = malloc(numberCharacters + 1); /* + 1 for '\0' */
/* Copy the data of file into the data[] */
error = copyFile(fileSrc, data);
if(error != 0) return -1;
// Caesar cipher // Caesar cipher
if(strcmp(argv[1], "-c") == 0){ if(strcmp(argv[1], "-c") == 0){
// Get key // Get key
int key; int key;
int res;
do{ do{
printf("Your key (between 1 and 26): "); printf("Your key (between 1 and 26): ");
@ -85,9 +75,12 @@ int main(int argc, char *argv[]) {
}while(key < 1 || key > 26); }while(key < 1 || key > 26);
if(strcmp(hook, "crypt") == 0) if(strcmp(hook, "crypt") == 0)
buffer = cryptCaesar(fileSrc, key, numberCharacters, data); res = cryptCaesar(fileSrc, fileDst, key);
if(strcmp(hook, "decrypt") == 0) if(strcmp(hook, "decrypt") == 0)
buffer = decryptCaesar(fileSrc, key, numberCharacters); res = decryptCaesar(fileSrc, fileDst, key);
if (res != 0)
printf("Failed to encrypt/decrypt the file");
} }
// Vigenere // Vigenere
else if(strcmp(argv[1], "-v") == 0){ else if(strcmp(argv[1], "-v") == 0){
@ -98,7 +91,7 @@ int main(int argc, char *argv[]) {
if(strcmp(hook, "crypt") == 0) if(strcmp(hook, "crypt") == 0)
error = cryptVigenere(key, fileSrc, numberCharacters, buffer); error = cryptVigenere(key, fileSrc, 0, buffer);
free(key); free(key);
} }
@ -110,9 +103,6 @@ int main(int argc, char *argv[]) {
} }
// Add data to file
addDataToFile(buffer, fileDst);
/* Display error */ /* Display error */
/* /*
* if(error == 0) err(error, fileDst); * if(error == 0) err(error, fileDst);
@ -121,6 +111,7 @@ int main(int argc, char *argv[]) {
*/ */
free(fileDst); free(fileDst);
free(buffer); //free(buffer);
//free(data);
return 0; return 0;
} }

@ -5,7 +5,6 @@ int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacte
char matrice[SIZE_MATRICE_VIGENERE][SIZE_MATRICE_VIGENERE]; char matrice[SIZE_MATRICE_VIGENERE][SIZE_MATRICE_VIGENERE];
char *data = malloc(sizeof(char) * numberCharacters); char *data = malloc(sizeof(char) * numberCharacters);
char *dataVigenere = NULL; char *dataVigenere = NULL;
char c = 0;
int pos = 0; int pos = 0;
size_t i, j = 0; size_t i, j = 0;
size_t keyLength = strlen(key); size_t keyLength = strlen(key);