《水浒全传》“征王庆”故事的地理问题

2021-11-11 22:12王同舟
文学与文化 2021年3期

王同舟

内容提要:《水浒志传评林》等《水浒传》简本插增的“征王庆”故事,在故事开始阶段仍试图将故事安排在“淮西”地域,随着故事的展开,因故事编写者的智识不足,其地理描述出现矛盾。杨定见等文士改写简本故事,插入繁本成为《水浒全传》,其“征王庆”故事将故事的发生地置换为宋时的“京西路”“荆湖路”等地,完全撇开“淮西”。明代开国皇帝朱元璋及其众多功臣出身淮西,将王庆造反故事置于淮西描述,易于引起影射之嫌,置换原因在于政治上的避讳。《水浒全传》描述的王庆造反地域,与明代成化年间荆襄流民大起义范围大致相同,可能说明小说加工过程中吸收此次起义的历史作为素材。

《水浒传》百回本第七十二回“柴进簪花入禁院”里,写柴进混入皇宫,在睿思殿看到宋徽宗书房素白屏风上御书四大寇姓名——“山东宋江,淮西王庆,河北田虎,江南方腊”。闽地简本《水浒志传评林》等据此附会并增插“征田虎”“征王庆”故事;杨定见等复据简本插增的故事,加以改造,将其纳入百回繁本系统,成为百二十回本《忠义水浒全传》(下文采用通行简称《水浒全传》)。时至今日,《水浒全传》这两个故事仍然常常被视为赘疣,它们从简本向着繁本艺术水平提升的成果也受到忽略。本文试就其中征王庆故事中的地理描述,揭示《水浒全传》改造简本时的艺术用心。

一 《水浒志传评林》“征王庆”故事的地理描述

水浒故事与宋元以来流行的说三分、五代史故事不同。说三分、五代史属于“讲史”,可以改造成为后来的历史演义;水浒故事则不然,它的主要人物“三十六天罡”中,仅有寥寥数人可以在历史中找到原型,绝大多数故事出于虚构,它的性质接近“历史小说”而不是“历史演义”。历史小说要以虚构的故事带给读者较强的历史真实感,必须将故事置于历史的时空中,对时与地做出相对精准的交代,是提供“真实感”的必要前提。“征王庆”的故事,在时间问题上受益于其他水浒故事,无须格外留心,但地理问题却需要另行设置。

“淮西”究竟在哪里?由于《水浒传》所叙为北宋之事,成书过程涉及宋、元、明三代,需要对三个朝代的“淮西”做一梳理。宋代实际以“路”为地方最高一级行政区划。在宋代,淮西指的是淮南西路。《宋史》卷八十五《地理志一》称:

至道三年,分天下为十五路,天圣析为十八,元丰又析为二十三:曰京东东、西,曰京西南、北,曰河北东、西,曰永兴,曰秦凤,曰河东,曰淮南东、西,曰两浙,曰江南东、西,曰荆湖南、北,曰成都、梓、利、夔,曰福建,曰广南东、西。

同书卷八十八《地理志四》又记:“淮南路,旧为一路,熙宁五年,分为东、西两路。”

按照《宋史》记载,淮南路基本是淮河以南、长江以北的地带,北宋时的淮南东路有十州、二军、三十县,扬州为该地最重要城市及路治所在,其他还有楚州(今淮安)等在《水浒传》中出现过的地方。淮南西路有府一、州七、军二、县三十三,路治在寿春。“州七:庐,蕲,和,舒,濠,光,黄。军二:六安,无为。县三十三。”淮南西路的辖地,大部分在今安徽境内,包括寿春(今寿县)、庐州(今合肥)、舒州(今安庆)、和州、濠州(今凤阳)等地,也包括河南一部分,如光州所属固始等县,今属河南;西部包括今鄂东地区的蕲春、蕲水、广济(今称武穴)、黄梅、罗田等地。

