Commit 802e99a5 authored by batterseapower's avatar batterseapower
Browse files

Add comprehensive test for codepage encodings+recovery for them

parent 2216b897
......@@ -145,6 +145,7 @@ test('encoding001',
test('encoding002', normal, compile_and_run, [''])
test('encoding003', normal, compile_and_run, [''])
test('encoding004', normal, compile_and_run, [''])
test('environment001',
[when(msys(), expect_fail), # Doesn't work on MSYS; see #5599
......
This diff is collapsed.
, , , , - , , , - .
. , . , , , , , , , . , , - , . .
, ; . , , . ; . . , , , . , , , , , , , , , , - , .
, .
! . , - , , ? , , . , . , , : , . , . ? ? ? . ; ! , !
, , , , , , , , , . , , , , , . . , , , -, , . , , , - , , , . - , , . , : .
, , , . , , - . , , , , , , . , , , , , . , , , , , , : , ! , , . , , , , , , . , , , .
! , ! ! - , - , ! , , , -, . , , , , . , !.. -
; , : . - , . , . , , , , - , . , .
, , - . , , , , , , . . . , , . , , , : . , , - ?.. , . -, . , , : , , , , , , , , . 酻 . , , . . , - , . : , . , . , , . . , , , , . , . , , - , , , . . , - , .
, , , , , .
, , , , , - .
- , , .
, , , , .
, , , , , : , .
, , , , . , , !.. , , . . , , , , , , , . . : , ; . , . . , , , . . ? , - , . , -! . . . . . ; . , , . -, ? , , , , . , - . - , , . . - , -. ! . . . , ; , , . ! .
. , , . , . , , . , , , , , , , , - , . , 养 . -, : , , -. . , . . -. ! ! -. . , - , , , , , , . , . - , - ? , . , , ? . . , !
. . , , - . , , :
! ! , , , ! . ? , , ! : , , , !.. ,
, . , , , , , . , , . , , , , . , , , , . , . , , . , , . , , . , . , , ! ! - , , , , , , ! , !.. , , , - , . , .
. , , , , . . : , , , ; , , , , , , , , , , , , - , , :
,
- - -
, , :
,
; . , . , , . .
, , , . - . - , - . , , , , , .
, , - , . , , , . , , , . , ; . , , , , , .
, , , - , , . , . . , , , , , . , , , - , , , . , , , , , - , , . - ; , , , . , , . -, - , . - , , . , -, , . - -. , , , , . : , , ? , . , , , , . ; . , ? , , , , , , . , , , . , , ! , ! , , ! . ! , , , , , . , , . - , . , , , . , , . , , -. , . , , ; , . ! , , ! -? , , : , ? , , . ? -, , -
, . , - . , . , , , .
, , , . . , , , , , , . , . , , . , , . - , , . ! . , , ? , , , , , ? , ? , , , , ? , , ? ? -, , . , , , , , , , , ? , . ? , , , , . , , ? , , , - ? . , ! , - . , - ! , ( -) , . , , ! , - , , . -! , ; , . ! ! ! , : , : , , , , ? .
-, , . -, , ! , , , - . , , , , , . , ! , , , , ! , , , (, , , , , ), , , ! ! , ! !.. , , , ! ! , , . . ! , , , ? -, - , , -! , , , , ; , , . , , , , . ? , . , . , , ! , , .
\ No newline at end of file
《毛主席语录》全集(毛泽东语录)
作者:毛泽东
申明:本书由枫叶文学网[www.fywxw.com]自网络收集整理制作,仅供预览交流学习使用,版权归原作者和出版社所有,如果喜欢,请支持订阅购买正版.
《毛主席语录》再版前言
(一九六六年十二月十六日)
林彪
毛泽东同志是当代最伟大的马克思列宁主义者。毛泽东同志天才地、创造性地、全面地继承、捍卫和发展了马克思列宁主义,把马克思列宁主义提高到一个崭新的阶段。
毛泽东思想是在帝国主义走向全面崩溃,社会主义走向全世界胜利的时代的马克思列宁主义。毛泽东思想是反对帝国主义的强大的思想武器,是反对修正主义和教条主义的强大的思想武器。毛泽东思想是全党、全军和全国一切工作的指导方针。
因此,永远高举毛泽东思想伟大红旗,用毛泽东思想武装全国人民的头脑,坚持在一切工作中用毛泽东思想挂帅,是我党政治思想工作最根本的任务。广大工农兵群众、广大革命干部和广大知识分子,都必须把毛泽东思想真正学到手,做到人人读毛主席的书,听毛主席的话,照毛主席的指示办事,做毛主席的好战士。
学习毛主席著作,要带着问题学,活学活用,学用结合,急用先学,立竿见影,在“用”字上狠下功夫。为了把毛泽东思想真正学到手,要反复学习毛主席的许多基本观点,有些警句最好要背熟,反复学习,反复运用。在报纸上,要经常结合实际,刊登毛主席的语录,供大家学习和运用。几年来广大群众活学活用毛主席著作的经验,证明带着问题选学毛主席的语录,是一种学习毛泽东思想的好方法,容易收到立竿见影的效果。
为了帮助广大群众更好地学习毛泽东思想,我们选编了这本《毛主席语录》。各单位在组织学习的时候,应当结合形势、任务、群众的思想情况和工作情况,选学有关的内容。
现在我们伟大的祖国,正在出现一个工农兵掌握马克思列宁主义、毛泽东思想的新时代。毛泽东思想为广大群众所掌握,就会变成无穷无尽的力量,变成威力无比的精神原子弹。《毛主席语录》的大量出版,对广大群众掌握毛泽东思想,推动我国人民思想革命化,是一个极为重要的措施。希望每个同志认真地、刻苦地学习,在全国范围内,掀起活学活用毛主席著作的新高潮,在毛泽东思想的伟大红旗下,为把我国建设成为一个具有现代农业,现代工业,现代科学文化和现代国防的伟大社会主义国家而奋斗!
一、共产党
领导我们事业的核心力量是中国共产党。
指导我们思想的理论基础是马克思列宁主义。
——《中华人民共和国第一届全国人民代表大会第一次会议开幕词》(一九五四年九月十五日),一九五四年九月十六日《人民日报》
既要革命,就要有一个革命的党。没有一个革命的党,没有一个按照马克思列宁主义的革命理论和革命风格建立起来的革命党,就不可能领导工人阶级和广大人民群众战胜帝国主义及其走狗。
——《全世界革命力量团结起来,反对帝国主义的侵略》(一九四八年十一月),《毛泽东选集》第四卷第一三六零页。
没有中国共产党的努力,没有中国共产党人做中国人民的中流砥柱,中国的独立和解放是不可能的,中国的工业化和农业近代化也是不可能的。
——《论联合政府》(一九四五年四月二十四日),《毛泽东选集》第三卷第一零九八-一零九九页。
中国共产党是全中国人民的领导核心。没有这样一个核心,社会主义事业就不能胜利。
——《在接见出席中国新民主主义青年团第三次全国代表大会的全体代表时的讲话》(一九五七年五月二十五日),《新华半月刊》一九五七年第十二号第五七页。
一个有纪律的,有马克思列宁主义的理论武装的,采取自我批评方法的,联系人民群众的党。一个由这样的党领导的军队。一个由这样的党领导的各革命阶级各革命派别的统一战线。这三件是我们战胜敌人的主要武器。
——《论人民民主专政》(一九四九年六月三十日),《毛泽东选集》第四卷第一四八四页。
我们应当相信群众,我们应当相信党,这是两条根本的原理。如果怀疑这两条原理,那就什么事情也做不成了。
——《关于农业合作化问题》(一九五五年七月三十一日),人民出版社第九页。
以马克思列宁主义的理论思想武装起来的中国共产党,在中国人民中产生了新的工作作风,这主要的就是理论和实践相结合的作风,和人民群众紧密地联系在一起的作风以及自我批评的作风。
——《论联合政府》(一九四五年四月二十四日),《毛泽东选集》第三卷第一零九四—一零九五页。
指导一个伟大的革命运动的政党,如果没有革命理论,没有历史知识,没有对于实际运动的深刻的了解,要取得胜利是不可能的。
——《中国共产党在民族战争中的地位》(一九三八年十月),《毛泽东选集》第二卷第五二一页。
我们过去说过,整风运动是一个“普遍的马克思主义的教育运动”。整风就是全党通过批评和自我批评来学习马克思主义。在整风中间,我们一定可以更多地学到一些马克思主义。
——《在中国共产党全国宣传工作会议上的讲话》(一九五七年三月十二日),人民出版社版第一一页。
要使几亿人中的中国人生活得好,要把我们这个经济落后、文化落后的国家,建设成为富裕的、强盛的、具有高度文化的国家,这是一个很艰巨的任务。我们所以要整风,现在要整风,将来还要整风,要不断把我们身上的错误东西整掉,就是为了使我们能够更好地担负起这项任务,更好地同党外的一切立志改革的志士仁人共同工作。
——《在中国共产党全国宣传工作会议上的讲话》(一九五七年三月十二日),人民出版社版第一二页。
政策是革命政党一切实际行动的出发点,并且表现于行动的过程和归宿。一个革命政党的任何行动都是实行政策。不是实行正确的政策,就是实行错误的政策;不是自觉地,就是盲目地实行某种政策。所谓经验,就是实行政策的过程和归宿。政策必须在人民实践中,也就是经验中,才能证明其正确与否,才能确定其正确和错误的程度。但是,人们的实践,特别是革命政党和革命群众的实践,没有不同这种或那种政策相联系的。因此,在每一行动之前,必须向党员和群众讲明我们按情况规定的政策。否则,党员和群众就会脱离我们政策的领导而盲目行动,执行错误的政策。
——《关于工商业政策》(一九四八年二月二十七日),《毛泽东选集》第四卷第一二八四页。
我党规定了中国革命的总路线和总政策,又规定了各项具体的工作路线和各项具体的政策。但是,许多同志往往记住了我党的具体的个别的工作路线和政策,忘记了我党的总路线和总政策。而如果真正忘记了我党的总路线和总政策,我们就将是一个盲目的不完全的不清醒的革命者,在我们执行具体工作路线和具体政策的时候,就会迷失方向,就会左右摇摆,就会贻误我们的工作。
——《在晋绥干部会议上的讲话》(一九四八年四月一日),《毛泽东选集》第四卷第一三一四页。
政策和策略是党的生命,各级领导同志务必充分注意,万万不可粗心大意。
——《关于情况的通报》(一九四八年三月二十日),《毛泽东选集》第四卷第一二九六页。
二、阶级和阶级斗争
阶级斗争,一些阶级胜利了,一些阶级消灭了。这就是历史,这就是几千年的文明史。拿这个观点解释历史的就叫做历史的唯物主义,站在这个观点的反面的是历史的唯心主义。
——《丢掉幻想,准备斗争》(一九四九年八月十四日), ——《毛泽东选集》第四卷第一四九一页
在阶级社会中,每一个人都在一定的阶级地位中生活,各种思想无不打上阶级的烙印。
——《实践论》(一九三七年七月), ——《毛泽东选集》第一卷第二七二页
社会的变化,主要地是由于社会内部矛盾的发展,即生产力和生产关系的矛盾,阶级之间的矛盾,新旧之间的矛盾,由于这些矛盾的发展,推动了社会的前进,推动了新旧社会的代谢。
——《矛盾论》(一九三七年八月), ——《毛泽东选集》第一卷第二九零页枫叶文学网[www.fywxw.com]
地主阶级对于农民的残酷的经济剥削和政治压迫,迫使农民多次地举行起义,以反抗地主阶级的统治。……在中国封建社会里,只有这种农民的阶级斗争、农民的起义和农民的战争,才是历史发展的真正动力。
——《中国革命和中国共产党》(一九三九年十二月), ——《毛泽东选集》第二卷第六一九页
民族斗争,说到底,是一个阶级斗争问题。在美国压迫黑人的,只是白色人种中的反动统治集团。他们绝不能代表白色人种中占绝大多数的工人、农民、革命的知识分子和其他开明人士。
——《支持美国黑人反对美帝国主义种族歧视的正义斗争的声明》(一九六三年八月八日), ——《全世界人民团结起来打败美国侵略者及其一切走狗》人民出版社版第四页
人民靠我们去组织。中国的反动分子,靠我们组织起人民去反他打倒。凡是反动的东西,你不打,他就不倒。这也和扫地一样,扫帚不到,灰尘照例不会自己跑掉。
——《抗日战争胜利后的时局和我们的方针》(一九四五年八月十三日), ——《毛泽东选集》第四卷第一一三一页
敌人是不会自行消灭的。无论是中国的反动派,或是美国帝国主义在中国的侵略势力,都不会自行退出历史舞台。
——《将革命进行到底》(一九四八年十二月三十日), ——《毛泽东选集》第四卷第一三七九页
革命不是请客吃饭,不是做文章,不是绘画绣花,不能那样雅致,那样从容不迫,文质彬彬,那样温良恭俭让。革命是暴动,是一个阶级推翻一个阶级的暴烈的行动。
——《湖南农民运动考察报告》(一九二七年三月), ——《毛泽东选集》第一卷第一八页
蒋介石对于人民是寸权必夺,寸利必得。我们呢?我们的方针是针锋相对,寸土必争。我们是按照蒋介石的办法办事。蒋介石总是要强迫人民接受战争,他左手拿着刀,右手也拿着刀。我们就按照他的办法,也拿起刀来。……现在蒋介石已经在磨刀了,因此,我们也要磨刀。
——《抗日战争胜利后的时局和我们的方针》(一九四五年八月十三日), ——《毛泽东选集》第四卷第一一二六 ——一一二七页
谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题。中国过去一切革命斗争成效甚少,其基本原因就是因为不能团结真正的朋友,以攻击真正的敌人。革命党是群众的向导,在革命中未有革命党领错了路而革命不失败的。我们的革命要有不领错路和一定成功的把握,不可不注意团结我们的真正的朋友,以攻击我们的真正的敌人。我们要分辨真正的敌友,不可不将中国社会各阶级的经济地位及其对于革命的态度,作一个大概的分析。
——《中国社会各阶级的分析》(一九二六年三月), ——《毛泽东选集》第一卷第三页
一切勾结帝国主义的军阀、官僚、买办阶级、大地主阶级以及附属于他们的一部分反动知识界,是我们的敌人。工业无产阶级是我们革命的领导力量。一切半无产阶级、小资产阶级,是我们最接近的朋友。那动摇不定的中产阶级,其右翼可能是我们的敌人,其左翼可能是我们的朋友 ——但我们要时常提防他们,不要让他们扰乱了我们的阵线。
——《中国社会各阶级的分析》(一九二六年三月), ——《毛泽东选集》第一卷第八 ——第九页
什么人站在革命人民方面,他就是革命派,什么人站在帝国主义封建主义官僚资本主义方面,他就是反革命派。什么人只是口头上站在革命人民方面而在行动上则另是一样,他就是一个口头革命派,如果不但在口头上而且在行动上也站在革命人民方面,他就是一个完全的革命派。
在中国人民政治协商会议第一届全国委员会第二次会议上的闭幕词(一九五零年六月二十三日),一九五零年六月二十四日 ——《人民日报》
我认为,对我们来说,一个人,一个党,一个军队,或者一个学校,如若不被敌人反对,那就不好了那一定是同敌人同流合污了。如若被敌人反对,那就好了,那就证明我们同敌人划清界线了。如若敌人起劲地反对我们,把我们说得一塌糊涂,一无是处,那就更好了,那就证明我们不但同敌人划清了界线,而且证明我们的工作是很有成绩的了。
——《被敌人反对是好事而不是坏事》(一九
\ No newline at end of file
《毛主席语录》全集(毛泽东语录)
作者:毛泽东
申明:本书由枫叶文学网[www.fywxw.com]自网络收集整理制作,仅供预览交流学习使用,版权归原作者和出版社所有,如果喜欢,请支持订阅购买正版.
《毛主席语录》再版前言
(一九六六年十二月十六日)
林彪
毛泽东同志是当代最伟大的马克思列宁主义者。毛泽东同志天才地、创造性地、全面地继承、捍卫和发展了马克思列宁主义,把马克思列宁主义提高到一个崭新的阶段。
毛泽东思想是在帝国主义走向全面崩溃,社会主义走向全世界胜利的时代的马克思列宁主义。毛泽东思想是反对帝国主义的强大的思想武器,是反对修正主义和教条主义的强大的思想武器。毛泽东思想是全党、全军和全国一切工作的指导方针。
因此,永远高举毛泽东思想伟大红旗,用毛泽东思想武装全国人民的头脑,坚持在一切工作中用毛泽东思想挂帅,是我党政治思想工作最根本的任务。广大工农兵群众、广大革命干部和广大知识分子,都必须把毛泽东思想真正学到手,做到人人读毛主席的书,听毛主席的话,照毛主席的指示办事,做毛主席的好战士。
学习毛主席著作,要带着问题学,活学活用,学用结合,急用先学,立竿见影,在“用”字上狠下功夫。为了把毛泽东思想真正学到手,要反复学习毛主席的许多基本观点,有些警句最好要背熟,反复学习,反复运用。在报纸上,要经常结合实际,刊登毛主席的语录,供大家学习和运用。几年来广大群众活学活用毛主席著作的经验,证明带着问题选学毛主席的语录,是一种学习毛泽东思想的好方法,容易收到立竿见影的效果。
为了帮助广大群众更好地学习毛泽东思想,我们选编了这本《毛主席语录》。各单位在组织学习的时候,应当结合形势、任务、群众的思想情况和工作情况,选学有关的内容。
现在我们伟大的祖国,正在出现一个工农兵掌握马克思列宁主义、毛泽东思想的新时代。毛泽东思想为广大群众所掌握,就会变成无穷无尽的力量,变成威力无比的精神原子弹。《毛主席语录》的大量出版,对广大群众掌握毛泽东思想,推动我国人民思想革命化,是一个极为重要的措施。希望每个同志认真地、刻苦地学习,在全国范围内,掀起活学活用毛主席著作的新高潮,在毛泽东思想的伟大红旗下,为把我国建设成为一个具有现代农业,现代工业,现代科学文化和现代国防的伟大社会主义国家而奋斗!
一、共产党
领导我们事业的核心力量是中国共产党。
指导我们思想的理论基础是马克思列宁主义。
——《中华人民共和国第一届全国人民代表大会第一次会议开幕词》(一九五四年九月十五日),一九五四年九月十六日《人民日报》
既要革命,就要有一个革命的党。没有一个革命的党,没有一个按照马克思列宁主义的革命理论和革命风格建立起来的革命党,就不可能领导工人阶级和广大人民群众战胜帝国主义及其走狗。
——《全世界革命力量团结起来,反对帝国主义的侵略》(一九四八年十一月),《毛泽东选集》第四卷第一三六零页。
没有中国共产党的努力,没有中国共产党人做中国人民的中流砥柱,中国的独立和解放是不可能的,中国的工业化和农业近代化也是不可能的。
——《论联合政府》(一九四五年四月二十四日),《毛泽东选集》第三卷第一零九八-一零九九页。
中国共产党是全中国人民的领导核心。没有这样一个核心,社会主义事业就不能胜利。
——《在接见出席中国新民主主义青年团第三次全国代表大会的全体代表时的讲话》(一九五七年五月二十五日),《新华半月刊》一九五七年第十二号第五七页。
一个有纪律的,有马克思列宁主义的理论武装的,采取自我批评方法的,联系人民群众的党。一个由这样的党领导的军队。一个由这样的党领导的各革命阶级各革命派别的统一战线。这三件是我们战胜敌人的主要武器。
——《论人民民主专政》(一九四九年六月三十日),《毛泽东选集》第四卷第一四八四页。
我们应当相信群众,我们应当相信党,这是两条根本的原理。如果怀疑这两条原理,那就什么事情也做不成了。
——《关于农业合作化问题》(一九五五年七月三十一日),人民出版社第九页。
以马克思列宁主义的理论思想武装起来的中国共产党,在中国人民中产生了新的工作作风,这主要的就是理论和实践相结合的作风,和人民群众紧密地联系在一起的作风以及自我批评的作风。
——《论联合政府》(一九四五年四月二十四日),《毛泽东选集》第三卷第一零九四—一零九五页。
指导一个伟大的革命运动的政党,如果没有革命理论,没有历史知识,没有对于实际运动的深刻的了解,要取得胜利是不可能的。
——《中国共产党在民族战争中的地位》(一九三八年十月),《毛泽东选集》第二卷第五二一页。
我们过去说过,整风运动是一个“普遍的马克思主义的教育运动”。整风就是全党通过批评和自我批评来学习马克思主义。在整风中间,我们一定可以更多地学到一些马克思主义。
——《在中国共产党全国宣传工作会议上的讲话》(一九五七年三月十二日),人民出版社版第一一页。
要使几亿人中的中国人生活得好,要把我们这个经济落后、文化落后的国家,建设成为富裕的、强盛的、具有高度文化的国家,这是一个很艰巨的任务。我们所以要整风,现在要整风,将来还要整风,要不断把我们身上的错误东西整掉,就是为了使我们能够更好地担负起这项任务,更好地同党外的一切立志改革的志士仁人共同工作。
——《在中国共产党全国宣传工作会议上的讲话》(一九五七年三月十二日),人民出版社版第一二页。
政策是革命政党一切实际行动的出发点,并且表现于行动的过程和归宿。一个革命政党的任何行动都是实行政策。不是实行正确的政策,就是实行错误的政策;不是自觉地,就是盲目地实行某种政策。所谓经验,就是实行政策的过程和归宿。政策必须在人民实践中,也就是经验中,才能证明其正确与否,才能确定其正确和错误的程度。但是,人们的实践,特别是革命政党和革命群众的实践,没有不同这种或那种政策相联系的。因此,在每一行动之前,必须向党员和群众讲明我们按情况规定的政策。否则,党员和群众就会脱离我们政策的领导而盲目行动,执行错误的政策。
——《关于工商业政策》(一九四八年二月二十七日),《毛泽东选集》第四卷第一二八四页。
我党规定了中国革命的总路线和总政策,又规定了各项具体的工作路线和各项具体的政策。但是,许多同志往往记住了我党的具体的个别的工作路线和政策,忘记了我党的总路线和总政策。而如果真正忘记了我党的总路线和总政策,我们就将是一个盲目的不完全的不清醒的革命者,在我们执行具体工作路线和具体政策的时候,就会迷失方向,就会左右摇摆,就会贻误我们的工作。
——《在晋绥干部会议上的讲话》(一九四八年四月一日),《毛泽东选集》第四卷第一三一四页。
政策和策略是党的生命,各级领导同志务必充分注意,万万不可粗心大意。
——《关于情况的通报》(一九四八年三月二十日),《毛泽东选集》第四卷第一二九六页。
二、阶级和阶级斗争
阶级斗争,一些阶级胜利了,一些阶级消灭了。这就是历史,这就是几千年的文明史。拿这个观点解释历史的就叫做历史的唯物主义,站在这个观点的反面的是历史的唯心主义。
——《丢掉幻想,准备斗争》(一九四九年八月十四日), ——《毛泽东选集》第四卷第一四九一页
在阶级社会中,每一个人都在一定的阶级地位中生活,各种思想无不打上阶级的烙印。
——《实践论》(一九三七年七月), ——《毛泽东选集》第一卷第二七二页
社会的变化,主要地是由于社会内部矛盾的发展,即生产力和生产关系的矛盾,阶级之间的矛盾,新旧之间的矛盾,由于这些矛盾的发展,推动了社会的前进,推动了新旧社会的代谢。
——《矛盾论》(一九三七年八月), ——《毛泽东选集》第一卷第二九零页枫叶文学网[www.fywxw.com]
地主阶级对于农民的残酷的经济剥削和政治压迫,迫使农民多次地举行起义,以反抗地主阶级的统治。……在中国封建社会里,只有这种农民的阶级斗争、农民的起义和农民的战争,才是历史发展的真正动力。
——《中国革命和中国共产党》(一九三九年十二月), ——《毛泽东选集》第二卷第六一九页
民族斗争,说到底,是一个阶级斗争问题。在美国压迫黑人的,只是白色人种中的反动统治集团。他们绝不能代表白色人种中占绝大多数的工人、农民、革命的知识分子和其他开明人士。
——《支持美国黑人反对美帝国主义种族歧视的正义斗争的声明》(一九六三年八月八日), ——《全世界人民团结起来打败美国侵略者及其一切走狗》人民出版社版第四页
人民靠我们去组织。中国的反动分子,靠我们组织起人民去反他打倒。凡是反动的东西,你不打,他就不倒。这也和扫地一样,扫帚不到,灰尘照例不会自己跑掉。
——《抗日战争胜利后的时局和我们的方针》(一九四五年八月十三日), ——《毛泽东选集》第四卷第一一三一页
敌人是不会自行消灭的。无论是中国的反动派,或是美国帝国主义在中国的侵略势力,都不会自行退出历史舞台。
——《将革命进行到底》(一九四八年十二月三十日), ——《毛泽东选集》第四卷第一三七九页
革命不是请客吃饭,不是做文章,不是绘画绣花,不能那样雅致,那样从容不迫,文质彬彬,那样温良恭俭让。革命是暴动,是一个阶级推翻一个阶级的暴烈的行动。
——《湖南农民运动考察报告》(一九二七年三月), ——《毛泽东选集》第一卷第一八页
蒋介石对于人民是寸权必夺,寸利必得。我们呢?我们的方针是针锋相对,寸土必争。我们是按照蒋介石的办法办事。蒋介石总是要强迫人民接受战争,他左手拿着刀,右手也拿着刀。我们就按照他的办法,也拿起刀来。……现在蒋介石已经在磨刀了,因此,我们也要磨刀。
——《抗日战争胜利后的时局和我们的方针》(一九四五年八月十三日), ——《毛泽东选集》第四卷第一一二六 ——一一二七页
谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题。中国过去一切革命斗争成效甚少,其基本原因就是因为不能团结真正的朋友,以攻击真正的敌人。革命党是群众的向导,在革命中未有革命党领错了路而革命不失败的。我们的革命要有不领错路和一定成功的把握,不可不注意团结我们的真正的朋友,以攻击我们的真正的敌人。我们要分辨真正的敌友,不可不将中国社会各阶级的经济地位及其对于革命的态度,作一个大概的分析。
——《中国社会各阶级的分析》(一九二六年三月), ——《毛泽东选集》第一卷第三页
一切勾结帝国主义的军阀、官僚、买办阶级、大地主阶级以及附属于他们的一部分反动知识界,是我们的敌人。工业无产阶级是我们革命的领导力量。一切半无产阶级、小资产阶级,是我们最接近的朋友。那动摇不定的中产阶级,其右翼可能是我们的敌人,其左翼可能是我们的朋友 ——但我们要时常提防他们,不要让他们扰乱了我们的阵线。
——《中国社会各阶级的分析》(一九二六年三月), ——《毛泽东选集》第一卷第八 ——第九页
什么人站在革命人民方面,他就是革命派,什么人站在帝国主义封建主义官僚资本主义方面,他就是反革命派。什么人只是口头上站在革命人民方面而在行动上则另是一样,他就是一个口头革命派,如果不但在口头上而且在行动上也站在革命人民方面,他就是一个完全的革命派。
在中国人民政治协商会议第一届全国委员会第二次会议上的闭幕词(一九五零年六月二十三日),一九五零年六月二十四日 ——《人民日报》
我认为,对我们来说,一个人,一个党,一个军队,或者一个学校,如若不被敌人反对,那就不好了那一定是同敌人同流合污了。如若被敌人反对,那就好了,那就证明我们同敌人划清界线了。如若敌人起劲地反对我们,把我们说得一塌糊涂,一无是处,那就更好了,那就证明我们不但同敌人划清了界线,而且证明我们的工作是很有成绩的了。
——《被敌人反对是好事而不是坏事》(一九
\ No newline at end of file
import System.IO
import System.Directory
import Data.Char
import System.Process
import Control.Monad
import qualified Data.ByteString as BS
import System.Environment
import System.Exit
import System.FilePath
import Data.Maybe
import qualified Data.Map as M
import GHC.Foreign
import Control.Exception
decode :: TextEncoding -> BS.ByteString -> IO (Either SomeException String)
decode enc bs = try $ BS.useAsCStringLen bs $ peekCStringLen enc
encode :: TextEncoding -> String -> IO (Either SomeException BS.ByteString)
encode enc cs = try $ withCStringLen enc cs $ BS.packCStringLen
decodeEncode :: TextEncoding -> BS.ByteString -> IO (Either SomeException BS.ByteString)
decodeEncode enc bs = decode enc bs `bind` encode enc
encodedecode :: TextEncoding -> String -> IO (Either SomeException String)
encodedecode enc bs = encode enc bs `bind` decode enc
bind mx fxmy = do
ei_e_cs <- mx
case ei_e_cs of
Left e -> return (Left e)
Right cs -> fxmy cs
main :: IO ()
main = forM_ [ ("CP936", 2, "CP936", Just "CP936-UTF8") -- Representative (roundtrippable) DBCS
, ("CP1251", 1, "CP1251", Just "CP1251-UTF8") -- Representative SBCS
, ("UTF-8", 4, "CP936-UTF8", Nothing) -- Sanity check
] $ \(enc_name, max_byte_length, file, mb_utf8_file) -> do
putStrLn $ "== " ++ enc_name
let fp = "encoded-data" </> file <.> "txt"
enc <- mkTextEncoding enc_name
bs <- BS.readFile fp
-- In a DBCS you should never fail to encode truncated input for two consecutive truncation points,
-- assuming that the input file is actually error free:
testTruncations enc max_byte_length bs
-- Should be able to roundtrip arbitrary rubbish, as long as we use the right encoding
roundtrip_enc <- mkTextEncoding (enc_name ++ "//ROUNDTRIP")
testRoundtripping roundtrip_enc bs
-- Just check that we actually decode to the right thing, for good measure
case mb_utf8_file of
Nothing -> return ()
Just utf8_file -> do
utf8_bs <- BS.readFile ("encoded-data" </> utf8_file <.> "txt")
Right expected <- decode utf8 utf8_bs
Right actual <- decode enc bs
unless (expected == actual) $ do
putStrLn (bsDiff 0 actual expected)
forTruncations :: BS.ByteString -> (BS.ByteString -> IO a) -> IO [a]
forTruncations bs f = forSplits bs $ \before _ -> f before
forSplits :: BS.ByteString -> (BS.ByteString -> BS.ByteString -> IO a) -> IO [a]
forSplits bs f = forM [(800 * block) + ix | block <- [0..len `div` 800], ix <- [0..100]] $ \i -> uncurry f (BS.splitAt i bs)
where len = BS.length bs
testTruncations :: TextEncoding -> Int -> BS.ByteString -> IO ()
testTruncations enc max_byte_length bs = do
failures <- fmap catMaybes $ forTruncations bs $ testTruncation enc
let failure_map = M.fromList failures
forM_ failures $ \(i, e) -> do
let js = [i+1..i+(max_byte_length - 1)]
case sequence (map (`M.lookup` failure_map) js) of
Nothing -> return ()
Just es -> putStrLn ("Failed on consecutive truncated byte indexes " ++ show (i:js) ++ " (" ++ show (e:es) ++ ")")
testTruncation :: TextEncoding -> BS.ByteString -> IO (Maybe (Int, SomeException))
testTruncation enc expected = do
--putStr (show i ++ ": ") >> hFlush stdout
ei_e_actual <- decodeEncode enc expected
case ei_e_actual of
Left e -> return (Just (BS.length expected, e))
Right actual | expected /= actual -> error $ "Mismatch on success when truncating at byte index " ++ show (BS.length expected)
| otherwise -> return Nothing
testRoundtripping :: TextEncoding -> BS.ByteString -> IO ()
testRoundtripping roundtrip_enc bs = void $ forSplits bs $ \before after -> do
let expected = before `BS.append` (fromIntegral (BS.length before `mod` 256) `BS.cons` after)
Right actual <- decodeEncode roundtrip_enc expected
when (actual /= expected) $ do
let i_str = show (BS.length before)
putStrLn $ "Failed to roundtrip given mutant byte at index " ++ i_str ++ " (" ++ bsDiff 0 (BS.unpack actual) (BS.unpack expected) ++ ")"
-- Possibly useful for debugging porpoises:
--BS.writeFile (i_str ++ ".expected") expected
--BS.writeFile (i_str ++ ".actual") actual
bsDiff :: (Show a, Eq a) => Int -> [a] -> [a] -> String
bsDiff _ [] [] = error "bsDiff"
bsDiff _ [] bs = "actual " ++ show (length bs) ++ " elements shorter than expected"
bsDiff _ as [] = "expected " ++ show (length as) ++ " elements shorter than actual"
bsDiff i (a:as) (b:bs) | a == b = bsDiff (i + 1) as bs
| otherwise = show a ++ " /= " ++ show b ++ " at index " ++ show i
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment