aboutsummaryrefslogtreecommitdiffstats
path: root/chkfont.c
diff options
context:
space:
mode:
authorJonathan McCrohan <jmccrohan@gmail.com>2012-05-08 14:48:01 +0100
committerJonathan McCrohan <jmccrohan@gmail.com>2012-05-08 14:48:01 +0100
commite8ed9bd2e7597f7aefdfc7004a308f0e291c3ca7 (patch)
treedaaa342bcc828ba94f826c82a133da10f4a09567 /chkfont.c
downloadfiglet-e8ed9bd2e7597f7aefdfc7004a308f0e291c3ca7.tar.gz
Imported Upstream version 2.2.2upstream/2.2.2
#channels.conf for DVB-T - Crystal Palace Transmitter

# Multiplex 1 BBC - Channel 25, Offset -, Freq 505833333
BBCi:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4479
CBBC Channel:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4671
BBC ONE:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601
BBC TWO:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:610:611
BBC THREE:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:620:621
BBC NEWS 24:505833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:640:641

# Multiplex 2 Digital 3&4 - Channel 22, Offset -, Freq 481833333
Teletext:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0
FourText:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0
CHANNEL4:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2827:2828
ITV NEWS:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2850:2851
ITV 1:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:512:650
ITV 2:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2818:2819
Ch 14:481833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2840:2841

#Multiplex A SDN - Channel 32, Offset -, Frequency 561833333
ntl:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0
Ch 15:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:660
BBC Radio 1:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6210
BBC Radio 2:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6226
BBC Radio 3:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6242
BBC Radio 4:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:6258
QVC:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6049:6050
FIVE:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6017:6018
bid-up.tv:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6273:6274
TV Travel Shop:561833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6161:6161

#Multiplex B BBC - Channel 28, Offset -, Frequency 529833333
#Community                (0x4e00) 01: PCR 0x1fff
#703                      (0x4c80) 01: PCR 0x1fff
BBC PARLMNT:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:403
BBC FOUR:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:401
701:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:204:411
702:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:203:407
CBeebies:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:401:402
BBC Asian Net:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:435
1Xtra BBC:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:434
BBC 7:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:433
BBC 6 Music:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:432
BBC 5L SportsX:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:431
BBC R5 Live:529833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:430

# Multiplex C Crown Castle - Channel 34, Offset +, Frequency 578166666
UKHistory:578166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:401:402
Sky Travel:578166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:301:302
Sky Spts News:578166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:202
Sky News:578166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:101:102