元代地方最高行政区划为行中书省,以下设路、州、府、县等,宋代的“淮南西路”在元代总体属于“河南江北等处行中书省”。河南行省中并没有直接称为“淮东”“淮西”的路、州,设于行省内的监察、军政机构中则有“淮东道宣慰使司”“江北淮东道肃政廉访司”“淮西江北道肃政廉访司”等。淮西江北道所辖,据乾隆修《钦定续文献通考》卷二百三十二,有庐州路(领合肥、梁县、舒县三县,和州、无为、六安三州,三州下辖八县)、安丰路(领寿春、安丰、霍丘、下蔡、蒙城五县,濠州一州,濠州领钟离、定远、怀远三县)、安庆路(领怀宁、宿松、望江、太湖、桐城、潜山六县)。与宋代淮南西路相比,主要的变化是宋代的蕲州所领地区(今属湖北东部地区的蕲春等县)被划出去。可见,由宋元时期,“淮西”的范围大体固定,主要指江淮之间的今属安徽的地区,西起淮河上游,东抵今洪泽湖西一线。

明代的行政区划既没有“淮西路”,也没有“淮西道”,宋元属于淮西的地区,在明代直隶于南京(南直隶)。明代将宋元“淮西”之地划归凤阳府、庐州府和安庆府管辖。据乾隆修《钦定续文献通考》卷二百三十二,凤阳府所辖相当于元代安丰路,领六县、五州(五州领七县)。府治凤阳为元代濠州,所辖六县为凤阳、临淮、怀远、定远、五河、虹县,五州为寿州、泗州、颍州、宿州、亳州。庐州府,所辖相当于元代庐州路,领合肥、舒城、庐江三县,无为(领巢县)、六安(领英山、霍山二县)二州。安庆府,所辖相当于元代安庆路,领怀宁、桐城、潜山、太湖、宿松、望江六县。

《水浒传》这类起初流行于民间的故事,不需要讲述者进行多么精确的历史考据,但它展开发生于“淮西”的故事时,应当多多少少采用上文所列举的一些具体地名,以造成事件确实发生于“淮西”的感觉。当它变成书面文学作品时,需要提升这方面的精确性,除非它预先将易患考据癖的知识分子完全排除在自己的读者之外。

《水浒志传评林》“征王庆”故事中一再提及“淮西地面”,但从未正面说明“淮西地面”的具体范围。作者想象中的“淮西”,是否与历史上的“淮西”大体吻合,需要从小说里寻找线索。

小说对王庆活动范围的交代,比较明确地见于第八十七回,该回叙蔡京、高俅与童贯商议保举宋江等前去平定王庆,借三人对话概略交代王庆造反的前因后果:

童贯曰:“下官院里昨日连接得四五封告急文书,皆申说王庆掠了淮西一派一十七座军州,自称秦王,建号兴国,为患不小。……不如趁此事,太尉与蔡太师商议,同举保前去收复王庆,也有一年光景。此计如何?”高俅听罢,对蔡太师与童贯曰:“不想王庆三年前因恼了我,被我寻事罪他,发配李州牢官。谁知今日来如此大弄!”(第527 页)

第八十八回至第九十回,详叙王庆造反经过之后,对整个形势进行总结:王庆占领秦州,“称为秦王,建号兴国,分遣众将,占了淮西一路城池。虽则官军屡与他对敌,不能取胜,王庆自料宋朝没有对手,乘势侵占河南,地方官军抵敌不过,以致告急文书雪片奏来”。并借蔡京之口再次强调形势危急:“今有淮西王庆作乱,占去一十七座军州,比田虎之恶胜过十倍,今过河南地方。”(第550 页)

从这些文字可以看出作者叙述的王庆造反有两个关键地点,一是造反的爆发点李州,一是造反势力的核心区秦州。弄清这两个地点在何处,才可大体推测出作者心目中的“淮西”究竟在哪里,从而对作者的知识体系、写作才能、作品的艺术特点等问题进行评判。

