home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-13 | 49.9 KB | 1,216 lines |
- Newsgroups: comp.sources.misc
- From: murf@oakhill.sps.mot.com (Steve Murphy)
- Subject: v27i074: gcom - GEDCOM genealogical database merge utility, v1, Part03/07
- Message-ID: <1992Jan13.145428.25466@sparky.imd.sterling.com>
- X-Md4-Signature: dc1d5c9c7fd531b6730e1513b49de13e
- Date: Mon, 13 Jan 1992 14:54:28 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: murf@oakhill.sps.mot.com (Steve Murphy)
- Posting-number: Volume 27, Issue 74
- Archive-name: gcom/part03
- Environment: SunOS
-
- ---- Cut Here and unpack ----
- #!/bin/sh
- # This is part 03 of gcom
- if touch 2>&1 | fgrep 'amc' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- # ============= gedcom.lex.big ==============
- echo "x - extracting gedcom.lex.big (Text)"
- sed 's/^X//' << 'SHAR_EOF' > gedcom.lex.big &&
- X%{
- X/*
- X# Copyright (C) 1992 Steven Michael Murphy
- X#
- X#
- X# This file is part of gcom, the GEDCOM file merging utility for UNIX,
- X#
- X#
- X# gcom is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2, or (at your option)
- X# any later version.
- X#
- X# gcom is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with gcom; see the file COPYING. If not, write to
- X# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- X*/
- X#include <stdio.h>
- X#include <string.h>
- X#include "gedcom.b.tab.h"
- Xextern int lineno;
- Xstatic char rcs_stuff[] = "$Id: gedcom.lex.big,v 1.2 1992/01/03 17:49:50 murf Exp $";
- X/* below follows a list of all the tokens allowed in GEDCOM files */
- X
- X%}
- Xoptfield ([ ].+)?$
- X
- X%%
- XBIC { return BIC; }
- XSTILLBORN { return STILLBORN;}
- XCLEARED { return CLEARED; }
- XUNCLEARED { return UNCLEARED; }
- XDNS { return DNS; }
- XSEENOTES { return SEENOTES; }
- XSUBMITTED { return SUBMITTED; }
- XCOMPLETED { return COMPLETED; }
- XCHILD { return CHILD; }
- XINFANT { return INFANT; }
- XCANCELLED { return CANCELLED; }
- XDNS/CAN { return DNSCAN; }
- XABBR{optfield} { setyystr(yytext); return ABBR;}
- XABY{optfield} { setyystr(yytext); return ABY;}
- XACTI{optfield} { setyystr(yytext); return ACTI;}
- XACTN{optfield} { setyystr(yytext); return ACTN;}
- XADDI{optfield} { setyystr(yytext); return ADDI;}
- XADDR[ ].+$ { setyystr(yytext); return ADDR;}
- XADMI{optfield} { setyystr(yytext); return ADMI;}
- XADOP{optfield} { setyystr(yytext); return ADOP;}
- XAENT{optfield} { setyystr(yytext); return AENT;}
- XAFN[ ].+$ { setyystr(yytext); return AFN;}
- XAGE{optfield} { setyystr(yytext); return AGE;}
- XAGEF{optfield} { setyystr(yytext); return AGEF;}
- XAGEM{optfield} { setyystr(yytext); return AGEM;}
- XALIA{optfield} { setyystr(yytext); return ALIA;}
- XALPH{optfield} { setyystr(yytext); return ALPH;}
- XALSO{optfield} { setyystr(yytext); return ALSO;}
- XANCE{optfield} { setyystr(yytext); return ANCE;}
- XANCI{optfield} { setyystr(yytext); return ANCI;}
- XANUL{optfield} { setyystr(yytext); return ANUL;}
- XAREA{optfield} { setyystr(yytext); return AREA;}
- XASSD{optfield} { setyystr(yytext); return ASSD;}
- XASSI{optfield} { setyystr(yytext); return ASSI;}
- XASSO{optfield} { setyystr(yytext); return ASSO;}
- XATLA{optfield} { setyystr(yytext); return ATLA;}
- XAUTH{optfield} { setyystr(yytext); return AUTH;}
- XBAPL([ ].+$)? {setyystr(yytext);return BAPL;}
- XBAPM{optfield} { setyystr(yytext); return BAPM;}
- XBARM{optfield} { setyystr(yytext); return BARM;}
- XBASM{optfield} { setyystr(yytext); return BASM;}
- XBATC{optfield} { setyystr(yytext); return BATC;}
- XBEN{optfield} { setyystr(yytext); return BEN;}
- XBENT{optfield} { setyystr(yytext); return BENT;}
- XBIC{optfield} { setyystr(yytext); return BIC;}
- XBIRT {return BIRT;}
- XBLES{optfield} { setyystr(yytext); return BLES;}
- XBLSL{optfield} { setyystr(yytext); return BLSL;}
- XBOOK{optfield} { setyystr(yytext); return BOOK;}
- XBRID{optfield} { setyystr(yytext); return BRID;}
- XBURI {return BURI;}
- XBYTE{optfield} { setyystr(yytext); return BYTE;}
- XCALN{optfield} { setyystr(yytext); return CALN;}
- XCANC[ ][YN] {setyystr(yytext); return CANC;}
- XCAUS{optfield} { setyystr(yytext); return CAUS;}
- XCDAT{optfield} { setyystr(yytext); return CDAT;}
- XCEME{optfield} { setyystr(yytext); return CEME;}
- XCENS{optfield} { setyystr(yytext); return CENS;}
- XCHAN{optfield} { setyystr(yytext); return CHAN;}
- XCHAR[ ].*$ {setyystr(yytext); return CHAR;}
- XCHEC{optfield} { setyystr(yytext); return CHEC;}
- XCHEK{optfield} { setyystr(yytext); return CHEK;}
- XCHIL {return CHIL;}
- XCHR {return CHR;}
- XCIFF{optfield} { setyystr(yytext); return CIFF;}
- XCITA{optfield} { setyystr(yytext); return CITA;}
- XCITY{optfield} { setyystr(yytext); return CITY;}
- XCIVI{optfield} { setyystr(yytext); return CIVI;}
- XCIVL{optfield} { setyystr(yytext); return CIVL;}
- XCLEA{optfield} { setyystr(yytext); return CLEA;}
- XCLRK{optfield} { setyystr(yytext); return CLRK;}
- XCNTR{optfield} { setyystr(yytext); return CNTR;}
- XCO{optfield} { setyystr(yytext); return CO;}
- XCODE{optfield} { setyystr(yytext); return CODE;}
- XCODI{optfield} { setyystr(yytext); return CODI;}
- XCOFN{optfield} { setyystr(yytext); return COFN;}
- XCOLO{optfield} { setyystr(yytext); return COLO;}
- XCOMM[ ].*$ {setyystr(yytext); return COMM;}
- XCOMP{optfield} { setyystr(yytext); return COMP;}
- XCOND{optfield} { setyystr(yytext); return COND;}
- XCONE{optfield} { setyystr(yytext); return CONE;}
- XCONF{optfield} { setyystr(yytext); return CONF;}
- XCONL{optfield} { setyystr(yytext); return CONL;}
- XCONT[ ].*$ {setyystr(yytext); return CONT;}
- XCOON{optfield} { setyystr(yytext); return COON;}
- XCOOR{optfield} { setyystr(yytext); return COOR;}
- XCORP{optfield} { setyystr(yytext); return CORP;}
- XCORR{optfield} { setyystr(yytext); return CORR;}
- XCOST{optfield} { setyystr(yytext); return COST;}
- XCOUN{optfield} { setyystr(yytext); return COUN;}
- XCOUP{optfield} { setyystr(yytext); return COUP;}
- XCOUR{optfield} { setyystr(yytext); return COUR;}
- XCOVE{optfield} { setyystr(yytext); return COVE;}
- XCREA{optfield} { setyystr(yytext); return CREA;}
- XCRFN{optfield} { setyystr(yytext); return CRFN;}
- XCRIM{optfield} { setyystr(yytext); return CRIM;}
- XCTRY{optfield} { setyystr(yytext); return CTRY;}
- XDATA{optfield} { setyystr(yytext); return DATA;}
- XDATE[ ].*$ {setyystr(yytext); return DATE;}
- XDAU{optfield} { setyystr(yytext); return DAU;}
- XDCHR{optfield} { setyystr(yytext); return DCHR;}
- XDEAT {return DEAT;}
- XDESC{optfield} { setyystr(yytext); return DESC;}
- XDESI{optfield} { setyystr(yytext); return DESI;}
- XDEST[ ].*$ {setyystr(yytext); return DEST;}
- XDIR{optfield} { setyystr(yytext); return DIR;}
- XDISC{optfield} { setyystr(yytext); return DISC;}
- XDISK{optfield} { setyystr(yytext); return DISK;}
- XDIV[ ].*$ {if( yytext[4] == 'Y' ) yylval.num =1;
- X else yylval.num = 0; return DIV;}
- XDIVF{optfield} { setyystr(yytext); return DIVF;}
- XDOCS{optfield} { setyystr(yytext); return DOCS;}
- XDUP{optfield} { setyystr(yytext); return DUP;}
- XDWEL{optfield} { setyystr(yytext); return DWEL;}
- XEDUC{optfield} { setyystr(yytext); return EDUC;}
- XEMIG{optfield} { setyystr(yytext); return EMIG;}
- XEMPL{optfield} { setyystr(yytext); return EMPL;}
- XEND{optfield} { setyystr(yytext); return END;}
- XENDL {return ENDL;}
- XENGA{optfield} { setyystr(yytext); return ENGA;}
- XENTR{optfield} { setyystr(yytext); return ENTR;}
- XENUM{optfield} { setyystr(yytext); return ENUM;}
- XENUR{optfield} { setyystr(yytext); return ENUR;}
- XEOF{optfield} { setyystr(yytext); return EOF9;}
- XEVAL[ ].+$ {setyystr(yytext); return EVAL;}
- XEVEN{optfield} { setyystr(yytext); return EVEN;}
- XEXCE{optfield} { setyystr(yytext); return EXCE;}
- XEXCO{optfield} { setyystr(yytext); return EXCO;}
- XEXEC{optfield} { setyystr(yytext); return EXEC;}
- XEXPL{optfield} { setyystr(yytext); return EXPL;}
- XEXTD{optfield} { setyystr(yytext); return EXTD;}
- XEXTR{optfield} { setyystr(yytext); return EXTR;}
- XFAM {return FAM;}
- XFAMC {return FAMC;}
- XFAMF {return FAMF;}
- XFAMO{optfield} { setyystr(yytext); return FAMO;}
- XFAMP{optfield} { setyystr(yytext); return FAMP;}
- XFAMR{optfield} { setyystr(yytext); return FAMR;}
- XFAMS {return FAMS;}
- XFATH{optfield} { setyystr(yytext); return FATH;}
- XFCOM{optfield} { setyystr(yytext); return FCOM;}
- XFEMA{optfield} { setyystr(yytext); return FEMA;}
- XFGR{optfield} { setyystr(yytext); return FGR;}
- XFHC{optfield} { setyystr(yytext); return FHC;}
- XFILE[ ].*$ {setyystr(yytext); return FILE9;}
- XFILM{optfield} { setyystr(yytext); return FILM;}
- XFLAG.+$ {setyystr(yytext); return FLAG;}
- XFOFN{optfield} { setyystr(yytext); return FOFN;}
- XFOLI{optfield} { setyystr(yytext); return FOLI;}
- XFONL{optfield} { setyystr(yytext); return FONL;}
- XFORE{optfield} { setyystr(yytext); return FORE;}
- XFORG{optfield} { setyystr(yytext); return FORG;}
- XFOST{optfield} { setyystr(yytext); return FOST;}
- XFRAM{optfield} { setyystr(yytext); return FRAM;}
- XFRFN{optfield} { setyystr(yytext); return FRFN;}
- XFROM{optfield} { setyystr(yytext); return FROM;}
- XFSUB{optfield} { setyystr(yytext); return FSUB;}
- XFUNC{optfield} { setyystr(yytext); return FUNC;}
- XGENE{optfield} { setyystr(yytext); return GENE;}
- XGIVN{optfield} { setyystr(yytext); return GIVN;}
- XGNRL{optfield} { setyystr(yytext); return GNRL;}
- XGRAD{optfield} { setyystr(yytext); return GRAD;}
- XGROO{optfield} { setyystr(yytext); return GROO;}
- XGSC{optfield} { setyystr(yytext); return GSC;}
- XGUAR{optfield} { setyystr(yytext); return GUAR;}
- XHAML{optfield} { setyystr(yytext); return HAML;}
- XHAND{optfield} { setyystr(yytext); return HAND;}
- XHDOF{optfield} { setyystr(yytext); return HDOF;}
- XHDOH{optfield} { setyystr(yytext); return HDOH;}
- XHEAD {return HEAD;}
- XHEAL{optfield} { setyystr(yytext); return HEAL;}
- XHEIL{optfield} { setyystr(yytext); return HEIL;}
- XHEIR{optfield} { setyystr(yytext); return HEIR;}
- XHEPR{optfield} { setyystr(yytext); return HEPR;}
- XHIST{optfield} { setyystr(yytext); return HIST;}
- XHUSB {return HUSB;}
- XIBRZ{optfield} { setyystr(yytext); return IBRZ;}
- XILLE{optfield} { setyystr(yytext); return ILLE;}
- XILLU{optfield} { setyystr(yytext); return ILLU;}
- XIMMI{optfield} { setyystr(yytext); return IMMI;}
- XINDE{optfield} { setyystr(yytext); return INDE;}
- XINDI {return INDI;}
- XINFA{optfield} { setyystr(yytext); return INFA;}
- XINFL{optfield} { setyystr(yytext); return INFL;}
- XINFO{optfield} { setyystr(yytext); return INFO;}
- XINFT{optfield} { setyystr(yytext); return INFT;}
- XINST{optfield} { setyystr(yytext); return INST;}
- XIRFN{optfield} { setyystr(yytext); return IRFN;}
- XITEM{optfield} { setyystr(yytext); return ITEM;}
- XLANG{optfield} { setyystr(yytext); return LANG;}
- XLAST{optfield} { setyystr(yytext); return LAST;}
- XLATI{optfield} { setyystr(yytext); return LATI;}
- XLDAT{optfield} { setyystr(yytext); return LDAT;}
- XLENG{optfield} { setyystr(yytext); return LENG;}
- XLINE{optfield} { setyystr(yytext); return LINE;}
- XLINK{optfield} { setyystr(yytext); return LINK;}
- XLIVE{optfield} { setyystr(yytext); return LIVE;}
- XLOC{optfield} { setyystr(yytext); return LOC;}
- XLOCA{optfield} { setyystr(yytext); return LOCA;}
- XLOCC{optfield} { setyystr(yytext); return LOCC;}
- XLOCD{optfield} { setyystr(yytext); return LOCD;}
- XLOCE{optfield} { setyystr(yytext); return LOCE;}
- XLOCG{optfield} { setyystr(yytext); return LOCG;}
- XLOCH{optfield} { setyystr(yytext); return LOCH;}
- XLOCI{optfield} { setyystr(yytext); return LOCI;}
- XLOCL{optfield} { setyystr(yytext); return LOCL;}
- XLOCM{optfield} { setyystr(yytext); return LOCM;}
- XLOCN{optfield} { setyystr(yytext); return LOCN;}
- XLOCO{optfield} { setyystr(yytext); return LOCO;}
- XLOCQ{optfield} { setyystr(yytext); return LOCQ;}
- XLOCR{optfield} { setyystr(yytext); return LOCR;}
- XLOCS{optfield} { setyystr(yytext); return LOCS;}
- XLOCU{optfield} { setyystr(yytext); return LOCU;}
- XLOCX{optfield} { setyystr(yytext); return LOCX;}
- XLONG{optfield} { setyystr(yytext); return LONG;}
- XLSF{optfield} { setyystr(yytext); return LSF;}
- XLVG{optfield} { setyystr(yytext); return LVG;}
- XMAID{optfield} { setyystr(yytext); return MAID;}
- XMALE{optfield} { setyystr(yytext); return MALE;}
- XMAP{optfield} { setyystr(yytext); return MAP;}
- XMARB{optfield} { setyystr(yytext); return MARB;}
- XMARC{optfield} { setyystr(yytext); return MARC;}
- XMARD{optfield} { setyystr(yytext); return MARD;}
- XMARL{optfield} { setyystr(yytext); return MARL;}
- XMARR {return MARR;}
- XMARS{optfield} { setyystr(yytext); return MARS;}
- XMARY{optfield} { setyystr(yytext); return MARY;}
- XMESS{optfield} { setyystr(yytext); return MESS;}
- XMICR{optfield} { setyystr(yytext); return MICR;}
- XMILI{optfield} { setyystr(yytext); return MILI;}
- XMINR{optfield} { setyystr(yytext); return MINR;}
- XMISC{optfield} { setyystr(yytext); return MISC;}
- XMOTH{optfield} { setyystr(yytext); return MOTH;}
- XMTD{optfield} { setyystr(yytext); return MTD;}
- XNAME[ ].*$ {setyystr(yytext); return NAME;}
- XNAMR{optfield} { setyystr(yytext); return NAMR;}
- XNAMS{optfield} { setyystr(yytext); return NAMS;}
- XNATU{optfield} { setyystr(yytext); return NATU;}
- XNFCI{optfield} { setyystr(yytext); return NFCI;}
- XNOTE[ ].*$ {setyystr(yytext); return NOTE;}
- XNOTI{optfield} { setyystr(yytext); return NOTI;}
- XNULL{optfield} { setyystr(yytext); return NULL9;}
- XNUMB[ ].*$ {yylval.num = atoi(yytext+6); return NOTE;}
- XNUMP{optfield} { setyystr(yytext); return NUMP;}
- XNXTB{optfield} { setyystr(yytext); return NXTB;}
- XOBJ{optfield} { setyystr(yytext); return OBJ;}
- XOCCU{optfield} { setyystr(yytext); return OCCU;}
- XOFFI{optfield} { setyystr(yytext); return OFFI;}
- XOLD{optfield} { setyystr(yytext); return OLD;}
- XOPER{optfield} { setyystr(yytext); return OPER;}
- XORDI{optfield} { setyystr(yytext); return ORDI;}
- XORDL{optfield} { setyystr(yytext); return ORDL;}
- XORDN{optfield} { setyystr(yytext); return ORDN;}
- XORG{optfield} { setyystr(yytext); return ORG;}
- XORPH{optfield} { setyystr(yytext); return ORPH;}
- XOTHE{optfield} { setyystr(yytext); return OTHE;}
- XOUT{optfield} { setyystr(yytext); return OUT;}
- XOVER{optfield} { setyystr(yytext); return OVER;}
- XPACK{optfield} { setyystr(yytext); return PACK;}
- XPAGE{optfield} { setyystr(yytext); return PAGE;}
- XPARE{optfield} { setyystr(yytext); return PARE;}
- XPARI{optfield} { setyystr(yytext); return PARI;}
- XPART{optfield} { setyystr(yytext); return PART;}
- XPASL{optfield} { setyystr(yytext); return PASL;}
- XPATC{optfield} { setyystr(yytext); return PATC;}
- XPATR{optfield} { setyystr(yytext); return PATR;}
- XPBRZ{optfield} { setyystr(yytext); return PBRZ;}
- XPED{optfield} { setyystr(yytext); return PED;}
- XPEDC{optfield} { setyystr(yytext); return PEDC;}
- XPENS{optfield} { setyystr(yytext); return PENS;}
- XPERS{optfield} { setyystr(yytext); return PERS;}
- XPHON[ ].*$ {setyystr(yytext); return PHON;}
- XPID{optfield} { setyystr(yytext); return PID;}
- XPIFF{optfield} { setyystr(yytext); return PIFF;}
- XPLAC[ ].*$ {setyystr(yytext); return PLAC;}
- XPOLY{optfield} { setyystr(yytext); return POLY;}
- XPORT{optfield} { setyystr(yytext); return PORT;}
- XPOST{optfield} { setyystr(yytext); return POST;}
- XPOVE{optfield} { setyystr(yytext); return POVE;}
- XPREF{optfield} { setyystr(yytext); return PREF;}
- XPRES{optfield} { setyystr(yytext); return PRES;}
- XPREV{optfield} { setyystr(yytext); return PREV;}
- XPRIN{optfield} { setyystr(yytext); return PRIN;}
- XPRIO{optfield} { setyystr(yytext); return PRIO;}
- XPRNT{optfield} { setyystr(yytext); return PRNT;}
- XPROB{optfield} { setyystr(yytext); return PROB;}
- XPROP{optfield} { setyystr(yytext); return PROP;}
- XPROT{optfield} { setyystr(yytext); return PROT;}
- XPROV{optfield} { setyystr(yytext); return PROV;}
- XPROX{optfield} { setyystr(yytext); return PROX;}
- XPRTR{optfield} { setyystr(yytext); return PRTR;}
- XPRVB{optfield} { setyystr(yytext); return PRVB;}
- XPSUB{optfield} { setyystr(yytext); return PSUB;}
- XPUBL{optfield} { setyystr(yytext); return PUBL;}
- XPUBR{optfield} { setyystr(yytext); return PUBR;}
- XPVMG{optfield} { setyystr(yytext); return PVMG;}
- XPVRL{optfield} { setyystr(yytext); return PVRL;}
- XQUAL.*$ {setyystr(yytext); return QUAL;}
- XQUAY{optfield} { setyystr(yytext); return QUAY;}
- XRACE{optfield} { setyystr(yytext); return RACE;}
- XRANG{optfield} { setyystr(yytext); return RANG;}
- XRARS{optfield} { setyystr(yytext); return RARS;}
- XRATI{optfield} { setyystr(yytext); return RATI;}
- XREAL{optfield} { setyystr(yytext); return REAL;}
- XREBA{optfield} { setyystr(yytext); return REBA;}
- XRECD{optfield} { setyystr(yytext); return RECD;}
- XRECO{optfield} { setyystr(yytext); return RECO;}
- XRECR{optfield} { setyystr(yytext); return RECR;}
- XREFN{optfield} { setyystr(yytext); return REFN;}
- XREGD{optfield} { setyystr(yytext); return REGD;}
- XREGI{optfield} { setyystr(yytext); return REGI;}
- XREJE{optfield} { setyystr(yytext); return REJE;}
- XREL[ ].*$ {setyystr(yytext); return REL;}
- XRELI{optfield} { setyystr(yytext); return RELI;}
- XREMA{optfield} { setyystr(yytext); return REMA;}
- XREPO{optfield} { setyystr(yytext); return REPO;}
- XREQD{optfield} { setyystr(yytext); return REQD;}
- XREQU{optfield} { setyystr(yytext); return REQU;}
- XRES{optfield} { setyystr(yytext); return RES;}
- XRESE{optfield} { setyystr(yytext); return RESE;}
- XRESI{optfield} { setyystr(yytext); return RESI;}
- XRESN{optfield} { setyystr(yytext); return RESN;}
- XREST{optfield} { setyystr(yytext); return REST;}
- XRETI{optfield} { setyystr(yytext); return RETI;}
- XRFN{optfield} { setyystr(yytext); return RFN;}
- XSBID{optfield} { setyystr(yytext); return SBID;}
- XSCHO{optfield} { setyystr(yytext); return SCHO;}
- XSEAR{optfield} { setyystr(yytext); return SEAR;}
- XSELF{optfield} { setyystr(yytext); return SELF;}
- XSEQU{optfield} { setyystr(yytext); return SEQU;}
- XSERI{optfield} { setyystr(yytext); return SERI;}
- XSERS{optfield} { setyystr(yytext); return SERS;}
- XSERV{optfield} { setyystr(yytext); return SERV;}
- XSEX[ ].*$ {setyystr(yytext); return SEX;}
- XSHEE{optfield} { setyystr(yytext); return SHEE;}
- XSHIP{optfield} { setyystr(yytext); return SHIP;}
- XSIBL{optfield} { setyystr(yytext); return SIBL;}
- XSIS{optfield} { setyystr(yytext); return SIS;}
- XSLGC {return SLGC;}
- XSLGP{optfield} { setyystr(yytext); return SLGP;}
- XSLGS {return SLGS;}
- XSON{optfield} { setyystr(yytext); return SON;}
- XSORT{optfield} { setyystr(yytext); return SORT;}
- XSOUR[ ].*$ {setyystr(yytext); return SOUR;}
- XSPEC{optfield} { setyystr(yytext); return SPEC;}
- XSPEI{optfield} { setyystr(yytext); return SPEI;}
- XSPEP{optfield} { setyystr(yytext); return SPEP;}
- XSPLI{optfield} { setyystr(yytext); return SPLI;}
- XSPOU{optfield} { setyystr(yytext); return SPOU;}
- XSPUR{optfield} { setyystr(yytext); return SPUR;}
- XSREF{optfield} { setyystr(yytext); return SREF;}
- XSTAC{optfield} { setyystr(yytext); return STAC;}
- XSTAE{optfield} { setyystr(yytext); return STAE;}
- XSTAL {return STAL;}
- XSTAT{optfield} { setyystr(yytext); return STAT;}
- XSTDN{optfield} { setyystr(yytext); return STDN;}
- XSTIL{optfield} { setyystr(yytext); return STIL;}
- XSUB{optfield} { setyystr(yytext); return SUB;}
- XSUBJ{optfield} { setyystr(yytext); return SUBJ;}
- XSUBM {return SUBM;}
- XSUBN {return SUBN;}
- XSURN{optfield} { setyystr(yytext); return SURN;}
- XSURO{optfield} { setyystr(yytext); return SURO;}
- XSYMB{optfield} { setyystr(yytext); return SYMB;}
- XSYST{optfield} { setyystr(yytext); return SYST;}
- XTAPE{optfield} { setyystr(yytext); return TAPE;}
- XTASK{optfield} { setyystr(yytext); return TASK;}
- XTEMP[ ].+$ {setyystr(yytext); return TEMP;}
- XTEXT{optfield} { setyystr(yytext); return TEXT;}
- XTIME{optfield} { setyystr(yytext); return TIME;}
- XTIMP{optfield} { setyystr(yytext); return TIMP;}
- XTITL[ ].*$ {setyystr(yytext); return TITL;}
- XTMPL{optfield} { setyystr(yytext); return TMPL;}
- XTOR{optfield} { setyystr(yytext); return TOR;}
- XTOWC{optfield} { setyystr(yytext); return TOWC;}
- XTOWN{optfield} { setyystr(yytext); return TOWN;}
- XTRAK{optfield} { setyystr(yytext); return TRAK;}
- XTRAN{optfield} { setyystr(yytext); return TRAN;}
- XTRAS{optfield} { setyystr(yytext); return TRAS;}
- XTRLR {return TRLR;}
- XTWP{optfield} { setyystr(yytext); return TWP;}
- XTYPE[ ].+$ {setyystr(yytext); return TYPE;}
- XUDER{optfield} { setyystr(yytext); return UDER;}
- XUNIF{optfield} { setyystr(yytext); return UNIF;}
- XUPDA{optfield} { setyystr(yytext); return UPDA;}
- XVALU{optfield} { setyystr(yytext); return VALU;}
- XVERI{optfield} { setyystr(yytext); return VERI;}
- XVITA{optfield} { setyystr(yytext); return VITA;}
- XVOID{optfield} { setyystr(yytext); return VOID;}
- XVOIL{optfield} { setyystr(yytext); return VOIL;}
- XVOLU{optfield} { setyystr(yytext); return VOLU;}
- XWAC{optfield} { setyystr(yytext); return WAC;}
- XWARD{optfield} { setyystr(yytext); return WARD;}
- XWARL{optfield} { setyystr(yytext); return WARL;}
- XWIDO{optfield} { setyystr(yytext); return WIDO;}
- XWIFE {return WIFE;}
- XWILL{optfield} { setyystr(yytext); return WILL;}
- XWITN{optfield} { setyystr(yytext); return WITN;}
- XYEAR{optfield} { setyystr(yytext); return YEAR;}
- XYOUN{optfield} { setyystr(yytext); return YOUN;}
- XYTD{optfield} { setyystr(yytext); return YTD;}
- X@[^@]+@ {int x;
- X x = strlen(yytext);
- X yylval.str = (char *)malloc(x);
- X strncpy(yylval.str,yytext+1,x-2);
- X yylval.str[x-2]=0;
- X return REF;}
- X^0 {yylval.num = 0; return LEV0; }
- X^1 {yylval.num = 0; return LEV1; }
- X^2 {yylval.num = 0; return LEV2; }
- X^3 {yylval.num = 0; return LEV3; }
- X^[4-9]+ {yylval.num = atoi(yytext); return LEVEL;}
- X[0-9]+ {yylval.num = atoi(yytext); return NUM;}
- X\n {lineno++;}
- X[ ]* {}
- X%%
- Xsetyystr(txt)
- Xchar *txt;
- X{
- X int x=strlen(txt);
- X char *y = txt;
- X while( *y && *y != ' ' )
- X y++;
- X if( *y )
- X {
- X /* there is a space */
- X x -= (y-txt);
- X y++;
- X yylval.str = (char *)malloc(x);
- X strcpy(yylval.str,y);
- X }
- X else
- X yylval.str = "";
- X}
- SHAR_EOF
- $TOUCH -am 0103114992 gedcom.lex.big &&
- chmod 0664 gedcom.lex.big ||
- echo "restore of gedcom.lex.big failed"
- set `wc -c gedcom.lex.big`;Wc_c=$1
- if test "$Wc_c" != "20393"; then
- echo original size 20393, current size $Wc_c
- fi
- # ============= mylex2.c ==============
- echo "x - extracting mylex2.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > mylex2.c &&
- X/* starting time is 11:50:27 */
- X/* C code produced by gperf version 2.5 (GNU C++ version) */
- X/* Command-line: gperf -G -k 1,3,4 -p -S 1 -t keys.gperf */
- Xstatic char rcs_stuff[] = "$Id: keys.gperf,v 1.2 1992/01/03 17:49:58 murf Exp $";
- X/*
- X# Copyright (C) 1992 Steven Michael Murphy
- X#
- X#
- X# This file is part of gcom, the GEDCOM file merging utility for UNIX,
- X#
- X#
- X# gcom is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2, or (at your option)
- X# any later version.
- X#
- X# gcom is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with gcom; see the file COPYING. If not, write to
- X# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- X*/
- X#include <stdio.h>
- X#include "gedcom.b.tab.h"
- Xextern int lineno;
- Xstatic char buff[300]; /* Actually, 80 may be enough */
- Xstatic char *buff_ptr = &buff[0];
- X
- X
- XFILE *yyin;
- Xstruct keyword { char *name; int val; };
- X
- X#define TOTAL_KEYWORDS 41
- X#define MIN_WORD_LENGTH 3
- X#define MAX_WORD_LENGTH 4
- X#define MIN_HASH_VALUE 4
- X#define MAX_HASH_VALUE 155
- X/* maximum key range = 152, duplicates = 0 */
- X
- Xstatic unsigned int
- Xhash (str, len)
- X register char *str;
- X register int unsigned len;
- X{
- X static unsigned char asso_values[] =
- X {
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 10, 50, 11, 41, 15,
- X 55, 6, 35, 55, 156, 156, 25, 0, 15, 0,
- X 1, 40, 0, 0, 6, 5, 156, 10, 5, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- X 156, 156, 156, 156, 156, 156, 156, 156,
- X };
- X register int hval = len;
- X
- X switch (hval)
- X {
- X default:
- X case 4:
- X hval += asso_values[str[3]];
- X case 3:
- X hval += asso_values[str[2]];
- X case 2:
- X case 1:
- X hval += asso_values[str[0]];
- X }
- X return hval;
- X}
- X
- Xstatic struct keyword wordlist[] =
- X{
- X {"",}, {"",}, {"",}, {"",},
- X {"MARR", MARR},
- X {"SEX", SEX},
- X {"SOUR", SOUR},
- X {"SLGS", SLGS},
- X {"TEMP", TEMP},
- X {"CHR", CHR},
- X {"COMM", COMM},
- X {"PHON", PHON},
- X {"SLGC", SLGC},
- X {"CHAR", CHAR},
- X {"PLAC", PLAC},
- X {"REL", REL},
- X {"NAME", NAME},
- X {"TRLR", TRLR},
- X {"CONT", CONT},
- X {"STAL", STAL},
- X {"NOTE", NOTE},
- X {"TITL", TITL},
- X {"DEST", DEST},
- X {"SUBM", SUBM},
- X {"ADDR", ADDR},
- X {"FAM", FAM},
- X {"FAMS", FAMS},
- X {"BIRT", BIRT},
- X {"DEAT", DEAT},
- X {"BIC", BIC},
- X {"DATE", DATE},
- X {"NUMB", NUMB},
- X {"FAMC", FAMC},
- X {"REFN", REFN},
- X {"FLAG", FLAG},
- X {"QUAL", QUAL},
- X {"BAPL", BAPL},
- X {"WIFE", WIFE},
- X {"ENDL", ENDL},
- X {"HUSB", HUSB},
- X {"HEAD", HEAD},
- X {"CHIL", CHIL},
- X {"FILE", FILE9},
- X {"BURI", BURI},
- X {"INDI", INDI},
- X};
- X
- Xstruct keyword *
- Xin_word_set (str, len)
- X register char *str;
- X register unsigned int len;
- X{
- X if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- X {
- X register int key = hash (str, len);
- X
- X if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- X {
- X {
- X struct keyword *resword;
- X
- X switch (key)
- X {
- X case 4:
- X resword = &wordlist[4]; break;
- X case 8:
- X resword = &wordlist[5]; break;
- X case 9:
- X resword = &wordlist[6]; break;
- X case 10:
- X resword = &wordlist[7]; break;
- X case 11:
- X resword = &wordlist[8]; break;
- X case 14:
- X resword = &wordlist[9]; break;
- X case 15:
- X resword = &wordlist[10]; break;
- X case 20:
- X resword = &wordlist[11]; break;
- X case 21:
- X resword = &wordlist[12]; break;
- X case 25:
- X resword = &wordlist[13]; break;
- X case 26:
- X resword = &wordlist[14]; break;
- X case 28:
- X resword = &wordlist[15]; break;
- X case 34:
- X resword = &wordlist[16]; break;
- X case 35:
- X resword = &wordlist[17]; break;
- X case 36:
- X resword = &wordlist[18]; break;
- X case 39:
- X resword = &wordlist[19]; break;
- X case 40:
- X resword = &wordlist[20]; break;
- X case 41:
- X resword = &wordlist[21]; break;
- X case 51:
- X resword = &wordlist[22]; break;
- X case 54:
- X resword = &wordlist[23]; break;
- X case 55:
- X resword = &wordlist[24]; break;
- X case 58:
- X resword = &wordlist[25]; break;
- X case 59:
- X resword = &wordlist[26]; break;
- X case 60:
- X resword = &wordlist[27]; break;
- X case 61:
- X resword = &wordlist[28]; break;
- X case 64:
- X resword = &wordlist[29]; break;
- X case 66:
- X resword = &wordlist[30]; break;
- X case 69:
- X resword = &wordlist[31]; break;
- X case 70:
- X resword = &wordlist[32]; break;
- X case 74:
- X resword = &wordlist[33]; break;
- X case 75:
- X resword = &wordlist[34]; break;
- X case 79:
- X resword = &wordlist[35]; break;
- X case 80:
- X resword = &wordlist[36]; break;
- X case 84:
- X resword = &wordlist[37]; break;
- X case 85:
- X resword = &wordlist[38]; break;
- X case 89:
- X resword = &wordlist[39]; break;
- X case 90:
- X resword = &wordlist[40]; break;
- X case 95:
- X resword = &wordlist[41]; break;
- X case 99:
- X resword = &wordlist[42]; break;
- X case 109:
- X resword = &wordlist[43]; break;
- X case 155:
- X resword = &wordlist[44]; break;
- X default: return 0;
- X }
- X if (*str == *resword->name && !strcmp (str + 1, resword->name + 1))
- X return resword;
- X return 0;
- X }
- X }
- X }
- X return 0;
- X}
- X
- X
- Xyylex()
- X{
- X struct keyword *kw;
- X char *p;
- X int i;
- X
- X if( !(*buff_ptr) )
- X {
- X int lev;
- X if( !fgets(buff,300,yyin) )
- X {
- X return 0; /* end of file */
- X }
- X buff[strlen(buff)-1] = 0; /* blast the newline */
- X lineno++;
- X buff_ptr = &buff[0]; /* get a new line */
- X /* the first thing on a line is the level number, get it */
- X lev = strtol(buff,&p,10);
- X if( p == buff_ptr )
- X {
- X fprintf(stderr,"No level number at the beginning of the line on line %d\n",
- X lineno);
- X return LEV0;
- X }
- X buff_ptr = p;
- X return LEV0+lev;
- X }
- X else
- X {
- X /* either a type or a reference */
- X while(*buff_ptr &&
- X (*buff_ptr == ' ' || *buff_ptr == '\t') )
- X buff_ptr++;
- X /* collect next token */
- X p = buff_ptr;
- X while( *buff_ptr && (*buff_ptr != ' ' && *buff_ptr != '\t' &&
- X *buff_ptr != '\n' ) )
- X buff_ptr++;
- X if( *p == '@' )
- X {
- X char x,*y;
- X
- X x = *buff_ptr;
- X *buff_ptr = 0;
- X p++; /* skip the @ stuff and just pass the ref id */
- X yylval.str = (char *)malloc(buff_ptr-p);
- X strncpy(yylval.str,p,buff_ptr-p);
- X yylval.str[buff_ptr-p-1] = 0; /* leave out the '@'s */
- X *buff_ptr = x;
- X return REF;
- X }
- X if( !strncmp(p,"DIV",3) ) /* DIV is a slightly special case ... ? */
- X {
- X if( *(p+4) == 'Y' ) yylval.num = 1;
- X else yylval.num = 0;
- X *buff_ptr = 0; /* we are done here */
- X return DIV;
- X }
- X *buff_ptr = 0;
- X /* then match on the token, and return the rest of the line as
- X the value */
- X /* the tokens are arranged in a ______table. */
- X kw = in_word_set(p,strlen(p));
- X if( kw )
- X {
- X *buff_ptr = ' ';
- X if( *(buff_ptr+1) == '@' )
- X {
- X return kw->val;
- X }
- X setyystr(p);
- X *buff_ptr = 0; /* this will reset the lexer and read in a
- X new line next time.... */
- X return kw->val;
- X }
- X else
- X {
- X /* else report error */
- X fprintf(stderr,"HEY, '%s' is not a keyword I understand! (line %d)\n",
- X p, lineno);
- X }
- X }
- X}
- X
- X
- Xsetyystr(txt)
- Xchar *txt;
- X{
- X int x=strlen(txt);
- X char *y = txt;
- X while( *y && *y != ' ' )
- X y++;
- X if( *y )
- X {
- X /* there is a space */
- X x -= (y-txt);
- X y++;
- X yylval.str = (char *)malloc(x);
- X strcpy(yylval.str,y);
- X }
- X else
- X yylval.str = "";
- X}
- X
- X/* ending time is 11:50:27 */
- SHAR_EOF
- $TOUCH -am 0103115092 mylex2.c &&
- chmod 0664 mylex2.c ||
- echo "restore of mylex2.c failed"
- set `wc -c mylex2.c`;Wc_c=$1
- if test "$Wc_c" != "9443"; then
- echo original size 9443, current size $Wc_c
- fi
- # ============= patchlevel.h ==============
- echo "x - extracting patchlevel.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > patchlevel.h &&
- X#include PATCHLEVEL 0
- SHAR_EOF
- $TOUCH -am 0105000992 patchlevel.h &&
- chmod 0664 patchlevel.h ||
- echo "restore of patchlevel.h failed"
- set `wc -c patchlevel.h`;Wc_c=$1
- if test "$Wc_c" != "22"; then
- echo original size 22, current size $Wc_c
- fi
- # ============= COPYING ==============
- echo "x - extracting COPYING (Text)"
- sed 's/^X//' << 'SHAR_EOF' > COPYING &&
- X GNU GENERAL PUBLIC LICENSE
- X Version 2, June 1991
- X
- X Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- X 675 Mass Ave, Cambridge, MA 02139, USA
- X Everyone is permitted to copy and distribute verbatim copies
- X of this license document, but changing it is not allowed.
- X
- X Preamble
- X
- X The licenses for most software are designed to take away your
- Xfreedom to share and change it. By contrast, the GNU General Public
- XLicense is intended to guarantee your freedom to share and change free
- Xsoftware--to make sure the software is free for all its users. This
- XGeneral Public License applies to most of the Free Software
- XFoundation's software and to any other program whose authors commit to
- Xusing it. (Some other Free Software Foundation software is covered by
- Xthe GNU Library General Public License instead.) You can apply it to
- Xyour programs, too.
- X
- X When we speak of free software, we are referring to freedom, not
- Xprice. Our General Public Licenses are designed to make sure that you
- Xhave the freedom to distribute copies of free software (and charge for
- Xthis service if you wish), that you receive source code or can get it
- Xif you want it, that you can change the software or use pieces of it
- Xin new free programs; and that you know you can do these things.
- X
- X To protect your rights, we need to make restrictions that forbid
- Xanyone to deny you these rights or to ask you to surrender the rights.
- XThese restrictions translate to certain responsibilities for you if you
- Xdistribute copies of the software, or if you modify it.
- X
- X For example, if you distribute copies of such a program, whether
- Xgratis or for a fee, you must give the recipients all the rights that
- Xyou have. You must make sure that they, too, receive or can get the
- Xsource code. And you must show them these terms so they know their
- Xrights.
- X
- X We protect your rights with two steps: (1) copyright the software, and
- X(2) offer you this license which gives you legal permission to copy,
- Xdistribute and/or modify the software.
- X
- X Also, for each author's protection and ours, we want to make certain
- Xthat everyone understands that there is no warranty for this free
- Xsoftware. If the software is modified by someone else and passed on, we
- Xwant its recipients to know that what they have is not the original, so
- Xthat any problems introduced by others will not reflect on the original
- Xauthors' reputations.
- X
- X Finally, any free program is threatened constantly by software
- Xpatents. We wish to avoid the danger that redistributors of a free
- Xprogram will individually obtain patent licenses, in effect making the
- Xprogram proprietary. To prevent this, we have made it clear that any
- Xpatent must be licensed for everyone's free use or not licensed at all.
- X
- X The precise terms and conditions for copying, distribution and
- Xmodification follow.
- X
- X GNU GENERAL PUBLIC LICENSE
- X TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- X
- X 0. This License applies to any program or other work which contains
- Xa notice placed by the copyright holder saying it may be distributed
- Xunder the terms of this General Public License. The "Program", below,
- Xrefers to any such program or work, and a "work based on the Program"
- Xmeans either the Program or any derivative work under copyright law:
- Xthat is to say, a work containing the Program or a portion of it,
- Xeither verbatim or with modifications and/or translated into another
- Xlanguage. (Hereinafter, translation is included without limitation in
- Xthe term "modification".) Each licensee is addressed as "you".
- X
- XActivities other than copying, distribution and modification are not
- Xcovered by this License; they are outside its scope. The act of
- Xrunning the Program is not restricted, and the output from the Program
- Xis covered only if its contents constitute a work based on the
- XProgram (independent of having been made by running the Program).
- XWhether that is true depends on what the Program does.
- X
- X 1. You may copy and distribute verbatim copies of the Program's
- Xsource code as you receive it, in any medium, provided that you
- Xconspicuously and appropriately publish on each copy an appropriate
- Xcopyright notice and disclaimer of warranty; keep intact all the
- Xnotices that refer to this License and to the absence of any warranty;
- Xand give any other recipients of the Program a copy of this License
- Xalong with the Program.
- X
- XYou may charge a fee for the physical act of transferring a copy, and
- Xyou may at your option offer warranty protection in exchange for a fee.
- X
- X 2. You may modify your copy or copies of the Program or any portion
- Xof it, thus forming a work based on the Program, and copy and
- Xdistribute such modifications or work under the terms of Section 1
- Xabove, provided that you also meet all of these conditions:
- X
- X a) You must cause the modified files to carry prominent notices
- X stating that you changed the files and the date of any change.
- X
- X b) You must cause any work that you distribute or publish, that in
- X whole or in part contains or is derived from the Program or any
- X part thereof, to be licensed as a whole at no charge to all third
- X parties under the terms of this License.
- X
- X c) If the modified program normally reads commands interactively
- X when run, you must cause it, when started running for such
- X interactive use in the most ordinary way, to print or display an
- X announcement including an appropriate copyright notice and a
- X notice that there is no warranty (or else, saying that you provide
- X a warranty) and that users may redistribute the program under
- X these conditions, and telling the user how to view a copy of this
- X License. (Exception: if the Program itself is interactive but
- X does not normally print such an announcement, your work based on
- X the Program is not required to print an announcement.)
- X
- XThese requirements apply to the modified work as a whole. If
- Xidentifiable sections of that work are not derived from the Program,
- Xand can be reasonably considered independent and separate works in
- Xthemselves, then this License, and its terms, do not apply to those
- Xsections when you distribute them as separate works. But when you
- Xdistribute the same sections as part of a whole which is a work based
- Xon the Program, the distribution of the whole must be on the terms of
- Xthis License, whose permissions for other licensees extend to the
- Xentire whole, and thus to each and every part regardless of who wrote it.
- X
- XThus, it is not the intent of this section to claim rights or contest
- Xyour rights to work written entirely by you; rather, the intent is to
- Xexercise the right to control the distribution of derivative or
- Xcollective works based on the Program.
- X
- XIn addition, mere aggregation of another work not based on the Program
- Xwith the Program (or with a work based on the Program) on a volume of
- Xa storage or distribution medium does not bring the other work under
- Xthe scope of this License.
- X
- X 3. You may copy and distribute the Program (or a work based on it,
- Xunder Section 2) in object code or executable form under the terms of
- XSections 1 and 2 above provided that you also do one of the following:
- X
- X a) Accompany it with the complete corresponding machine-readable
- X source code, which must be distributed under the terms of Sections
- X 1 and 2 above on a medium customarily used for software interchange; or,
- X
- X b) Accompany it with a written offer, valid for at least three
- X years, to give any third party, for a charge no more than your
- X cost of physically performing source distribution, a complete
- X machine-readable copy of the corresponding source code, to be
- X distributed under the terms of Sections 1 and 2 above on a medium
- X customarily used for software interchange; or,
- X
- X c) Accompany it with the information you received as to the offer
- X to distribute corresponding source code. (This alternative is
- X allowed only for noncommercial distribution and only if you
- X received the program in object code or executable form with such
- X an offer, in accord with Subsection b above.)
- X
- XThe source code for a work means the preferred form of the work for
- Xmaking modifications to it. For an executable work, complete source
- Xcode means all the source code for all modules it contains, plus any
- Xassociated interface definition files, plus the scripts used to
- Xcontrol compilation and installation of the executable. However, as a
- Xspecial exception, the source code distributed need not include
- Xanything that is normally distributed (in either source or binary
- Xform) with the major components (compiler, kernel, and so on) of the
- Xoperating system on which the executable runs, unless that component
- Xitself accompanies the executable.
- X
- XIf distribution of executable or object code is made by offering
- Xaccess to copy from a designated place, then offering equivalent
- Xaccess to copy the source code from the same place counts as
- Xdistribution of the source code, even though third parties are not
- Xcompelled to copy the source along with the object code.
- X
- X 4. You may not copy, modify, sublicense, or distribute the Program
- Xexcept as expressly provided under this License. Any attempt
- Xotherwise to copy, modify, sublicense or distribute the Program is
- Xvoid, and will automatically terminate your rights under this License.
- XHowever, parties who have received copies, or rights, from you under
- Xthis License will not have their licenses terminated so long as such
- Xparties remain in full compliance.
- X
- X 5. You are not required to accept this License, since you have not
- Xsigned it. However, nothing else grants you permission to modify or
- Xdistribute the Program or its derivative works. These actions are
- Xprohibited by law if you do not accept this License. Therefore, by
- Xmodifying or distributing the Program (or any work based on the
- XProgram), you indicate your acceptance of this License to do so, and
- Xall its terms and conditions for copying, distributing or modifying
- Xthe Program or works based on it.
- X
- X 6. Each time you redistribute the Program (or any work based on the
- XProgram), the recipient automatically receives a license from the
- Xoriginal licensor to copy, distribute or modify the Program subject to
- Xthese terms and conditions. You may not impose any further
- Xrestrictions on the recipients' exercise of the rights granted herein.
- XYou are not responsible for enforcing compliance by third parties to
- Xthis License.
- X
- X 7. If, as a consequence of a court judgment or allegation of patent
- Xinfringement or for any other reason (not limited to patent issues),
- Xconditions are imposed on you (whether by court order, agreement or
- Xotherwise) that contradict the conditions of this License, they do not
- Xexcuse you from the conditions of this License. If you cannot
- Xdistribute so as to satisfy simultaneously your obligations under this
- XLicense and any other pertinent obligations, then as a consequence you
- Xmay not distribute the Program at all. For example, if a patent
- Xlicense would not permit royalty-free redistribution of the Program by
- Xall those who receive copies directly or indirectly through you, then
- Xthe only way you could satisfy both it and this License would be to
- Xrefrain entirely from distribution of the Program.
- X
- XIf any portion of this section is held invalid or unenforceable under
- Xany particular circumstance, the balance of the section is intended to
- Xapply and the section as a whole is intended to apply in other
- Xcircumstances.
- X
- XIt is not the purpose of this section to induce you to infringe any
- Xpatents or other property right claims or to contest validity of any
- Xsuch claims; this section has the sole purpose of protecting the
- Xintegrity of the free software distribution system, which is
- Ximplemented by public license practices. Many people have made
- Xgenerous contributions to the wide range of software distributed
- Xthrough that system in reliance on consistent application of that
- Xsystem; it is up to the author/donor to decide if he or she is willing
- Xto distribute software through any other system and a licensee cannot
- Ximpose that choice.
- X
- XThis section is intended to make thoroughly clear what is believed to
- Xbe a consequence of the rest of this License.
- X
- X 8. If the distribution and/or use of the Program is restricted in
- Xcertain countries either by patents or by copyrighted interfaces, the
- Xoriginal copyright holder who places the Program under this License
- Xmay add an explicit geographical distribution limitation excluding
- Xthose countries, so that distribution is permitted only in or among
- Xcountries not thus excluded. In such case, this License incorporates
- Xthe limitation as if written in the body of this License.
- X
- X 9. The Free Software Foundation may publish revised and/or new versions
- Xof the General Public License from time to time. Such new versions will
- Xbe similar in spirit to the present version, but may differ in detail to
- Xaddress new problems or concerns.
- X
- XEach version is given a distinguishing version number. If the Program
- Xspecifies a version number of this License which applies to it and "any
- Xlater version", you have the option of following the terms and conditions
- Xeither of that version or of any later version published by the Free
- XSoftware Foundation. If the Program does not specify a version number of
- Xthis License, you may choose any version ever published by the Free Software
- XFoundation.
- X
- X 10. If you wish to incorporate parts of the Program into other free
- Xprograms whose distribution conditions are different, write to the author
- Xto ask for permission. For software which is copyrighted by the Free
- XSoftware Foundation, write to the Free Software Foundation; we sometimes
- Xmake exceptions for this. Our decision will be guided by the two goals
- Xof preserving the free status of all derivatives of our free software and
- Xof promoting the sharing and reuse of software generally.
- X
- X NO WARRANTY
- X
- X 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
- XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
- XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- XREPAIR OR CORRECTION.
- X
- X 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- XPOSSIBILITY OF SUCH DAMAGES.
- X
- X END OF TERMS AND CONDITIONS
- X
- X Appendix: How to Apply These Terms to Your New Programs
- X
- X If you develop a new program, and you want it to be of the greatest
- Xpossible use to the public, the best way to achieve this is to make it
- Xfree software which everyone can redistribute and change under these terms.
- X
- X To do so, attach the following notices to the program. It is safest
- Xto attach them to the start of each source file to most effectively
- Xconvey the exclusion of warranty; and each file should have at least
- Xthe "copyright" line and a pointer to where the full notice is found.
- X
- X <one line to give the program's name and a brief idea of what it does.>
- X Copyright (C) 19yy <name of author>
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2 of the License, or
- X (at your option) any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X
- XAlso add information on how to contact you by electronic and paper mail.
- X
- XIf the program is interactive, make it output a short notice like this
- Xwhen it starts in an interactive mode:
- X
- X Gnomovision version 69, Copyright (C) 19yy name of author
- X Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- X This is free software, and you are welcome to redistribute it
- X under certain conditions; type `show c' for details.
- X
- XThe hypothetical commands `show w' and `show c' should show the appropriate
- Xparts of the General Public License. Of course, the commands you use may
- Xbe called something other than `show w' and `show c'; they could even be
- Xmouse-clicks or menu items--whatever suits your program.
- X
- XYou should also get your employer (if you work as a programmer) or your
- Xschool, if any, to sign a "copyright disclaimer" for the program, if
- Xnecessary. Here is a sample; alter the names:
- X
- X Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- X `Gnomovision' (which makes passes at compilers) written by James Hacker.
- X
- X <signature of Ty Coon>, 1 April 1989
- X Ty Coon, President of Vice
- X
- XThis General Public License does not permit incorporating your program into
- Xproprietary programs. If your program is a subroutine library, you may
- Xconsider it more useful to permit linking proprietary applications with the
- Xlibrary. If this is what you want to do, use the GNU Library General
- XPublic License instead of this License.
- SHAR_EOF
- $TOUCH -am 0103114992 COPYING &&
- chmod 0664 COPYING ||
- echo "restore of COPYING failed"
- set `wc -c COPYING`;Wc_c=$1
- if test "$Wc_c" != "17982"; then
- echo original size 17982, current size $Wc_c
- fi
- echo "End of part 3, continue with part 4"
- exit 0
-
- exit 0 # Just in case...
-