david@devvax.Jpl.Nasa.Gov (David E. Smyth) (02/09/91)
Submitted-by: david@devvax.Jpl.Nasa.Gov (David E. Smyth) Posting-number: Volume 11, Issue 38 Archive-name: wcl/part26 #! /bin/sh # Make a new directory for the wc sources, cd to it, and run kits 1 # thru 35 through sh. When all 35 kits have been run, read README. echo "This is wc 1.05 kit 26 (of 35). If kit 26 is complete, the line" echo '"'"End of kit 26 (of 35)"'" will echo at the end.' echo "" export PATH || (echo "You didn't use sh, you clunch." ; kill $$) mkdir Doc Wc 2>/dev/null echo Extracting Doc/VG2.PS:AB sed >Doc/VG2.PS:AB <<'!STUFFY!FUNK!' -e 's/X//' X04000403B9FFAFEEEBB6BECAAEBB6F6BBAEFFB77775DF8FEBFAFFBDAECFBC31A79=FFB00400041F59#H">$8)J' X>222A222BE9FFDFC6EC79BF2BB1BB9FE1C39C3FBEFC2EC71FF7763763FFFFFF7FDFFDC71E687FC6EEFBBAE9B9=FEE2222A2235(Z%;#H">$8$9#J' X08000803B9FFAF1FBFFFFFFFEBFAFFBFBEE6BFFDA0BF9=FFB00800081F(G">#H">"@"J' X82928293E9FFDFF7FF7FDFFDFB>FEE282928280(G">#H">#<"8"J' X08000803B9FFAFFBFEBFAFFBBACEEB>FFB008000815(G">#H">-J' X22222223E9FFDFF7FF7FDFFDC71C7FC61BFF872C71C31B>FEE22222223F(G"`"8#H">"VJ' X10011003B9FFAFF807FEBFAFFB>FFB11001101F(G">#H">"B"J' X88A888ABE9FFDFF0FF7FDFFDDF<FEE088A888A8(GR8#H">"B"J' X00000003B9FFAFFEBFAFFBCF<FFB00000001F(J#H">"B"J' X22122213E9FFDF:FF7FDFFDC7<FEE222122200(J$y"8">"f#J' X08440847B9FFAF:FEBFEAAAAFAFFA0183<FFB008440848(J$y"8">"B"J' XA100A103E9FFDF:FF7FD5554FDFFC81<FEE0A100A100(J$Y"8">X"J' X0408040BB9FFAF:FEBFEFCFAF80<FFB004080415(j%G"J"J' X20A220A3E9FFD0907FF7FDFDF67F;FEE220A220A0(J$G"=%>%J' X0A000A03B9FFA0:FEBFEFAFC7FFE001FC00003F;FFB00A000A1F(J$G"=%>%J' X8088808BE9FFC0:FF7FDFDFC03F000FFF80001F;FEE08088809E&Z$8%8">">$?$J' X04000403B9<FEBFEFFDD76377F7AF00007FF8000F;FFB004000408&J$9#8"8"<"=%?$J' X222A222BE9<FF7FDFD377EFEFDFE00003FFFF0001;FEE2222A223F&J$;"A"?"B#J' X08000803B9<FEBFEFAFAF1F001F:FFB00800081E&J$9"8&<"?"C"J' X82928293E9<FF7FDFD5F8C3863743DFFF01:FEE28292829F&J$;'<"=#A"8#J' X08000803B9<FEBFEFDFF76F75D76FAF8001FE003F9FFB00800081F&J$9&?"<$B%J' X22222223E9<FF7FDFD677AFF9EFDFFC000301FE00039FEE22222223F&J$<"@"<$B&J' X10011003B9<FEBFEFFEAFE000073FFFC0007F8FFB11001101F&J$9)<"<$AQJ' X88A888ABE9<FF7FDFD77777F76D75D66DDF00000F8FEE088A888BF&J$8*<+J' X00000003B9<FEBFEFFE376377F8F3863973AFFFD555555FF800381FIFFB00000001F&J$8T<+D"w"C' X22122213E9<FF7FDFDFFFAAAAAA9FE001F83FFAAAAFFEE22212221F(s#z%G+D"w"C' X08440847B9FFD55557FF/5557FEBFEFAFFFDFFFFF9F000FFC7FF5554FFFB00844085F't#z%G$8&D"W"C' XA100A103E9FFAAA7FE/AAA7FF7FDFDFFFBF98007FFCFFFBCFFEE0A100A11F(s#z%G$9$E"J' X0408040BB9FFD55547FF/5547FEBFEFAFFFDF03FFFDF7:FFB00408041F(S$Y%i"8$9$E"J' X20A220A3E9FFAFC7FEBFC7FF7FD00FDFFFBF1FFFFFFB:FEE220A220BF(?#E$G(G"J' X0A000A03B9FFDFFF7FFEBFE0AFFFDBE1C798FFF7:FFB00A000A1F(?#E#Z8'H#8#9%D' X8088808BE9FFAFFEBFFF7F0DFFFBBEEBB9FFB07FDDFE304377FFEE08088809F(?#E#H&I$<$E' X04000403B9FFDFFF7FFEBFAFFFDBEEBFF7DF7FDD7ED7FFB00400041F(?#E#H$J'9"G' X222A222BE9FFAFFEBFFF7FDFFFBB5FBDFFFFFFC9FDFFEE2222A223F(?#E#H&I*9"D' X08000803B9FFDFFF7FFEBFAFFFDBE1C7F7DE72E3FD58D38E3F63FFB00800081F(?#E#H&I.D' X82928293E9FFAFFEBFFF7FDFFFBBEBFBFBDF755DFD574D75DFE30ED75DFEE28292829F)8#:%8#8#;#H%J"8+D' X08000803B9FFDF87FE0FFF7FFF87FE0FFE7FFEBFAFFFDBED4F741FDD05F741FFD7ED767FFB00800081F-:)8#;#H&I"8'9"D' X22222223E9FFAFDBFDFFFFBFFEBFFFDBFDFFFFBFFDBFFF7FDFFFBBEEBBFB5FFDD7DF75FF7BFEE22222223F(?#?";$y"8&I"8"8%8"D' X10011003B9FFDFFF7FFFFEBFEAAAAFAFFFD82EC7F75D5F85DFDD5DFFB11001101F38,8$y"8'H.D' X88A888ABE9FFAFDB1871FFBBA1C71FC7FEBF1871FFBA71A71DF1A65C7FFF7FD5554FDFFFBFFFFF9BFBDE3763FDD8DFF63FE37C38E3FEE088A888BF+8'8,8$Y"8$8#G"Q"PD' X00000003B9FFDFDBEDFEAEBAEFC7FF7FEDFEFFB9BE9AE86E9AABBFFEBFEFCFAFFFDF987FF777FFB00000001F+9&8,8$G$9$E"<"I' X22122213E9FFAFDB0DF0833FC7FEBF0DF0FFBBF0BB3DEEBEACFFFF7FDFDFFFBF1FFFDFFB8FFEE22212221F+8+8$8#8$G$9$E"<"I' X08440847B9FFDFDAEDEE2EBFDFC7FF7FFFDAEDEEEEBBDDAF7FFEBFEFAFFFDF07FF8FF7FFFFB00844085F(8*9"9#8#8$G(G"J' XA100A103E9FFAFAEFFBCA1BAEFC7FEBFAEBAEDABBFFF7FDFDFFFA000001C01FB:FEE0A100A11F58(8$9(=$8%E"g"C' X60408040BB9FFDF870E70FFBFAFC71FC7FF7FFF870E70F0BB1DF1BEEC7FFEBFEFF75D8DDFF3FE7FAFFFC01F007F07F40FFFB00408041F3X8$:&>"P$E"J' X20A220A3E9FFAFFFFFFFFFFBAFFFFFC7FEBFFF7FDF4DDDDFEDDFDFC00F03F8:FEE220A220BF(:#9#E$;%>";#FYC' X0A000A03B9FFDFFC6FFF7FFEBFEFDEBFEFFFAFF002FFB00A000A1F(:#9#E$:"9#=";$J' X8088808BE9FFAFFFFFFEBFFF7FDF559F78DFFC0001JFEE08088809F(?#E$;'<";$E$;#G' X04000403B9FFDFFF7FFEBFEFDF7FC3DF777FAFFF8000C0007FF07FFFB00400041F(?#E$:'="<"C';#G' X222A222BE9FFAFFEBFFF7FDF59DEBFEFDF70DFE08FFFFC0007FFF81FFEE2222A223F(?#E$?#<"<$A&<#G' X08000803B9FFDFFF7FFEBFEF77FFAFF8007F81FFE0003FFC0FFFB00800081F(?#E$:$9"<">"A&<#G' X82928293E9FFAFFEBFFF7FDF5DDDDF7FDF3F803E0003FFFE07FEE28292829F(?#E$9$8$<">"A%=#G' X08000803B9FFDFFF7FFEBFEFF8DD8D8E38FFAF1FC000003FFF03FFB008000811(?#E$9R="<$C#>"G' X22222223E9FFAFFEBFFF7FDFDFF0000701FF81FEE222222231(?#E$G">"C"?$E' X10011003B9FFDFFF7FFEBFEFAF001FC0FF7FFFB110011011(?#E$G"<%@$?#F' X88A888ABE9FFAFFEBFFF7FDFDFFFFF003F8000FFE07EFEE088A888B1(?#E$G">#?$@#F' X00000003B9FFDFFF7FFEBFEFAFC00FF80003F03CFFB0000000114w&i"8">#?$@$E' X22122213E9FFAFFAAAAAAAAAAAAABFC7FEBFEAAABFC7FF7FD00FDFF003800007F8183FFEE22212221F4w&G">#>%@#F' X08440847B9FFDFF55555555555553FC7FF7FD5553FC7FEBFE0AFFE00FC00000FFC00FFB00844085F)Q8$W8#Z8">$=%@"G' XA100A103E9FFAFFBFEBFEFFF7F0DFFF801FC000601FFEFEE0A100A100)>$D#H"?#=%@#F' X0408040BB9FFDFF7FF7FDFFEBFAFFFFFFFFFE03FFF80FFB00408041F)>$D#H"J"B"E' X20A220A3E9FFAFFBFEBFEFFF7FDF57F1FFEE220A220A0)>$D#H"<"w$A"F' X0A000A03B9FFDFF7FF7FDFFEBFAFFEAAABF1FF00FFB00A000A00-:&9%;#H"<"w#A"G' X8088808BE9FFAFFBFFFDF0E3FEBFEFF8DF9FF07F9FFF7FDFFD5553F3FEFEE080888080)8#:&9%;#H"<"W#A$E' X04000403B9FFDFF7F75DFF7FDFF75FDFF7F7DEFEBFAFFEF3F7FC000FFFB00400040C)9":&;"<#H"<"C"A"G' X222A222BE9FFAFFB5FFEBFEFF7DFFFFF7FDFFDFFF8FEE2222A222E)>)8%9$y"8"<"J$E' X08000803B9FFDFF7FF7FDFF7D38D34E3E7DC38D3FEBFEAAAAFAFFE9FF0007FFB008000813)8#:/9$y"8"<"J#E' X82928293E9FFAFFBF0E3FEBFEFF7CDF4D35DDFF0F7DEF74DFF7FD5554FDFFD:F003FEE282928280)8#:+8#9$Y"8"<-E#E' X08000803B9FFDFF7F5FDFF7FDFF7DD85D741DFF7F05FFEBFEFCFAFFEDD8DD8FF8C307F0FFFE7F7FE01FFB00800081F)8";$8$:#9$G"<,F#E' X22222223E9FFAFFBF6FEBFEF75D75FF7DFFF7FDFDFFDCDDDD77FDED7FFB7FDF7FFC0FEE22222223F)8#:&8":#9$G"<&:"H#D' X10011003B9FFDFF7F75DFF7FDFF75D5DD75FFEBFEFAFFECDDC97FFFFE07FFFB11001101F-:/9$G"<%:&E#D' X88A888ABE9FFAFFBFFFC1763FEBFEFF8DD85D7638FF7E38F38DFFF7FDFDFFDD5DD57B5D9F78634F03FFEE088A888BF-:$V9$8$9#="<"8"8)D#D' X00000003B9FFDFF7FFFFFFFFFF7FDFFEBFEFFE30F7FE7FAFFE58D0FF8DDDF775D373F81FFFB000000000)>$D$8$9">"<*8$D#D' X22122213E9FFAFFBFEBFEFFF7FDFFDDB6BFFDFFDD9DDDF7FDED7FFB57417F3FE0FFEE22212221F)>$D$9#B"<"@#E#D' X08440847B9FFDFF7FF7FDFFEBFEFFB5DAFFE75F7FF07FFB008440855)>$D$;'<"<%;"8"F"D' XA100A103E9FFAFFBFEBFEFFF7FDFFE30E38F78D3DFFDDDDDD79DD781FEE0A100A11F)a8$g8$;'<"<.F"D' X0408040BB9FFDFF4FF7FD0FEBFEFFDD75D77774DAFFEDD8DD8FF8C37FF0E58E38637C0FFB004080400)>$D$:$8#<"<"WF#C' X20A220A3E9FFAFF8FEBFE0FF7FDF41FE77705FDFFDE07FFEE220A220B5(S$Y%:$8#<"<"J#C' X0A000A03B9FFDFC7FF7FC7FEBFEF5DFFB777DFAFFE<F03FFFB00A000A1F(?#E$9&8"<"<"J#C' X8088808BE9FFAFFEBFFF7FDFDB5DFDD0DD5FDFFD<F81FFEE08088809F(?#E$8*<"<"J#C' X04000403B9FFDFFF7FFEBFEFFE30DDFE37E38E38DFAFFE<FC0FFFB004000408(?#E$8*<"<"g"E#C' X222A222BE9FFAFFEBFFF7FDFFFFFFFFFF7FFFFFFFFDFFD03FE07FEE2222A223F(?#E$G"<"J#C' X08000803B9FFDFFF7FFEBFEFAFFE<FF03FFB008000800(?#E$<"@"<YF"C' X82928293E9FFAFFEBFFF7FDFFFDF81FEE282928288(?#E$G"J"C' X08000803B9FFDFFF7FFEBFEFAFDC0FFB0080008004w&i"8"J#B' X22222223E9FFAFFAAAAAAAAAAAAABFC7FEBFEAAABFC7FF7FD00FDFDE07FFEE2222222354w&G"J#B' X10011003B9FFDFF55555555555553FC7FF7FD5553FC7FEBFE0AFDF83FFFB110011000)Q8$W8#Z8"J#B' X88A888ABE9FFAFFBFEBFEFFF7F0DFDFFFFFEE088A888BF)>$D#H"J' X00000003B9FFDFF7FF7FDFFEBFAFO$FFB00000001E)>$D#H"J"w":' X22122213E9FFAFFBFEBFEFFF7FDF@D5557FFEE222122208)>$D#H"Jx;' X08440847B9FFDFF7FF7FDFFEBFAF@AAFFB00844085F-:%8#9$9#H"J"V";' XA100A103E9FFAFFBFFFC1763FEBFEC1FF77F8C10DDFF7FDF@DFFEFEE0A100A11E-:%=$9#H"J"G' X0408040BB9FFDFF7FFFDF35DFF7FDF7D75FB5DFEBFAF@BFFFB00408041F)9":%8":";#H"J"G' X20A220A3E9FFAFFB5FFEBFEF7FF27DFF7FDF@DFFEE220A220BF)8";+:"8$y"8"J"G' X0A000A03B9FFDFF7F5FF7FDF79CB8FF5634E388FFEBFEAAAAFAF@BFFFB00A000A1F,;08$y"8"J%>";' X8088808BE9FFAFFBFFFC35FEBFEF7DD577F55D35D77F8C3B5D77FF7FD5554FDF@DC7FFFFC3EFEE08088809F-:$8+8$Y"8"J%9":";' X04000403B9FFDFF7FFFDF659FF7FDF07F7417DD07FF5FB5D9FFEBFEFCFAF@BBBFFFFEF7BEFFB00400041F)9":$8'9"8$G"J#:"A' X222A222BE9FFAFFB5DFEBFEF7FF75F7DD7FFEFFF7FDFDF@DBFFBFFEE2222A223F)8";$8(8"8$G"J-<' X08000803B9FFDFF7F7FF7FDF77F75D7E177F7577FEBFEFAF@BBE1C71EF1A71FE1961FF187FFB00800081F-:08$G"J-<' X82928293E9FFAFFBFFFC1763FEBFEF78DD8FF7637FD8FF8DF0E38FFF7FDFDF@DC6EBAEEEE9BBFF7AAEFEEBBFEE28292829F-:$P#P8&;"?"J#8&v% X08000803B9FFDFF7FFFFFFFFFF7FDFFDDFFEBFEC3063E7AF@BFAEE0BFFFF7AD555000081F)>$;#=.8#9"J"9"9w% X22222223E9FFAFFBFEBFEFFE3FFF7FDEDDDDFFFDFFBFFFF7FFFDFDEFDF@DFEFAAA222223F)>$;#=(;"8":"J#8&v% X10011003B9FFDFF7FF7FDFFFFFFEBFEEDDDFFFFFFFFFAF@BBA1EEBFBFF6AD554001101F)>$D$8-9"J*v% X88A888ABE9FFAFFBFEBFEFFF7FDEFDD9D30DD8F7FE39D38DD9C3DF@DC6FC71C71BF1FF9BAAA80A888BF)a8$g829"J+U% X00000003B9FFDFF4FF7FD0FEBFEEDDE3FDDDCDBDDF77FDDDCD75DDEFAF@BFEFFFFFFFFFBFFFFD7F8000001F)>$D&8$8$;"J";%@% X22122213E9FFAFF8FEBFE0FF7FDEDDFDDFBDD8FDDF7DDF@DFFFFFFAFF8212221F(S$Y%8#8"@"J#<#@% X08440847B9FFDFC7FF7FC7FEBFEEFEBDD7AF@BFFFFD7F8044085F(?#E&9#8&9"J"=#@% XA100A103E9FFAFFEBFFF7FDEDDDDB597DDDF759DEDDF@DFFAFF8100A11F(?#E29"J"b$9#:% X0408040BB9FFDFFF7FFEBFEC3DE3FF78DFCE5863FE38DF8E58F3AF@A00571BFFBBF8408041F(?#E$Y9"J"=#:";% X20A220A3E9FFAFFEBFFF7FDFDF@C002EEF980A220BF(?#E$G"JS#@% X0A000A03B9FFDFFF7FFEBFEFAF@FD6F82000A1F(?#E$G"J+8% X8088808BE9FFAFFEBFFF7FDFDFHFAEFA71A71C7FAB1971F8088809F(?#E$G"J+8% X04000403B9FFDFFF7FFEBFEFAFHFD6F9BE9AEBBFABEAAEF8400041F3E$i"8"J+8% X222A222BE9FFAFFAAAAAAAAAAAAABFC7FEBFFF7FD00FDFHFAEFBB0BAE83FB30AA0F822A223F3E$G"J+8% X08000803B9FFDFF55555555555553FC7FF7FFEBFE0AFHFD6FBAEBAEBFFB2EAAFF8000081F)Q8#E#Z8"J#8- X82928293E9FFAFFBFEBFFF7F0DFHFAEEB0BBFBAEAAEEFBEF8292829F)>#E#H"J1 X08000803B9FFDFF7FF7FFEBFAFHFD71BB0BBEC7FBB0BB1C71C78000081F)>#E#H"J1 X22222223E9FFAFFBFEBFFF7FDFHFAFFFFFFEEFF3FFFFFFEFBEF8222223F)>#E#H"J#8#9( X10011003B9FFDFF7FF7FFEBFAFHFD7FF1FCFFFFFF8001101F-:#E#H"J#8$<$ X88A888ABE9FFAFFBFFFE3043FEBFFF7FDFHFAFFFFF07FA888BF-:#E#H"J#9"=$ X00000003B9FFDFF7FFFDD7EDFF7FFEBFAFHFD7FC000001F)8";#E#H"J(`% X22122213E9FFAFFBF7FEBFFF7FDFHFA8000000300800212221F)>#E#H"J#8"=% X08440847B9FFDFF7FF7FFEBFAFHFD00040044085F,;#E#H"J"9$;% XA100A103E9FFAFFBFFFE30FEBFFF7FDFHFA07C1000100A11F,;#E#H"J1 X0408040BB9FFDFF7FFFFD7FF7FFEBFAFHFCAAAAAAAA81AAAAAAAAAAAAA408041F)>#E#H"J'Q% X20A220A3E9FFAFFBFEBFFF7FDFHFBFFFFFFFF13E0A220B1+<#E#H"J"9#<% X0A000A03B9FFDFF7FFFDFF7FFEBFAFHFDFE33E2000A11-:#E#H"J"9#<% X8088808BE9FFAFFBFFFE3043FEBFFF7FDFHFBFC77E0888091-:#E#H"J"9#<% X04000403B9FFDFF7FFFFFFFFFF7FFEBFAFHFDF8F7E4000411)>#E#H"J"9#<% X222A222BE9FFAFFBFEBFFF7FDFHFBF1FFE22A2231)>#E#H"J"9"=% X08000803B9FFDFF7FF7FFEBFAFHFDFBE000081F)>#E#H"J#8"=% X82928293E9FFAFFBFEBFFF7FDFHFBE1FFE292829F)a8#E#H"J$;"9% X08000803B9FFDFF4FF7FFEBFAFHFDF6EFDFE0000800)>#E#H"J$?% X22222223E9FFAFF8FEBFFF7FDFHFBF6FFE222223F(S$E#H"J*9% X10011003B9FFDFC7FF7FFEBFAFHFDF6CF1C71A69C7187E0011000(?#E#H"J*:$ X88A888ABE9FFAFFEBFFF7FDFHFBF6EEEBAE9A6BAEDFA888A0(?#E#H"J);$ X00000003B9FFDFFF7FFEBFAFHFDF6EF3BEEBAE82F000000(?#E#H"J"8"8#:% X22122213E9FFAFFEBFFF7FDFHFBDBEBEFE212220C(?#E#H"J&8#9% X08440847B9FFDFFF7FFEBFAFHFDF6EEEBAEAEDBE044084E(?#E#H"J*9% XA100A103E9FFAFFEBFFF7FDFHFBE1C71C71BAEC71E7E100A113(?#E#H"J"S9% X0408040BB9FFDFFF7FFEBFAFHFDE4080400(?#E#H"J"A% X20A220A3E9FFAFFEBFFF7FDFHFBE0A220BF(c$i$j$j"A% X0A000A03B9FFD007FF4007FE80001FFA0H05E2000A1F(?#E#H"J"A% X8088808BE9FFA0FE80FF00C0H03E088809F(?#E"I"J"A% X04000403B9FFC0FF00FE80H05E400041F&Z"A% X222A222BE9OKFBE22A2220&J"A% X08000803B9OKFDE000081F&J"A% X82928293E9OKFBE2928295&J"A% X08000803B9OKFDE000081F&J"A% X22222223E9OKFBE2222220&J"A% X10011003B9OKFDE0011015&J"B$ X88A888ABE9OKFBA888BF&J#A$ X00000003B9OKFDE100001F&J%>% X22122213E9OKFBF6FFFDE2122208&J"A% X08440847B9OKFDE044085F&j(;% XA100A103E8OK03F6C71869C6EFE100A100&Z'<% X0408040BB8OKFDF6BAEDE6BAE4080408&J&=% X20A220A3E8OKFBF6833DEFE0A220A0&J%8";% X0A000A03B8OKFDF6BFDDCFE2000A15&J(;% X8088808BE8OKFBF6BAEDAFBB2FE0888080&J(;% X04000403B8OKFDE1C71E6FC7EFE400041F&J'<% X222A222BE8OKFBFFFFFFFFFEE22A223E&J":#;% X08000803B8OKFDFF1FE0000808&J";";% X82928293E8OKFBFFE292829F&J"A% X08000803B8OKFDE000081E&J"A% X22222223E8OKFBE222223F&J"A% X10011003B8OKFDE001101F&J"g$ X88A888ABE8OKFAA888BF&J"B$ X00000003B8OKFC00001F&JU' X22122213E8OKF6E22212221F&J' X08440847B8P'F7B00844085F&J' XA100A103E8P'F6E0A100A11F&J' X0408040BB8P'F7B00408041F&J' X20A220A3E8P'F6E220A220BF&J' X0A000A03B8P'F7B00A000A1F&J' X8088808BE8P'F6E08088809F&J' X04000403B8P'F7B00400041F&J' X222A222BE8P'F6E2222A223F&J' X08000803B8P'F7B00800081F&J' X82928293E8P'F6E28292829F&J' X08000803B8P'F7B00800081F&J' X22222223E8P'F6E22222223F&J' X10011003B8P'F7B11001101F&J' X88A888ABE8P'F6E088A888BF&J' X00000003B8P'F7B00000001F&J' X22122213E8P'F6E22212221F&J' X08440847B8P'F7B00844085F&J' XA100A103E8P'F6E0A100A11F&J' X0408040BB8P'F7B00408041F&J' X20A220A3E8P'F6E220A220BF&J' X0A000A03B8P'F7B00A000A1F&J' X8088808BE8P'F6E08088809F&J' X04000403B8P'F7B00400041F&J' X222A222BE8P'F6E2222A223F&J' X08000803B8P'F7B00800081F&J' X82928293E8P'F6E28292829F&J' X08000803B8P'F7B00800081F&J' X22222223E8P'F6E22222223F&J' X10011003B8P'F7B110011011&J' X88A888ABE8P'F6E088A888B1&J' X00000003B8P'F7B000000011&J' X22122213E8P'F6E222122211&J' X08440847B8P'F7B008440851&J' XA100A103E8P'F6E0A100A11F&J' X0408040BB8P'F7B00408041F&J' X20A220A3E8P'F6E220A220A0&J' X0A000A03B8P'F7B00A000A1F&J' X8088808BE8P'F6E080888080&J' X04000403B8P'F7B004000400&J' X222A222BE8P'F6E2222A2220&J' X08000803B8P'F7B00800080C&J' X82928293E8P'F6E28292828E&J' X08000803B8P'F7B008000813&J' X22222223E8P'F6E222222220&J' X10011003B8P'F7B11001101F&J' X88A888ABE8P'F6E088A888BF&J' X00000003B8P'F7B00000001F&J' X22122213E8P'F6E22212221F&J' X08440847B8P'F7B008440840&J' XA100A103E8P'F6E0A100A11F&J' X0408040BB8P'F7B004080415&J' X20A220A3E8P'F6E220A220BF&J& X0A000A0200P(000A000A00&J' X8088808BFCP'F7F880888095&J& X04000403B8P(B00400041F&J' X222A222BE8P'F6E2222A223F&J' X08000803B8P'F7B008000808&J' X82928293E8P'F6E28292829F&J' X08000803B8P'F7B008000800&J' X22222223E8P'F6E222222228&J' X10011003B8P'F7B110011000&J' X88A888ABE8P'F6E088A888B5&J' X00000003B8P'F7B000000000&J' X22122213E8P'F6E22212221F&J' X08440847B8P'F7B00844085E&J' XA100A103E8P'F6E0A100A108&J' X0408040BB8P'F7B00408041F&J' X20A220A3E8P'F6E220A220BE&j' X0A000A03B8P'07B00A000A1F&Z' X8088808BE9P'FEE08088809F&J' X04000403BBP'FFB00400041F(z) X222A222BEEEEEDP#EEE6EEEEE2222A223F(z) X08000803BBBBB9P#BBB7BBBBB00800081F(z) X82928293EEEEEDP#EEE6EEEEE28292829F(z) X08000803BBBBB9P#BBB7BBBBB00800081F(z) X22222223EEEEEDP#EEE6EEEEE22222223F(j) X10011003000001P#040000011001101F%8"J"8& X88A888AA00P#000088A888BF%J% X00000000P*0000001F5 XP2221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221F5 XP2084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844085F5 XP2A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A11F5 XP2040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408041F5 XP220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220BF5 XP20A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A1F5 XP2808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088809F5 XP2040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400041F5 XP2222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A223F5 XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081F5 XP2829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829F5 XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081Fz" XP1223F5 XP2100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001101F5 XP288A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888BFj" XP11F5 XP2221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221F5 XP2084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844085F5 XP2A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A11F5 XP2040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408041F5 XP220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220BF5 XP20A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A1F5 XP280888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880915 XP204000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004115 XP2222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A22315 XP208000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008115 XP282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282915 XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081F XENDBITMAP X X%%EndBinary XU XFMENDPAGE X%%Page: "4" 4 XFMBEGINPAGE X72. 531. 630. 531. 2 L X3 H X0 X XN X678. 542. 687. 549. R XV X7 X X90. 450. 3. 3.5 684. 545.5 G X675. 542. 684. 549. R XV X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y X0 X XV X0 H XN X270. 360. 6.5 6.5 653.5 535.5 G X270. 270.1 6.5 -6.5 647. 529. A X270. 0. -6.5 -6.5 660. 529. A X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y XV XN X180. 270. 7. 6.5 703. 535.5 G X180. 180.1 7. 6.5 696. 542. A X180. 270. 7. -6.5 696. 529. A X669. 556. 669. 529. 663. 529. 663. 556. 4 Y XV XN X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556. X 669. 549. 687. 549. 687. 542. 10 Y XV XN X0. 90. 6.5 7. 687.5 549. G X0. 90. -6.5 7. 694. 556. A X270. 360. 6.5 7. 687.5 542. G X270. 270.1 6.5 -7. 681. 535. A X270. 0. -6.5 -7. 694. 535. A X0 F X(D.E.Smyth, December 1990) 72. 54. T X(II.4) 703.01 54. T X1 F X(The Application Provides Objects ) 72. 486. T X72. 90. 720. 504. C XU X72. 90. 720. 504. C X72. 90. 719. 480. C X187. 293. 214. 329. 214. 311. 241. 311. 241. 329. 268. 293. 241. 257. X 241. 275. 214. 275. 214. 257. 10 Y X3 X XV X1 H X0 X XN X7 X X90. 450. 58.5 157.5 359.5 292.5 G X0 X X90. 90.1 -58.5 157.5 418. 450. A X90. 180.1 58.5 157.5 301. 450. A X180. 270.1 58.5 -157.5 301. 135. A X270. 0.1 -58.5 -157.5 418. 135. A X0. 90. -58.5 157.5 418. 450. A X346. 153. 364. 216. R X5 X XV X0 X XN X347. 396. 364. 432. R X5 X XV X0 X XN X344. 342. 400. 378. R X5 X XV X0 X XN X373. 279. 403. 315. R X5 X XV X0 X XN X319. 279. 337. 342. R X5 X XV X0 X XN X373. 198. 400. 252. R X5 X XV X0 X XN X319. 216. 337. 252. R X5 X XV X0 X XN X1 F X(Widgets) 315. 108. T X7 X X90. 450. 17.5 47.5 135.5 292.5 G X0 X X90. 90.1 -17.5 47.5 153. 340. A X90. 180.1 17.5 47.5 118. 340. A X180. 270.1 17.5 -47.5 118. 245. A X270. 0.1 -17.5 -47.5 153. 245. A X0. 90. -17.5 47.5 153. 340. A X131. 250. 137. 269. R X5 X XV X0 X XN X132. 324. 137. 335. R X5 X XV X0 X XN X131. 307. 148. 318. R X5 X XV X0 X XN X140. 288. 149. 299. R X5 X XV X0 X XN X123. 288. 129. 307. R X5 X XV X0 X XN X140. 264. 148. 280. R X5 X XV X0 X XN X123. 269. 129. 280. R X5 X XV X0 X XN X(Problem) 89. 219. T X(Domain) 92. 195. T X(1:1) 211. 284. T X7 X X90. 450. 58.5 157.5 626.5 292.5 G X0 X X90. 90.1 -58.5 157.5 685. 450. A X90. 180.1 58.5 157.5 568. 450. A X180. 270.1 58.5 -157.5 568. 135. A X270. 0.1 -58.5 -157.5 685. 135. A X0. 90. -58.5 157.5 685. 450. A X613. 153. 631. 216. R X5 X XV X0 X XN X614. 396. 631. 432. R X5 X XV X0 X XN X611. 342. 667. 378. R X5 X XV X0 X XN X640. 279. 670. 315. R X5 X XV X0 X XN X586. 279. 604. 342. R X5 X XV X0 X XN X640. 198. 667. 252. R X5 X XV X0 X XN X586. 216. 604. 252. R X5 X XV X0 X XN X(Objects) 585. 108. T X452. 293. 479. 329. 479. 311. 506. 311. 506. 329. 533. 293. 506. 257. X 506. 275. 479. 275. 479. 257. 10 Y X3 X XV X0 X XN X(1:1) 476. 285. T X72. 90. 720. 504. C XU XFMENDPAGE X%%Page: "3" 3 XFMBEGINPAGE X72. 531. 630. 531. 2 L X3 H X0 X XN X678. 542. 687. 549. R XV X7 X X90. 450. 3. 3.5 684. 545.5 G X675. 542. 684. 549. R XV X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y X0 X XV X0 H XN X270. 360. 6.5 6.5 653.5 535.5 G X270. 270.1 6.5 -6.5 647. 529. A X270. 0. -6.5 -6.5 660. 529. A X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y XV XN X180. 270. 7. 6.5 703. 535.5 G X180. 180.1 7. 6.5 696. 542. A X180. 270. 7. -6.5 696. 529. A X669. 556. 669. 529. 663. 529. 663. 556. 4 Y XV XN X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556. X 669. 549. 687. 549. 687. 542. 10 Y XV XN X0. 90. 6.5 7. 687.5 549. G X0. 90. -6.5 7. 694. 556. A X270. 360. 6.5 7. 687.5 542. G X270. 270.1 6.5 -7. 681. 535. A X270. 0. -6.5 -7. 694. 535. A X0 F X(D.E.Smyth, December 1990) 72. 54. T X(II.3) 703.01 54. T X1 F X(The Widgets Represent the Problem Domain ) 72. 486. T X72. 90. 720. 504. C XU X72. 90. 720. 504. C X72. 90. 719. 480. C X342. 293. 369. 329. 369. 311. 396. 311. 396. 329. 423. 293. 396. 257. X 396. 275. 369. 275. 369. 257. 10 Y X3 X XV X1 H X0 X XN X7 X X90. 450. 58.5 157.5 494.5 292.5 G X0 X X90. 90.1 -58.5 157.5 553. 450. A X90. 180.1 58.5 157.5 436. 450. A X180. 270.1 58.5 -157.5 436. 135. A X270. 0.1 -58.5 -157.5 553. 135. A X0. 90. -58.5 157.5 553. 450. A X481. 153. 499. 216. R X5 X XV X0 X XN X482. 396. 499. 432. R X5 X XV X0 X XN X479. 342. 535. 378. R X5 X XV X0 X XN X508. 279. 538. 315. R X5 X XV X0 X XN X454. 279. 472. 342. R X5 X XV X0 X XN X508. 198. 535. 252. R X5 X XV X0 X XN X454. 216. 472. 252. R X5 X XV X0 X XN X1 F X(Widgets) 450. 108. T X7 X X90. 450. 17.5 47.5 314.5 290.5 G X0 X X90. 90.1 -17.5 47.5 332. 338. A X90. 180.1 17.5 47.5 297. 338. A X180. 270.1 17.5 -47.5 297. 243. A X270. 0.1 -17.5 -47.5 332. 243. A X0. 90. -17.5 47.5 332. 338. A X310. 248. 316. 267. R X5 X XV X0 X XN X311. 322. 316. 333. R X5 X XV X0 X XN X310. 305. 327. 316. R X5 X XV X0 X XN X319. 286. 328. 297. R X5 X XV X0 X XN X302. 286. 308. 305. R X5 X XV X0 X XN X319. 262. 327. 278. R X5 X XV X0 X XN X302. 267. 308. 278. R X5 X XV X0 X XN X(Problem) 269. 216. T X(Domain) 272. 192. T X(1:1) 366. 284. T X72. 90. 720. 504. C XU XFMENDPAGE X%%Page: "2" 2 XFMBEGINPAGE X72. 531. 630. 531. 2 L X3 H X0 X XN X678. 542. 687. 549. R XV X7 X X90. 450. 3. 3.5 684. 545.5 G X675. 542. 684. 549. R XV X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y X0 X XV X0 H XN X270. 360. 6.5 6.5 653.5 535.5 G X270. 270.1 6.5 -6.5 647. 529. A X270. 0. -6.5 -6.5 660. 529. A X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y XV XN X180. 270. 7. 6.5 703. 535.5 G X180. 180.1 7. 6.5 696. 542. A X180. 270. 7. -6.5 696. 529. A X669. 556. 669. 529. 663. 529. 663. 556. 4 Y XV XN X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556. X 669. 549. 687. 549. 687. 542. 10 Y XV XN X0. 90. 6.5 7. 687.5 549. G X0. 90. -6.5 7. 694. 556. A X270. 360. 6.5 7. 687.5 542. G X270. 270.1 6.5 -7. 681. 535. A X270. 0. -6.5 -7. 694. 535. A X0 F X(D.E.Smyth, December 1990) 72. 54. T X(II.2) 703.01 54. T X1 F X(The User Understands the Problem Domain) 72. 486. T X72. 90. 720. 504. C XU X72. 90. 720. 504. C X72. 90. 719. 480. C X3 X X90. 450. 45. 45. 393. 236. G X438. 218. 393. 236. 438. 191. 3 Y X7 X XV X0 X X0. 90. 18. 9. 402. 245. G X0 H X0. 90. -18. 9. 420. 254. A X1 F X(User) 366. 165. T X7 X X90. 450. 17.5 47.5 424.5 363.5 G X1 H X0 X X90. 90.1 -17.5 47.5 442. 411. A X90. 180.1 17.5 47.5 407. 411. A X180. 270.1 17.5 -47.5 407. 316. A X270. 0.1 -17.5 -47.5 442. 316. A X0. 90. -17.5 47.5 442. 411. A X420. 321. 426. 340. R X5 X XV X0 X XN X421. 395. 426. 406. R X5 X XV X0 X XN X420. 378. 437. 389. R X5 X XV X0 X XN X429. 359. 438. 370. R X5 X XV X0 X XN X412. 359. 418. 378. R X5 X XV X0 X XN X429. 335. 437. 351. R X5 X XV X0 X XN X412. 340. 418. 351. R X5 X XV X0 X XN X0 H X90. 90.1 -4.5 4.5 398. 294. A X90. 180.1 4.5 4.5 389. 294. A X180. 270.1 4.5 -4.5 389. 285. A X270. 0.1 -4.5 -4.5 398. 285. A X0. 90. -4.5 4.5 398. 294. A X90. 90.1 -9. 9. 389. 312. A X90. 180.1 9. 9. 371. 312. A X180. 270.1 9. -9. 371. 294. A X270. 0.1 -9. -9. 389. 294. A X0. 90. -9. 9. 389. 312. A X90. 90.1 -13.5 13.5 407. 339. A X90. 180.1 13.5 13.5 380. 339. A X180. 270.1 13.5 -13.5 380. 312. A X270. 0.1 -13.5 -13.5 407. 312. A X0. 90. -13.5 13.5 407. 339. A X72. 90. 720. 504. C XU XFMENDPAGE X%%Page: "1" 1 XFMBEGINPAGE X72. 531. 630. 531. 2 L X3 H X0 X XN X678. 542. 687. 549. R XV X7 X X90. 450. 3. 3.5 684. 545.5 G X675. 542. 684. 549. R XV X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y X0 X XV X0 H XN X270. 360. 6.5 6.5 653.5 535.5 G X270. 270.1 6.5 -6.5 647. 529. A X270. 0. -6.5 -6.5 660. 529. A X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y XV XN X180. 270. 7. 6.5 703. 535.5 G X180. 180.1 7. 6.5 696. 542. A X180. 270. 7. -6.5 696. 529. A X669. 556. 669. 529. 663. 529. 663. 556. 4 Y XV XN X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556. X 669. 549. 687. 549. 687. 542. 10 Y XV XN X0. 90. 6.5 7. 687.5 549. G X0. 90. -6.5 7. 694. 556. A X270. 360. 6.5 7. 687.5 542. G X270. 270.1 6.5 -7. 681. 535. A X270. 0. -6.5 -7. 694. 535. A X0 F X(D.E.Smyth, December 1990) 72. 54. T X(II.1) 703.01 54. T X1 F X(Guiding Principles of GUI Applications:) 72. 486. T X(The User is in Control ) 276.64 370. T X276.64 365.71 515.37 367.46 R XV X72. 90. 720. 504. C XU X72. 90. 720. 504. C X72. 184. 719. 364. C X3 X X90. 450. 45. 45. 395. 272. G X440. 254. 395. 272. 440. 227. 3 Y X7 X XV X0 X X0. 90. 18. 9. 404. 281. G X0 H X0. 90. -18. 9. 422. 290. A X1 F X(User) 369. 201. T X72. 90. 720. 504. C XU XFMENDPAGE X%%Trailer X%%Pages: 12 -1 X%%DocumentFonts: Times-Roman X%%+ Helvetica-Oblique X%%+ Helvetica-Bold !STUFFY!FUNK! echo Extracting Wc/WcReg.c sed >Wc/WcReg.c <<'!STUFFY!FUNK!' -e 's/X//' X/* X** Copyright (c) 1990 David E. Smyth X** X** This file was derived from work performed by Martin Brunecky at X** Auto-trol Technology Corporation, Denver, Colorado, under the X** following copyright: X** X******************************************************************************* X* Copyright 1990 by Auto-trol Technology Corporation, Denver, Colorado. X* X* All Rights Reserved X* X* Permission to use, copy, modify, and distribute this software and its X* documentation for any purpose and without fee is hereby granted, provided X* that the above copyright notice appears on all copies and that both the X* copyright and this permission notice appear in supporting documentation X* and that the name of Auto-trol not be used in advertising or publicity X* pertaining to distribution of the software without specific, prior written X* permission. X* X* Auto-trol disclaims all warranties with regard to this software, including X* all implied warranties of merchantability and fitness, in no event shall X* Auto-trol be liable for any special, indirect or consequential damages or X* any damages whatsoever resulting from loss of use, data or profits, whether X* in an action of contract, negligence or other tortious action, arising out X* of or in connection with the use or performance of this software. X******************************************************************************* X** X** Redistribution and use in source and binary forms are permitted X** provided that the above copyright notice and this paragraph are X** duplicated in all such forms and that any documentation, advertising X** materials, and other materials related to such distribution and use X** acknowledge that the software was developed by David E. Smyth. The X** name of David E. Smyth may not be used to endorse or promote products X** derived from this software without specific prior written permission. X** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED X** WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF X** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. X** X*/ X X/* X* SCCS_data: @(#)WcReg.c 1.1 ( 19 Nov 90 ) X* X* Subsystem_group: X* X* Widget Creation Library X* X* Module_description: X* X* Since (for portability reasons) we can not assume runtime binding, X* all widget classes, creation routines (constructors), and callbacks X* must be "registered" by the application BEFORE widget tree creation. X* X* All four of the functions defined in this module load dynamically X* allocated and extended arrays of structures. The size increment X* of the arrays starts at a reasonably small size (INCR_REGISTRY, X* initially 32), and is doubled in size everytime a given registry is X* filled. This allows registries to be small, yet to not have to be X* realloc'd frequently when they grow large. X* X* The registries are arrays of structs. In all four cases, the X* structs are very similar: they contain a name string which holds the X* class, constructor, or callback name as it was registered; a quark X* which is based on an all lower case representation of the name, and X* class, constructor, or callback specific information. The name X* as registered should be as shown in reference documents and source X* code, as it is used for user error messages. X* X* The registries are intended to be used by string-to-whatever converters. X* X* All four registration functions currently check for duplicate X* entries, but do no fancy hashing scheme, nor any ties to the X* application context. Assumming a relatively small number of X* entries in these regestries, it is assumed that a sequential X* search using quarks will be adequate and simple. X X* Module_interface_summary: X* X* WcRegisterClassPtr( X* XtAppContext app, - application context X* String name, - class ptr name, as in ref manuals X* WidgetClass class ) - class record pointer X* X* WcRegisterClassName( X* XtAppContext app, - application context X* String name, - class name, as in ref manuals X* WidgetClass class ) - class record pointer X* X* WcRegisterConstructor( X* XtAppContext app, - application context X* String name, - constructor name, as in ref manuals X* (*Widget)() const ) - constructor function pointer X* X* WcRegisterCallback( X* XtAppContext app, - application context X* String name, - callback name, "nice" capitalization X* void (*func)() ) - pointer to callback function X* X* WcRegisterAction( X* XtAppContext app, - application context X* String name, - action name X* XtActionProc proc ) - action proc X X* WcAllowDuplicateRegistration ( int allowed ) X* WcAllowDuplicateClassPtrReg ( int allowed ) X* WcAllowDuplicateClassNameReg ( int allowed ) X* WcAllowDuplicateConstructorReg ( int allowed ) X* WcAllowDuplicateCallbackReg ( int allowed ) X* X* Module_history: X X* mm/dd/yy initials function action X* -------- -------- -------- --------------------------------------------- X* 16Jul90 D.Smyth Added WcAllowDuplicate*() X* 19Jun90 D.Smyth Version 1.0 Widget Creation Library X* 06/08/90 D.Smyth All Added "name" member for better user msgs. X* 02/26/90 MarBru All Created X* 02/16/90 MarBru Create.. Limited creation to composite widgets/objects X* X* Design_notes: X* X* For VMS, we could have used LIB$FIND_IMAGE_SYMBOL and use dynamic X* (runtime) binding. But since most UNIX systems lack such capability, X* we stick to the concept of "registration" routines. X* X******************************************************************************* X*/ X/* X******************************************************************************* X* Include_files. X******************************************************************************* X*/ X X/* -- X Window System Includes */ X#include <X11/Intrinsic.h> X X/* -- Widget Creation Includes */ X#include "WcCreate.h" X#include "WcCreateP.h" X X/* X******************************************************************************* X* Private_data_definitions. X******************************************************************************* X The following cache/registry of known widget classes, contructors, X and callbacks are initially empty, and are loaded by the application X using "registration" routines. X*/ X Xstatic char msg[MAX_ERRMSG]; X Xstatic int allowDuplicateClassPtrReg = FALSE; Xstatic int allowDuplicateClassNameReg = FALSE; Xstatic int allowDuplicateConstructorReg = FALSE; Xstatic int allowDuplicateCallbackReg = FALSE; X X/* -- Named class pointer cache, intially empty */ X Xint classes_num = 0; Xint classes_max = 0; XClCacheRec *classes_ptr = NULL; X X/* -- Class name cache, intially empty */ X Xint cl_nm_num = 0; Xint cl_nm_max = 0; XClNameCacheRec* cl_nm_ptr = NULL; X X/* -- Named object constructor cache, intially empty */ X Xint constrs_num = 0; Xint constrs_max = 0; XConCacheRec *constrs_ptr = NULL; X X/* -- Named callback procedures cache, intially empty */ X Xint callbacks_num = 0; Xint callbacks_max = 0; XCBCacheRec *callbacks_ptr = NULL; X X/* X******************************************************************************* X* Private_function_declarations. X******************************************************************************* X*/ X X/* X******************************************************************************* X* Public_function_declarations. X******************************************************************************* X*/ X X/* X -- Allow or Disallow Duplicate Registrations X******************************************************************************* X By default, the Widget Creation Library does not allow a X string-to-callback, string-to-class, etc bindings to be re-defined. X Some applications, most noticably user interface builders, need to be X able to change these bindings in order to provide additional X flexibility. Therefore the following functions are provided. The X typical user interface builder will make this single call: X X WcAllowDuplicateRegistration( TRUE ); X X which allows class pointers, class names, constructors, and callbacks X to be changed during execution. X*/ X Xvoid WcAllowDuplicateRegistration( allowed ) X int allowed; X{ X allowDuplicateClassPtrReg = allowed; X allowDuplicateClassNameReg = allowed; X allowDuplicateConstructorReg = allowed; X allowDuplicateCallbackReg = allowed; X} Xvoid WcAllowDuplicateClassPtrReg( allowed ) X int allowed; X{ X allowDuplicateClassPtrReg = allowed; X} Xvoid WcAllowDuplicateClassNameReg( allowed ) X int allowed; X{ X allowDuplicateClassNameReg = allowed; X} Xvoid WcAllowDuplicateConstructorReg( allowed ) X int allowed; X{ X allowDuplicateConstructorReg = allowed; X} Xvoid WcAllowDuplicateCallbackReg( allowed ) X int allowed; X{ X allowDuplicateCallbackReg = allowed; X} X X/* X -- Register Class Pointer Name X******************************************************************************* X This procedure adds class pointer name to our list of registered X classes. Note that the class ptr name is effectively case insensitive X as it is being quarkified. However, one should register the class ptr X names using the "standard" capitalization (whatever is in the reference X manual for the widget set) as the name as registered is used for error X messages. X X The registry is primarily used by CvtStringToClassPtr(). X*/ X Xvoid WcRegisterClassPtr ( app, name, class ) X XtAppContext app; /* not used (yet), must be present */ X char* name; /* class ptr name, case insensitive */ X WidgetClass class; /* Xt object class pointer */ X{ X char *lowerCaseName; X XrmQuark quark; X ClCacheRec *rec; X int i; X X /* Might need to grow cache. Note that growth increment is exponential: X ** if lots of classes, don't need to keep realloc'ing so often. X */ X if (classes_num >= classes_max ) X { X classes_max += (classes_max ? classes_max : INCR_REGISTRY); X classes_ptr = (ClCacheRec*) XtRealloc((char*)classes_ptr, X sizeof(ClCacheRec) * classes_max); X } X X /* See if this object has been registered. Compare quarks. X */ X lowerCaseName = WcLowerCaseCopy( name ); X quark = XrmStringToQuark ( lowerCaseName ); X XtFree ( lowerCaseName ); X X for (i = 0 ; i < classes_num ; i++ ) X { X if (classes_ptr[i].quark == quark) X { X /* already registered this class */ X if ( allowDuplicateClassPtrReg ) X { X rec = &classes_ptr[i]; /* overwrite this ClCacheRec */ X goto found_rec; X } X sprintf(msg, X "WcRegisterClassPtr (%s) - Failed \n\ X Problem: Duplicate class registration ignored.", X name ); X XtWarning( msg ); X return; X } X } X X rec = &classes_ptr[classes_num++]; /* New ClCacheRec to be filled */ X Xfound_rec: X rec->quark = quark; X rec->class = class; X rec->name = XtMalloc( strlen(name) + 1 ); X strcpy ( rec->name, name ); X} X X/* X -- Register Class Name X******************************************************************************* X This procedure adds a class name to our list of registered X classes. Note that the class name is effectively case insensitive X as it is being quarkified. However, one should register the class X names using the "standard" capitalization (whatever is in the reference X manual for the widget set) as the name as registered is used for error X messages. X X The registry is primarily used by CvtStringToClassName(). X*/ X Xvoid WcRegisterClassName ( app, name, class ) X XtAppContext app; /* not used (yet), must be present */ X char* name; /* class name, case insensitive */ X WidgetClass class; /* Xt object class pointer */ X{ X char *lowerCaseName; X XrmQuark quark; X ClNameCacheRec *rec; X int i; X X /* Might need to grow cache. Note that growth increment is exponential: X ** if lots of classes, don't need to keep realloc'ing so often. X */ X if (cl_nm_num >= cl_nm_max ) X { X cl_nm_max += (cl_nm_max ? cl_nm_max : INCR_REGISTRY); X cl_nm_ptr = (ClNameCacheRec*) XtRealloc((char*)cl_nm_ptr, X sizeof(ClNameCacheRec) * cl_nm_max); X } X X /* See if this object has been registered. Compare quarks. X */ X lowerCaseName = WcLowerCaseCopy( name ); X quark = XrmStringToQuark ( lowerCaseName ); X XtFree ( lowerCaseName ); X X for (i = 0 ; i < cl_nm_num ; i++ ) X { X if (cl_nm_ptr[i].quark == quark) X { X /* already registered this class */ X if ( allowDuplicateClassNameReg ) X { X rec = &cl_nm_ptr[i]; /* overwrite this ClNameCacheRec */ X goto found_rec; X } X sprintf(msg, X "WcRegisterClassName (%s) - Failed \n\ X Problem: Duplicate class registration ignored.", X name ); X XtWarning( msg ); X return; X } X } X X rec = &cl_nm_ptr[cl_nm_num++]; /* New ClNameCacheRec to be filled */ X Xfound_rec: X rec->quark = quark; X rec->class = class; X rec->name = XtMalloc( strlen(name) + 1 ); X strcpy ( rec->name, name ); X} X X/* X -- Register constructor X******************************************************************************* X This procedure adds constructor procedure/name to our list of registered X constructors. Note that the name is effectively case insensitive X as it is being quarkified. However, one should register the X names using the "standard" capitalization (whatever is in the reference X manual for the widget set) as the name as registered is used for error X messages. X X Note the constructor is a "Motif Style" widget creation routine, X commonly called a "confusion function." X X The registry is primarily used by CvtStringToConstructor(). X*/ X Xvoid WcRegisterConstructor ( app, name, constructor ) X XtAppContext app; /* not used (yet), must be present */ X char* name; /* constructor name, case insensitive */ X Widget (*constructor) (); /* pointer to a widget creation routine */ X{ X char *lowerCaseName; X XrmQuark quark; X ConCacheRec *rec; X int i; X X /* Might need to grow cache. Note that growth increment is exponential: X ** if lots of constructors, don't need to keep realloc'ing so often. X */ X if (constrs_num >= constrs_max ) X { X constrs_max += (constrs_max ? constrs_max : INCR_REGISTRY); X constrs_ptr = (ConCacheRec*) XtRealloc((char*)constrs_ptr, X sizeof(ConCacheRec) * constrs_max); X } X X /* See if this object has been registered. Compare quarks. X */ X lowerCaseName = WcLowerCaseCopy( name ); X quark = XrmStringToQuark ( lowerCaseName ); X XtFree ( lowerCaseName ); X X for (i = 0 ; i < constrs_num ; i++ ) X { X if (constrs_ptr[i].quark == quark) X { X /* already registered this class */ X if ( allowDuplicateConstructorReg ) X { X rec = &constrs_ptr[i]; /* overwrite this ConCacheRec */ X goto found_rec; X } X sprintf(msg, X "WcRegisterConstructor (%s) - Failed \n\ X Problem: Duplicate constructor registration ignored.", X name ); X XtWarning( msg ); X return; X } X } X X rec = &constrs_ptr[constrs_num++]; /* New ClCacheRec to be filled */ X Xfound_rec: X rec->quark = quark; X rec->constructor = constructor; X rec->name = XtMalloc( strlen(name) + 1 ); X strcpy ( rec->name, name ); X} X X/* X -- Register Callbacks X******************************************************************************* X Register callback functions which can then be bound to widget X callback lists by the string-to-callback converter X CvtStringToCallback(). X*/ X Xvoid WcRegisterCallback ( app, name, callback, closure ) X XtAppContext app; /* not used (yet), must be present */ X String name; /* callback name, case insensitive */ X XtCallbackProc callback; /* callback function pointer */ X caddr_t closure; /* default client data */ X{ X char *lowerCaseName; X XrmQuark quark; X CBCacheRec *rec; X int i; X X /* Might need to grow cache. Note that growth increment is exponential: X ** if lots of constructors, don't need to keep realloc'ing so often. X */ X if (callbacks_num >= callbacks_max ) X { X callbacks_max += (callbacks_max ? callbacks_max : INCR_REGISTRY); X callbacks_ptr = (CBCacheRec*) XtRealloc((char*)callbacks_ptr, X sizeof(CBCacheRec) * callbacks_max); X } X X /* See if this callback has been registered. Compare quarks. X */ X lowerCaseName = WcLowerCaseCopy( name ); X quark = XrmStringToQuark ( lowerCaseName ); X XtFree ( lowerCaseName ); X X for (i = 0 ; i < callbacks_num ; i++ ) X { X if (callbacks_ptr[i].quark == quark) X { X /* already registered this callback */ X if ( allowDuplicateCallbackReg ) X { X rec = &callbacks_ptr[i]; /* overwrite this CBCacheRec */ X goto found_rec; X } X sprintf(msg, X "WcRegisterCallback (%s) - Failed \n\ X Problem: Duplicate callback registration ignored.", X name ); X XtWarning( msg ); X return; X } X } X X rec = &callbacks_ptr[callbacks_num++]; /* New ClCacheRec to be filled */ X Xfound_rec: X rec->quark = quark; X rec->callback = callback; X rec->closure = closure; X rec->name = XtMalloc( strlen(name) + 1 ); X strcpy ( rec->name, name ); X} X X/* X -- Register Actions X******************************************************************************* X A simple wrapper around XtAppAddActions(). X Register action procs which can then be bound to widget X actions using standard Xt mechanisms. X*/ X Xvoid WcRegisterAction(app, name, proc) X XtAppContext app; X String name; X XtActionProc proc; X{ X static XtActionsRec action_rec[] = { X { (String)NULL, (XtActionProc)NULL } X }; X X action_rec[0].string = name; X action_rec[0].proc = proc; X XtAppAddActions(app, action_rec, 1); X} !STUFFY!FUNK! echo Extracting test_mri sed >test_mri <<'!STUFFY!FUNK!' -e 's/X//' X#!/bin/csh Xalias se setenv XENVIRONMENT Xalias sa setenv XAPPLRESDIR X Xcd Mri Xif (-e Mri) then X echo ============= Testing Mri ============= X foreach example (M[0-9][0-9]_*) X se $example X Mri X end Xendif Xcd .. !STUFFY!FUNK! echo " " echo "End of kit 26 (of 35)" cat /dev/null >kit26isdone run='' config='' for iskit in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35; do if test -f kit${iskit}isdone; then run="$run $iskit" else todo="$todo $iskit" fi done case $todo in '') echo "You have run all your kits. Please read README." for combo in `find . -name '*:AA' -print`; do if test -f "$combo"; then realfile=`echo $combo | sed 's/:AA$//'` cat $realfile:[A-Z][A-Z] >$realfile rm -rf $realfile:[A-Z][A-Z] fi done rm -rf kit*isdone chmod ugo+x test* ;; *) echo "You have run$run." echo "You still need to run$todo." ;; esac : Someone might mail this, so... exit -- dan ---------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com Opinions expressed reflect those of the author only.