“李州”这一地名极为罕见,宋元明三代,并无称为“李州”的县级以上行政区域。它可能只是作者虚构出来的地名,只能通过对作品的梳理,把这一地点放到历史的版图上。第八十八回叙王庆得罪高俅,开封府尹承高俅之意,“将王庆决杖二十,刺配淮西李州牢城安置”,这里说从东京到李州有一千里路(第530 页)。王庆在距李州五百里处死了儿子,而后出现了路途第一个地名“路口镇”。王庆在路口镇结识镇尉司都头龚端,龚端托王庆带信给其弟龚正。龚正在“属永州界”的“四路镇”开酒店,王庆在此得龚正金钱资助。离开四路镇,“行了三十里”,被地痞黄达追赶,摆脱黄达后,与随行两公人“走上五十里,来到李州安下”(第533 页),可见由四路镇再行百里左右即可到达李州。这一路,除了“永州”,并未出现府、州、县级的地名,只有“路口镇”“四路镇”之类小地名。

《水浒志传评林》下文叙述王庆逃亡、造反过程,又数次提到“永州”。小说第八十九回的回目是“王庆打死张太尉,夜走永州遇李杰”,正文中说,“这王庆起出城外,望东而走,一日一夜,约走二百余里,到永镇城”,似永镇城即回目中的“永州”。王庆造反之后,又“令人去永州镇上请龚端、龚正兄弟二人”,提及二人曾陷入“永州牢城”(第九十回,第549 页)。可见,书中永州、永镇城、永州镇所指为一。然而“永州”作为地名,最常见的是指湖南永州。宋元明数代,淮河流域并无县级以上地区称为“永州”,能与“永州”地名有所牵涉的,倒是位于河南、安徽、江苏、山东四省结合处的河南“永城”。永城在宋元明俱为县,但它位于淮北之北,不属于淮西范围。

王庆杀官造反始于李州,而真正的“大弄”则是在小说中提到的另一个重要地点“镇阳县”。王庆在李州牢城,杀死兵马提辖张世开,向东逃亡到“永州”,又辗转经过“吴太公庄”、四路镇,到达“镇阳县”,托庇于姨兄范全,娶了出身于镇阳县豪强之家的段三娘。其后火并镇阳县南五十余里的红桃山强人,招兵买马,进而占领秦州,僭号称王(第549 页)。

《水浒志传评林》提及的一系列地名,唯“镇阳县”可以提供一些信息,使读者可以模糊地看到作者想象中“淮西”的方位。第八十九回中,小说有一段含混的描写,似乎王庆一度想经过淮河浮桥逃往别处,在这里首度出现“镇阳县”地名,并出现了两个信息明确的地名“淮河”和“淮安州”,可以作为定位“镇阳县”的参照:

一日来到淮西地界,到一所林子,王庆入去歇脚。只听得林子边亦有一人歇脚,那人见王庆来曰:“尊兄从那里来?”王庆曰:“从京师来,要去淮安州下文字。”那人曰:“尊兄生得长大,面上又有金印,恐难过淮河浮桥。”王庆曰:“如何过不得?”那人曰:“桥上有一百五十人守把……”(第540 页)

后文紧接着交代,王庆的姨兄、“在镇阳县做院子”的范全就住在浮桥边上,可见小说提到的“镇阳县”就在淮河边上,在淮河的对岸是淮安州。文中“一日来到淮西地界”提示读者,这里写到的镇阳县,正属淮西。由此也将镇阳附近的红桃山、秦州等地,纳入“淮西地界”。

宋元明数代,淮河流域并没有“镇阳县”,笔者推测小说里的“镇阳县”,可能是由“正阳关”“正阳镇”而来。正阳关位于淮水之南的寿州,清康熙修《江南通志》卷七十九载:“正阳关,在正阳镇,明成化元年始立。”它是明代重要的榷关,《江南通志》卷二十八载:“正阳关,寿州西南,亦榷课之所,一名东正阳,与颍上县之西正阳夹淮相对。”正阳关在明代颇有名气,《水浒志传评林》“镇阳县”有可能即是据传闻而写,小说提及镇阳县有“东镇市”(第540 页)和“西阳镇”(第545 页),似乎也跟正阳关分东正阳、西正阳相类。不过,如果这“镇阳县”确以“正阳关”为原型的话,那与之相关的府州不当是“淮安”,倒是“淮南”,即寿州——旧时淮南王封地。