# Multiplex D Crown Castle - Channel 29, Offset -, Freq 537833333
#UKBrightIdeas            (0x64c0) 01: PCR 0x1fff
THE HITS:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:101:102
TMF:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:201:202
CBM:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:501:502
Free2Play:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0
Q:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1901
Magic:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1801
The Hits Radio:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1701
BBC World Sv:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1601
oneworld:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1501
jazz fm:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1401
Kerrang:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1301
Smash Hits:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1201
Kiss:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1101
number.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+cha=getc(fontfile);
+if (cha!='a') {
+ printf("%s: Warning- Sub-version character is not 'a'.\n",fontfilename);
+ wc++;
+ weregone(0); if (gone) return;
+ }
+fileline=(char*)my_alloc(sizeof(char)*(1001));
+if (fgets(fileline,1001,fontfile)==NULL) {
+ fileline[0] = '\0';
+ }
+if (strlen(fileline)>0 ? fileline[strlen(fileline)-1]!='\n' : 0) {
+ while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */
+ }
+numsread=sscanf(fileline,"%c %d %d %d %d %d %d %d %d",
+ &hardblank,&charheight,&upheight,&maxlen,&old_layout,&cmtcount,
+ &ffrighttoleft,&layout,&spectagcnt);
+free(fileline);
+if (numsread<7) {
+ ffrighttoleft=0;
+ }
+if (numsread<9) {
+ spectagcnt=-1;
+ }
+have_layout = (numsread>=8);
+if (6>numsread) {
+ printf("%s: ERROR (fatal)- First line improperly formatted.\n",fontfilename);
+ ec++;
+ weregone(1); if (gone) return;
+ }
+if (!strchr(posshardblanks,hardblank)) {
+ printf("%s: Warning- Unusual hardblank.\n",fontfilename);
+ wc++;
+ weregone(0); if (gone) return;
+ }
+if (charheight<1) {
+ printf("%s: ERROR (fatal)- charheight not positive.\n",fontfilename);
+ ec++;
+ weregone(1); if (gone) return;
+ }
+if (upheight>charheight || upheight<1) {
+ printf("%s: ERROR- up_height out of bounds.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (maxlen<1) {
+ printf("%s: ERROR (fatal)- maxlen not positive.\n",fontfilename);
+ ec++;
+ weregone(1); if (gone) return;
+ }
+if (old_layout<-1) {
+ printf("%s: ERROR- old_layout < -1.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (old_layout>63) {
+ printf("%s: ERROR- old_layout > 63.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (have_layout && layout<0) {
+ printf("%s: ERROR- layout < 0.\n", fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (have_layout &&layout>32767) {
+ printf("%s: ERROR- layout > 32767.\n", fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (have_layout && old_layout == -1 && (layout & 192)) {
+ printf("%s: ERROR- layout %d is inconsistent with old_layout -1.\n",
+ fontfilename,layout);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (have_layout && old_layout == 0 && (layout & 192) != 64 &&
+ (layout & 255) != 128) {
+ printf("%s: ERROR- layout %d is inconsistent with old_layout 0.\n",
+ fontfilename,layout);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (have_layout && old_layout > 0 &&
+ (!(layout & 128) || old_layout != (layout & 63))) {
+ printf("%s: ERROR- layout %d is inconsistent with old_layout %d.\n",
+ fontfilename,layout,old_layout);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (cmtcount<0) {
+ printf("%s: ERROR- cmt_count is negative.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+if (ffrighttoleft<0 || ffrighttoleft>1) {
+ printf("%s: ERROR- rtol out of bounds.\n",fontfilename);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+
+for (i=1;i<=cmtcount;i++) {
+ while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */
+ }
+
+maxlinelength = 0;
+currline=cmtcount+1;
+fileline=(char*)my_alloc(sizeof(char)*(maxlen+1001));
+for (i=0;i<102;i++) {
+ readchar();
+ if (gone) return;
+ }
+
+oldord=0;
+while(fgets(fileline,maxlen+1000,fontfile)!=NULL) {
+ currline++;
+ len=strlen(fileline)-1;
+ if (len-100>maxlinelength) {
+ maxlinelength=len-100;
+ }
+ if (len>maxlen+100) {
+ printf("%s: ERROR- Code tag line way too long in line %d.\n",
+ fontfilename,currline);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+ tmpcnt=sscanf(fileline,"%li",&theord);
+ if (tmpcnt<1) {
+ printf("%s: Warning- Extra chars after font in line %d.\n",
+ fontfilename,currline);
+ wc++;
+ weregone(0); if (gone) return;
+ break;
+ }
+ codetagcnt++;
+ if (theord>65535 && !bigcodetagwarn) {
+ printf("%s: Warning- Code tag > 65535 in line %d.\n",
+ fontfilename,currline);
+ printf("%s: (Above warning will only be printed once.)\n",
+ fontfilename);
+ bigcodetagwarn = 1;
+ wc++;
+ weregone(0); if (gone) return;
+ }
+ if (theord==-1) {
+ printf("%s: ERROR- Code tag -1 (unusable) in line %d.\n",
+ fontfilename,currline);
+ ec++;
+ weregone(0); if (gone) return;
+ break;
+ }
+ if (theord>=-255 && theord<=-249 &&!deutschcodetagwarn) {
+ printf("%s: Warning- Code tag in old Deutsch area in line %d.\n",
+ fontfilename,currline);
+ printf("%s: (Above warning will only be printed once.)\n",
+ fontfilename);
+ deutschcodetagwarn = 1;
+ wc++;
+ weregone(0); if (gone) return;
+ }
+ if (theord<127 && theord>31 && !asciicodetagwarn) {
+ printf("%s: Warning- Code tag in ASCII range in line %d.\n",
+ fontfilename,currline);
+ printf("%s: (Above warning will only be printed once.)\n",
+ fontfilename);
+ asciicodetagwarn = 1;
+ wc++;
+ weregone(0); if (gone) return;
+ }
+ else if (theord<=oldord && theord>=0 && oldord>=0 && !nonincrwarn) {
+ printf("%s: Warning- Non-increasing code tag in line %d.\n",
+ fontfilename,currline);
+ printf("%s: (Above warning will only be printed once.)\n",
+ fontfilename);
+ nonincrwarn = 1;
+ wc++;
+ weregone(0); if (gone) return;
+ }
+ oldord=theord;
+ readchar();
+ if (gone) return;
+ }
+
+if (spectagcnt!=-1 && spectagcnt!=codetagcnt) {
+ printf("%s: ERROR- Inconsistent Codetag_Cnt value %d\n",
+ fontfilename, spectagcnt);
+ ec++;
+ weregone(0); if (gone) return;
+ }
+
+if (fontfile!=stdin) fclose(fontfile);
+
+weregone(1); if (gone) return;
+}
+
+
+int main(argc,argv)
+int argc;
+char *argv[];
+{
+int arg;
+
+if ((myname=strrchr(argv[0],'/'))!=NULL) {
+ myname++;
+ }
+else {
+ myname = argv[0];
+ }
+if (argc<2) {
+ usageerr();
+ }
+for (arg=1;arg<argc;arg++) {
+ fontfilename=argv[arg];
+ fileline=NULL;
+ checkit();
+ if (fileline!=NULL) free(fileline);
+ }
+exit(0);
+}