同样,上文所引第八十八回中说,“王庆自料宋朝没有对手,乘势侵占河南”,“河南”一语也暴露了作者的写作年代和对“淮西”的认识。宋代(北宋)京城开封左右,分别为“京东路”与“京西路”,无所谓“河南”的说法;元代将长江以北、黄河以南广大地区划为“河南江北等处行中书省”,如果硬要简称为“河南”的话,那元代的淮西也包括在“河南”之内。而作者的意思,显然是说王庆占领淮西之后,又继续侵夺属于“河南”的地方。这种说法,其“河南”一词,所指范围大体等于今之河南省,而这恰恰是明代的情况。明代设两京十三司(布政司),十三司中的“河南”正在“淮西”北面。“河南”一词,属于明代的用法。

显然,《水浒志传评林》在叙述王庆出身、造反过程时,对“淮西”的描写十分含混,但大体可以得出模糊的印象:小说里的淮西,在汴梁之南,淮河附近。但《水浒志传评林》转入对宋江平叛过程的描写之后,出现了令人惊异的现象,小说暗示淮西位于汴梁之西,甚至位于整个宋朝的西陲。第九十回写朝廷封宋江为“征西大将军”,这一官职已经点出作者对淮西地理位置的改变。第九十二回,回前诗感慨宋江军队与王庆军队相峙,有“将军未得封侯印,西地兵疲亦可哀”之句(第557 页);第九十三回,宋徽宗下诏褒奖宋江军队,其中指责淮西王庆“外据边陲”,又表彰宋江“灵旗西指”。这里就与前文所叙淮西之地在汴梁以南矛盾。

随着宋江征伐王庆故事的展开,小说地理位置描述上的混乱进一步加剧。在较前的部分,小说描述的“西陲”指的是西南、西川。第九十一回,王庆政权的汪太史说:“臣夜观乾象,见西南旺气冲天,各处将星散乱,唯有罡星明朗,正应淮西分野。”(第554 页)第九十三回回前诗有“将军承命出西川”之句(第562 页)。第九十回正文叙宋江率军出发,水陆并进,水路是“撑驾往川江进发”。“川江”一词通常指长江的四川段,与“西南”“西川”照应。

小说在王庆结局的叙述中,却又指出王庆势力在西北秦陇一带。小说第九十五回叙述争夺王庆巢穴秦州时,吴用曾说:“秦州后面接连胡朔,去沙漠不远。倘我军并入其地,逼得紧急,王庆走入胡地,为患不小。”第九十六回,王庆战况不利,其手下也劝他投奔“胡朔”:“主公勿忧,今日跳出龙潭虎窟之中,前去胡朔一望之地,投胡主借兵,再来报仇,复兴王业。”这又是说“淮西”在西北!其实,《水浒志传评林》征王庆故事之初,说王庆占据“秦州”时,就埋下了这种把“淮西”与西北连为一体的混乱。从第九十一回起,小说叙述宋江方面一路作战,先后攻破吕梁关、石祁城、梁州、洮阳、红桃山、秦州,其中梁州、秦州、洮阳均与西北秦陇之地相关。梁州属《禹贡》所列九州之一,作为行政区划意义的梁州,治所在陕西汉中;洮阳郡设于后周武帝时,在黄河上游洮河流域;秦州为今甘肃天水市,宋、元、明数代均有“秦州”这一行政区划,北宋后期秦凤路治所即在秦州。除了西川、秦陇两地之外,《水浒志传评林》征王庆部分偶然提及的其他地名也增加了混乱,如叙“西川”地区征战时提及“越江口”,叙西北地区征战时提及“吕梁关”,都带来更加混乱的地理方位暗示。

总之,细察《水浒志传评林》征王庆故事,可以断定它不是宋元旧有水浒故事的孑遗而被重新收入简本之中。它在地理方位描述上的极度混乱,极可能是因为这一故事的编造者杂取多种征战小说而致。在较前部分,编造者仍依《水浒传》屏风御书四大寇“淮西王庆”之名而敷衍,表明王庆故事发生在淮河流域,但方位模糊,避开了明代所称“淮西”的核心区濠州(凤阳);在虚构后续故事时,因《三国志演义》的影响,不自觉地将故事地理背景搬到“西川”,又受狄青、杨家将等故事的影响,将征王庆的背景拉入北方地区。

二 《水浒全传》“征王庆”故事中的地理描述

杨定见等人作为具有较高文学修养的士人,自然无法忍受简本“征王庆”故事的混乱粗疏。《水浒全传》的征王庆故事,沿用了简本中王庆一方主要人员的名字,王庆一伙活动的地域则完全重新安排。尤其值得注意的是,《水浒全传》除了在故事开头称王庆一伙在“淮西”之外,此后所有具体地名都与淮西无关。小说发生的背景主要是宋时的京西路,也涉及荆湖北路等地。

《水浒全传》征王庆故事始于第一百零一回。此回武学谕罗戬首先向徽宗揭露蔡京等人欺瞒君上,直陈“王庆作乱淮西”,“通共占据八座军州,八十六县”。后文又提及王庆已打破宛州,邻近“神京”。朝廷即令宋江等自河东(山西)威胜州向南行军,前去平定王庆。

《水浒全传》叙王庆起事的前因,大体与《水浒志传评林》相同。但书中所叙地点,却完全不同。书叙王庆被刺配“淮西”,具体地点却是“西京管下陕州牢城”。王庆从东京出发,一路经过嵩山、北邙山、新安县,到达陕州。新安县在洛阳西,陕州为今河南三门峡市——作者所叙,是由东向西的线路,而这些地方在宋代均属于“京西路”。

继之,《水浒全传》又叙王庆造反经过:王庆不堪忍受张世开欺压,愤而杀人,然后向南逃亡,到了房州躲藏起来;事发后,就占山为王,进一步夺取房州,“占据了房州为巢穴”,“打破邻近上津县、竹山县、郧乡县三个城池”,“又打破了南丰府”(第797 页)。又纵兵南下,袭破“荆南”城池。三四年间,占据了宋朝六座军州。王庆遂于南丰城内,僭号改元。至宣和五年春,王庆又打破了“云安军”及“宛州”,“一总被他占了八座军州,那八座乃是:南丰、荆南、山南、云安、安德、东川、宛州、西京。那八处所属州县,共八十六处”(第798 页)。

宋江与王庆两军争战过程大体如下:首战,宋江一方攻取“宛州”;次战,攻占“山南”。两战过后,宋江一方分兵,由卢俊义领兵攻下“西京”,宋江领军攻“荆南”。卢俊义既克“西京”,领军南下与宋江会合,攻下“荆南”。宋江一方再攻下王庆巢穴“南丰”,王庆欲逃至“云安”。逃跑路上曾对跟随近侍说:“寡人尚有云安、东川、安德三座城池,岂不是江东虽小,亦足以王?”但到了“云安”,此城已被宋江水军头领李俊所占。王庆遂往“东川”,在“云安属下开州地方”的“清江”边,被人擒获。此后,王庆一方仅剩的“东川”“安德”二处,由王庆一方降将胡俊招抚,投降朝廷。

现依《水浒全传》所叙攻战次第,对“八座军州”所指略作疏解。“宛州”,即今河南省南阳市。南阳、宛均为古已有之的旧称,《明一统志》卷三十载:“唐初于南阳县置宛州,寻罢。五代至宋因之。金置申州,元升为南阳府,本朝因之。领州三县十一。”在宋代,南阳属京西路,《宋史》卷八十五载,今河南南阳地区,当时属“邓州”,而今南阳地区的治所仅为邓州的中下县。《水浒全传》称南阳为“宛州”,系有意采用古称,以免读者读到过多的“当代”地名,至于把“宛州”当作大城坚城来描写,当是受到明代政区影响。围绕着宛州之战,《水浒全传》出现了方城山、襄州、鲁州等十几个地名,它们确为南阳附近之地,唯“鲁州”当作“鲁山”,“襄州”宜作“襄城”。

“山南”,按书中所叙,即为今湖北襄阳市。书中称此地有“隆中山”,又临“汉江”,可以证明此点。书中称此地为“山南”,源于隋唐时此地分别为“山南道行台”“山南东道”治所。《宋史》卷八十五载,此地在北宋时属京西路:“襄阳府,望,襄阳郡,山南东道节度。本襄州。宣和元年,升为府。”但此地在宋代、明代均称为“襄阳府”,作者改用古称“山南”,不符合宋时实情,却可避免明代读者认为作者不懂宋时制度。

“西京”即今之河南洛阳,宋代定为西京。《水浒全传》在叙及争夺西京之战时,提及周边的“宝丰”“伊阙山”等处,也接近实际情况。

“荆南”即今之湖北荆州市治所所在,在宋属荆湖北路。《明一统志》卷六十二载:“宋置荆湖北路,淳熙初改曰荆南府,寻复为江陵府。元改江陵路,天历初改中兴路。本朝改为荆州府,领州二、县十一。”《宋史》卷八十八载:“(荆湖)北路府二:……江陵府,次府,江陵郡荆南节度,旧领荆湖北路兵马钤辖兼提举本路及施夔州兵马巡检事。”《水浒全传》称其为“江陵”或“江陵府”,更符北宋实际,但既然明代荆州府首县之名为“江陵”,取“荆南”则似给读者一种“前代”地名的感觉。

“南丰”为今湖北十堰市(之前为郧阳地区)。《明一统志》卷六十:“(郧阳府)唐初置南丰州,寻省州而以县属淅川,寻又更为均州,县属焉。宋初属武当军节度。元初复为郧县,属均州。本朝初,随州属襄阳府,成化中升为郧阳府。”领郧县、房县、竹山、上津、竹溪等七县。《水浒全传》叙王庆在“房州”起事,而后攻打“上津县(今并入郧西县)、竹山县、郧乡县(即郧县)”,此几处均为明时郧阳府属地。然而郧阳府之设,远在北宋末年的几百年之后的明成化初年,故《水浒全传》以郧阳的古称“南丰”称之,实际所指当是今十堰市(原郧阳地区)一带,其府治为郧县。

“云安军”,宋时确有此区划,治所在今重庆奉节县。至于“东川”“安德”则远在今之四川南充、阆中之地。《明一统志》卷六十八谓南充之地,“宋初以州隶梓州路,宝庆间升顺庆府,元置东川府,又改为顺庆路,本朝改顺庆府”。《清一统志》卷二九七:“阆中,乾德四年改安德郡节度,属利州路。绍兴十四年属利州东路,元初立东川路,至元十三年升为保宁府。”《水浒全传》称“东川”,主要是依据元时建制。

由此可见,《水浒全传》征王庆故事的地理描述迥异于《水浒志传评林》等简本。首先,它注重对路、州、县之类地名的交代,能够使读者对整个战争发生的地点有清晰的认识。其次,这些地名确有所据,不是随意捏造的,因为宋、明地名有较多重复,作者为了避免读者以为描述失实,在宋、明地名重复的情况下,为避免读者认为作者不考古籍而误用当代地名,故而有意违背历史,不采用宋时地名,而改用宋前古称。最后,也是最重要的一点,是故事发生发展的各地点之间有合乎逻辑的关系,完全不像《水浒志传评林》那样混乱无序。王庆从陕州(今河南三门峡市)南逃,进入房县(属湖北十堰市)起事,而后占据南丰府(今湖北十堰市),此地为秦岭余脉,易守难攻,故将其作为根据地。而后扩展势力范围,进入江汉平原,向南攻下山南(今襄阳市)、荆南府(今荆州市);由南阳盆地北上,攻下宛州(今河南南阳),围攻西京(洛阳)。而宋江一方由河东(今山西)南下,渡过黄河后随即分兵,一路向东解西京之围,一路南下攻克宛州、山南、荆南,清除外围势力,而后集中力量攻击王庆的根据地南丰府。王庆势蹙,被迫经长江、清江等通道向云安、安德(今四川、重庆)等偏远地区转移。这种清晰而合乎逻辑的战略态势表述,是简本系统的《水浒志传评林》无法企及的。

三 《水浒全传》改换地点的用意及其素材来源

现在需要回答的问题是:为什么《水浒全传》将征“淮西王庆”的故事背景移挪到宋时与淮西毫不相干的京西路、荆湖北路甚至成、梓、利、夔诸路?粗疏拙笨如《水浒志传评林》,在描述“淮西”时,尚且出现了“淮河”“淮安”等相关地名。以《水浒全传》反映的对历代地理沿革的熟悉程度而言,可以完全排除杨定见等人误以京西为淮西的可能。

明知应当把王庆故事置于淮西的背景下叙述,而改为置于京西等地。类似的改换地点情况,在《水浒全传》里已有先例。征王庆之前的征田虎故事,应是发生在“河北”——宋时的河北路,即今之山东、河南省北部和今北京以南的河北省部分。《水浒志传评林》等简本虽然对地理位置描述混乱,但仍强调故事发生在“河北”。《水浒全传》则完全把故事的背景移入宋时的河东路,即今山西一带。其原因,既为避免重复叙述河北之事,也为增加故事逻辑上的可能性。

《水浒传》繁本在梁山众人大聚义之前,已多次叙及河北发生的故事,比如,林冲沧州牢城服刑,杨志、索超大名府(宋之北京)争功,柴进招邀武松、宋江,救卢俊义而攻打大名府,为救柴进而攻打高唐州,等等。更大的问题在于,简本附会插增的“河北田虎”故事中,田虎势力被极度夸大,俨然如同江南方腊,跨州连郡,称王僭号。而繁本旧有的“征辽”故事中,宋江从汴京出发北伐,直抵辽国南京幽州(即今北京),北进南还,所经之地,都是“河北”。既然这样,河北一带根本就不应当存在一个连州跨郡、僭王称号的田虎势力。如果存在的话,宋江须先行消灭这股势力,才能打通北伐通道,而不是战胜辽国、班师之后,再北上河北去消灭田虎。要解决这一矛盾,《水浒全传》径直把河北田虎改成河东田虎。

但是,《水浒全传》循名求实,把“淮西王庆”的故事安排在淮西,却不存在重复、矛盾之虞。在插增的“征王庆”故事之前,仅有宋江从江州脱身、报复黄文炳“智取无为军”的故事发生于淮河流域,再虚构出王庆在淮西坐大的故事,完全没有与前后故事重复、矛盾之处。这就说明,改换简本“征王庆”故事的发生地点,其原因不同于改变“征田虎”故事的发生地点。合理的解释是,这种安排出于政治上避讳的目的。

明人徐祯卿《剪胜野闻》中载:“太祖尝于上元夜微行。京师时俗好为隐语相猜以为戏,乃画一妇人赤脚怀西瓜,众哗然。帝就视,因喻其旨(原注:谓淮西妇人好大脚也),甚衔之。明日,命军士大僇居民,空其室,盖马后祖贯淮西,故云。”这一记载或许仅系捕风捉影的传闻,却能说明“淮西”一语作为宋元遗留下来的地域称呼,仍流行于明代官府民间。嘉靖间,明初武定侯郭英之后郭勋刊行《英烈传》叙明太祖出身濠州,也说这里属于“淮西”:“且说淮西濠州,就是而今凤阳府,好一座城池。”(第四回《真明主应瑞濠梁》)叙郭子兴占据濠州,“掠淮西一带郡县”(第八回《郭光卿起义滁州》),仍称“淮西”。可见,“淮西”旧称在明朝中后期依然流行。按宋元遗留下来的地域划分,朱元璋本人出身“淮西”,众多从龙功臣出身也属“淮西”,即历史学家所称的“淮西勋贵集团”。

明初的文字狱极为残酷,为明代士人留下深重的心理阴影。明中后期以还,朝廷的控制有所松动,然而,假设《水浒全传》径直将“淮西王庆”的故事置于以濠州为中心的淮西展开,虚构一系列出身于淮西的“贼寇”,描写他们抢夺杀戮的行径,其人物形象、故事情节易于引起与明初淮西功勋集团相关的联想,被指认为有意影射。这应当是《水浒全传》完全避开淮西,将征王庆故事移置于京西地的原因。在这里,不难体会到杨定见等谙熟本朝故实的士人的政治敏感性——《水浒志传评林》等简本征王庆故事的编写者显然是一位陋儒,他或许也意识到需要避讳,但至少避讳得不够彻底。

《水浒全传》叙写了众多大规模军事行动,包括百回繁本既有的打高俅、童贯,征辽,征方腊,以及改写简本而来的征田虎、征王庆。其中以征王庆故事的“可信度”最高,它多少能留心军事常识,在地理描述方面,没有出现双方数十万人马团在一小片战场的情景,军队的行动有迹可循,有理可据。这固然得益于杨定见等改写者具有较高的文化修养,从种种迹象看,明成化年间发生的荆襄流民大起义也为杨定见等的改写提供了素材。

流民起义的过程,清初谷应泰《明史纪事本末》卷三十八《平郧阳盗》言之甚详。这场起义的核心区郧阳(今湖北十堰市),明初属襄阳府(府治在今湖北襄阳市)管辖。郧阳地区处于秦岭余脉,山多林密,元末即有“流贼作乱”。明太祖时,下令“空其地,禁流民不得入”。然而此地错处湖北、河南、陕西之间,“又多旷土”,因此一直有流民不断迁入。成化元年(1465)三月,流民首领刘通(刘千斤)联合石龙(石和尚)等,在房县大木厂立黄旗聚众起义,“伪号汉,建元德胜。伪署将军元帅,以石和尚为谋主,刘长子、苗龙、苗虎为羽翼,众至数万,劫襄(今湖北襄阳)、邓(今河南邓州)境”。次年,明廷遣工部尚书白圭提督军务,在房县击败流民军,生擒刘通;石龙率余部逃至鄂西、川东一带,“焚劫四川大昌县,杀夔州通判王祯”,是年冬也被擒身死。白圭扑灭起义后,处理流民不当,引起激烈反抗。成化六年(1470),刘通余部李原(李胡子)与小王洪、王彪为首的流民再次起义。李原“专往来南漳、内乡、渭南间,复倡流民为乱,伪称太平王,立‘一条蛇’‘坐山虎’等号,官军屡捕不获,荆、襄、南阳为之骚然”。明廷遣都御史项忠总督河南、湖广、荆襄军务,于次年十一月平定起义。鉴于流民起义旋灭旋生的情况,明廷于成化十二年(1476)命都御史原杰经略郧阳,将郧阳等县自襄阳府分出,设置郧阳府,采取各种措施安抚流民,使这一地区获得安定。

《水浒全传》书中描述的王庆势力范围,主要涉及湖北西北部、中部、西南部,河南西部,四川东部(今属重庆),与荆襄流民起义范围高度一致。特别值得注意的是,王庆起事的地点是“房州”(今湖北十堰市房县),也与荆襄流民起义的历史过程相符。历史上是河南西华县人刘通(刘千斤)逃逋进入房县起事,小说中是汴梁人王庆从陕州(今三门峡市)逃亡房县起事。房县僻处深山,向来不起眼,在通俗小说中也只有《反唐演义全传》([清]如莲居士)叙及唐中宗李显(被废为庐陵王时曾幽居房县)复位事时提及其地。《水浒全传》虚构王庆故事,大量篇幅围绕房县展开,或许是受荆襄流民起义历史的影响。扑灭起义后,明廷为善后,设郧阳府,以郧县(今湖北十堰市郧阳区)为府治,说明郧县便于掌控整个郧阳地区,这大概是《水浒全传》始终将王庆的根据地定为“南丰”(郧县)的原因吧。