1 /* 2 * Copyright (c) 1983, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software 14 * must display the following acknowledgement: 15 * This product includes software developed by the University of 16 * California, Berkeley and its contributors. 17 * 4. Neither the name of the University nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34 #ifndef lint 35 /* 36 static char sccsid[] = "@(#)lpdchar.c 8.1 (Berkeley) 6/6/93"; 37 */ 38 static const char rcsid[] = 39 "$FreeBSD$"; 40 #endif /* not lint */ 41 42 /* 43 * Character set for line printer daemon 44 */ 45 #include "lp.local.h" 46 #include "extern.h" 47 48 #define c_______ 0 49 #define c______1 01 50 #define c_____1_ 02 51 #define c____1__ 04 52 #define c____11_ 06 53 #define c___1___ 010 54 #define c___1__1 011 55 #define c___1_1_ 012 56 #define c___11__ 014 57 #define c__1____ 020 58 #define c__1__1_ 022 59 #define c__1_1__ 024 60 #define c__11___ 030 61 #define c__111__ 034 62 #define c__111_1 035 63 #define c__1111_ 036 64 #define c__11111 037 65 #define c_1_____ 040 66 #define c_1____1 041 67 #define c_1___1_ 042 68 #define c_1__1__ 044 69 #define c_1_1___ 050 70 #define c_1_1__1 051 71 #define c_1_1_1_ 052 72 #define c_11____ 060 73 #define c_11_11_ 066 74 #define c_111___ 070 75 #define c_111__1 071 76 #define c_111_1_ 072 77 #define c_1111__ 074 78 #define c_1111_1 075 79 #define c_11111_ 076 80 #define c_111111 077 81 #define c1______ 0100 82 #define c1_____1 0101 83 #define c1____1_ 0102 84 #define c1____11 0103 85 #define c1___1__ 0104 86 #define c1___1_1 0105 87 #define c1___11_ 0106 88 #define c1__1___ 0110 89 #define c1__1__1 0111 90 #define c1__11_1 0115 91 #define c1__1111 0117 92 #define c1_1____ 0120 93 #define c1_1___1 0121 94 #define c1_1_1_1 0125 95 #define c1_1_11_ 0126 96 #define c1_111__ 0134 97 #define c1_1111_ 0136 98 #define c11____1 0141 99 #define c11___1_ 0142 100 #define c11___11 0143 101 #define c11_1___ 0150 102 #define c11_1__1 0151 103 #define c111_11_ 0166 104 #define c1111___ 0170 105 #define c11111__ 0174 106 #define c111111_ 0176 107 #define c1111111 0177 108 109 char scnkey[][HEIGHT] = /* this is relatively easy to modify */ 110 /* just look: */ 111 { 112 { c_______, 113 c_______, 114 c_______, 115 c_______, 116 c_______, 117 c_______, 118 c_______, 119 c_______, 120 c_______ }, /* */ 121 122 { c__11___, 123 c__11___, 124 c__11___, 125 c__11___, 126 c__11___, 127 c_______, 128 c_______, 129 c__11___, 130 c__11___ }, /* ! */ 131 132 { c_1__1__, 133 c_1__1__, 134 c_______, 135 c_______, 136 c_______, 137 c_______, 138 c_______, 139 c_______, 140 c_______ }, /* " */ 141 142 { c_______, 143 c__1_1__, 144 c__1_1__, 145 c1111111, 146 c__1_1__, 147 c1111111, 148 c__1_1__, 149 c__1_1__, 150 c_______ }, /* # */ 151 152 { c___1___, 153 c_11111_, 154 c1__1__1, 155 c1__1___, 156 c_11111_, 157 c___1__1, 158 c1__1__1, 159 c_11111_, 160 c___1___ }, /* $ */ 161 162 { c_1_____, 163 c1_1___1, 164 c_1___1_, 165 c____1__, 166 c___1___, 167 c__1____, 168 c_1___1_, 169 c1___1_1, 170 c_____1_ }, /* % */ 171 172 { c_11____, 173 c1__1___, 174 c1___1__, 175 c_1_1___, 176 c__1____, 177 c_1_1__1, 178 c1___11_, 179 c1___11_, 180 c_111__1 }, /* & */ 181 182 { c___11__, 183 c___11__, 184 c___1___, 185 c__1____, 186 c_______, 187 c_______, 188 c_______, 189 c_______, 190 c_______ }, /* ' */ 191 192 { c____1__, 193 c___1___, 194 c__1____, 195 c__1____, 196 c__1____, 197 c__1____, 198 c__1____, 199 c___1___, 200 c____1__ }, /* ( */ 201 202 { c__1____, 203 c___1___, 204 c____1__, 205 c____1__, 206 c____1__, 207 c____1__, 208 c____1__, 209 c___1___, 210 c__1____ }, /* ) */ 211 212 { c_______, 213 c___1___, 214 c1__1__1, 215 c_1_1_1_, 216 c__111__, 217 c_1_1_1_, 218 c1__1__1, 219 c___1___, 220 c_______ }, /* * */ 221 222 { c_______, 223 c___1___, 224 c___1___, 225 c___1___, 226 c1111111, 227 c___1___, 228 c___1___, 229 c___1___, 230 c_______ }, /* + */ 231 232 { c_______, 233 c_______, 234 c_______, 235 c_______, 236 c__11___, 237 c__11___, 238 c__1____, 239 c_1_____, 240 c_______ }, /* , */ 241 242 { c_______, 243 c_______, 244 c_______, 245 c_______, 246 c1111111, 247 c_______, 248 c_______, 249 c_______, 250 c_______ }, /* - */ 251 252 { c_______, 253 c_______, 254 c_______, 255 c_______, 256 c_______, 257 c_______, 258 c_______, 259 c__11___, 260 c__11___ }, /* . */ 261 262 { c_______, 263 c______1, 264 c_____1_, 265 c____1__, 266 c___1___, 267 c__1____, 268 c_1_____, 269 c1______, 270 c_______ }, /* / */ 271 272 { c_11111_, 273 c1_____1, 274 c1____11, 275 c1___1_1, 276 c1__1__1, 277 c1_1___1, 278 c11____1, 279 c1_____1, 280 c_11111_ }, /* 0 */ 281 282 { c___1___, 283 c__11___, 284 c_1_1___, 285 c___1___, 286 c___1___, 287 c___1___, 288 c___1___, 289 c___1___, 290 c_11111_ }, /* 1 */ 291 292 { c_11111_, 293 c1_____1, 294 c______1, 295 c_____1_, 296 c__111__, 297 c_1_____, 298 c1______, 299 c1______, 300 c1111111 }, /* 2 */ 301 302 { c_11111_, 303 c1_____1, 304 c______1, 305 c______1, 306 c__1111_, 307 c______1, 308 c______1, 309 c1_____1, 310 c_11111_ }, /* 3 */ 311 312 { c_____1_, 313 c____11_, 314 c___1_1_, 315 c__1__1_, 316 c_1___1_, 317 c1____1_, 318 c1111111, 319 c_____1_, 320 c_____1_ }, /* 4 */ 321 322 { c1111111, 323 c1______, 324 c1______, 325 c11111__, 326 c_____1_, 327 c______1, 328 c______1, 329 c1____1_, 330 c_1111__ }, /* 5 */ 331 332 { c__1111_, 333 c_1_____, 334 c1______, 335 c1______, 336 c1_1111_, 337 c11____1, 338 c1_____1, 339 c1_____1, 340 c_11111_ }, /* 6 */ 341 342 { c1111111, 343 c1_____1, 344 c_____1_, 345 c____1__, 346 c___1___, 347 c__1____, 348 c__1____, 349 c__1____, 350 c__1____ }, /* 7 */ 351 352 { c_11111_, 353 c1_____1, 354 c1_____1, 355 c1_____1, 356 c_11111_, 357 c1_____1, 358 c1_____1, 359 c1_____1, 360 c_11111_ }, /* 8 */ 361 362 { c_11111_, 363 c1_____1, 364 c1_____1, 365 c1_____1, 366 c_111111, 367 c______1, 368 c______1, 369 c1_____1, 370 c_1111__ }, /* 9 */ 371 372 { c_______, 373 c_______, 374 c_______, 375 c__11___, 376 c__11___, 377 c_______, 378 c_______, 379 c__11___, 380 c__11___ }, /* : */ 381 382 383 { c__11___, 384 c__11___, 385 c_______, 386 c_______, 387 c__11___, 388 c__11___, 389 c__1____, 390 c_1_____, 391 c_______ }, /* ; */ 392 393 { c____1__, 394 c___1___, 395 c__1____, 396 c_1_____, 397 c1______, 398 c_1_____, 399 c__1____, 400 c___1___, 401 c____1__ }, /* < */ 402 403 { c_______, 404 c_______, 405 c_______, 406 c1111111, 407 c_______, 408 c1111111, 409 c_______, 410 c_______, 411 c_______ }, /* = */ 412 413 { c__1____, 414 c___1___, 415 c____1__, 416 c_____1_, 417 c______1, 418 c_____1_, 419 c____1__, 420 c___1___, 421 c__1____ }, /* > */ 422 423 { c__1111_, 424 c_1____1, 425 c_1____1, 426 c______1, 427 c____11_, 428 c___1___, 429 c___1___, 430 c_______, 431 c___1___ }, /* ? */ 432 433 { c__1111_, 434 c_1____1, 435 c1__11_1, 436 c1_1_1_1, 437 c1_1_1_1, 438 c1_1111_, 439 c1______, 440 c_1____1, 441 c__1111_ }, /* @ */ 442 443 { c__111__, 444 c_1___1_, 445 c1_____1, 446 c1_____1, 447 c1111111, 448 c1_____1, 449 c1_____1, 450 c1_____1, 451 c1_____1 }, /* A */ 452 453 { c111111_, 454 c_1____1, 455 c_1____1, 456 c_1____1, 457 c_11111_, 458 c_1____1, 459 c_1____1, 460 c_1____1, 461 c111111_ }, /* B */ 462 463 { c__1111_, 464 c_1____1, 465 c1______, 466 c1______, 467 c1______, 468 c1______, 469 c1______, 470 c_1____1, 471 c__1111_ }, /* C */ 472 473 { c11111__, 474 c_1___1_, 475 c_1____1, 476 c_1____1, 477 c_1____1, 478 c_1____1, 479 c_1____1, 480 c_1___1_, 481 c11111__ }, /* D */ 482 483 { c1111111, 484 c1______, 485 c1______, 486 c1______, 487 c111111_, 488 c1______, 489 c1______, 490 c1______, 491 c1111111 }, /* E */ 492 493 { c1111111, 494 c1______, 495 c1______, 496 c1______, 497 c111111_, 498 c1______, 499 c1______, 500 c1______, 501 c1______ }, /* F */ 502 503 { c__1111_, 504 c_1____1, 505 c1______, 506 c1______, 507 c1______, 508 c1__1111, 509 c1_____1, 510 c_1____1, 511 c__1111_ }, /* G */ 512 513 { c1_____1, 514 c1_____1, 515 c1_____1, 516 c1_____1, 517 c1111111, 518 c1_____1, 519 c1_____1, 520 c1_____1, 521 c1_____1 }, /* H */ 522 523 { c_11111_, 524 c___1___, 525 c___1___, 526 c___1___, 527 c___1___, 528 c___1___, 529 c___1___, 530 c___1___, 531 c_11111_ }, /* I */ 532 533 { c__11111, 534 c____1__, 535 c____1__, 536 c____1__, 537 c____1__, 538 c____1__, 539 c____1__, 540 c1___1__, 541 c_111___ }, /* J */ 542 543 { c1_____1, 544 c1____1_, 545 c1___1__, 546 c1__1___, 547 c1_1____, 548 c11_1___, 549 c1___1__, 550 c1____1_, 551 c1_____1 }, /* K */ 552 553 { c1______, 554 c1______, 555 c1______, 556 c1______, 557 c1______, 558 c1______, 559 c1______, 560 c1______, 561 c1111111 }, /* L */ 562 563 { c1_____1, 564 c11___11, 565 c1_1_1_1, 566 c1__1__1, 567 c1_____1, 568 c1_____1, 569 c1_____1, 570 c1_____1, 571 c1_____1 }, /* M */ 572 573 { c1_____1, 574 c11____1, 575 c1_1___1, 576 c1__1__1, 577 c1___1_1, 578 c1____11, 579 c1_____1, 580 c1_____1, 581 c1_____1 }, /* N */ 582 583 { c__111__, 584 c_1___1_, 585 c1_____1, 586 c1_____1, 587 c1_____1, 588 c1_____1, 589 c1_____1, 590 c_1___1_, 591 c__111__ }, /* O */ 592 593 { c111111_, 594 c1_____1, 595 c1_____1, 596 c1_____1, 597 c111111_, 598 c1______, 599 c1______, 600 c1______, 601 c1______ }, /* P */ 602 603 { c__111__, 604 c_1___1_, 605 c1_____1, 606 c1_____1, 607 c1_____1, 608 c1__1__1, 609 c1___1_1, 610 c_1___1_, 611 c__111_1 }, /* Q */ 612 613 { c111111_, 614 c1_____1, 615 c1_____1, 616 c1_____1, 617 c111111_, 618 c1__1___, 619 c1___1__, 620 c1____1_, 621 c1_____1 }, /* R */ 622 623 { c_11111_, 624 c1_____1, 625 c1______, 626 c1______, 627 c_11111_, 628 c______1, 629 c______1, 630 c1_____1, 631 c_11111_ }, /* S */ 632 633 { c1111111, 634 c___1___, 635 c___1___, 636 c___1___, 637 c___1___, 638 c___1___, 639 c___1___, 640 c___1___, 641 c___1___ }, /* T */ 642 643 { c1_____1, 644 c1_____1, 645 c1_____1, 646 c1_____1, 647 c1_____1, 648 c1_____1, 649 c1_____1, 650 c1_____1, 651 c_11111_ }, /* U */ 652 653 { c1_____1, 654 c1_____1, 655 c1_____1, 656 c_1___1_, 657 c_1___1_, 658 c__1_1__, 659 c__1_1__, 660 c___1___, 661 c___1___ }, /* V */ 662 663 { c1_____1, 664 c1_____1, 665 c1_____1, 666 c1_____1, 667 c1__1__1, 668 c1__1__1, 669 c1_1_1_1, 670 c11___11, 671 c1_____1 }, /* W */ 672 673 { c1_____1, 674 c1_____1, 675 c_1___1_, 676 c__1_1__, 677 c___1___, 678 c__1_1__, 679 c_1___1_, 680 c1_____1, 681 c1_____1 }, /* X */ 682 683 { c1_____1, 684 c1_____1, 685 c_1___1_, 686 c__1_1__, 687 c___1___, 688 c___1___, 689 c___1___, 690 c___1___, 691 c___1___ }, /* Y */ 692 693 { c1111111, 694 c______1, 695 c_____1_, 696 c____1__, 697 c___1___, 698 c__1____, 699 c_1_____, 700 c1______, 701 c1111111 }, /* Z */ 702 703 { c_1111__, 704 c_1_____, 705 c_1_____, 706 c_1_____, 707 c_1_____, 708 c_1_____, 709 c_1_____, 710 c_1_____, 711 c_1111__ }, /* [ */ 712 713 { c_______, 714 c1______, 715 c_1_____, 716 c__1____, 717 c___1___, 718 c____1__, 719 c_____1_, 720 c______1, 721 c_______ }, /* \ */ 722 723 { c__1111_, 724 c_____1_, 725 c_____1_, 726 c_____1_, 727 c_____1_, 728 c_____1_, 729 c_____1_, 730 c_____1_, 731 c__1111_ }, /* ] */ 732 733 { c___1___, 734 c__1_1__, 735 c_1___1_, 736 c1_____1, 737 c_______, 738 c_______, 739 c_______, 740 c_______ }, /* ^ */ 741 742 { c_______, 743 c_______, 744 c_______, 745 c_______, 746 c_______, 747 c_______, 748 c_______, 749 c1111111, 750 c_______ }, /* _ */ 751 752 { c__11___, 753 c__11___, 754 c___1___, 755 c____1__, 756 c_______, 757 c_______, 758 c_______, 759 c_______, 760 c_______ }, /* ` */ 761 762 { c_______, 763 c_______, 764 c_______, 765 c_1111__, 766 c_____1_, 767 c_11111_, 768 c1_____1, 769 c1____11, 770 c_1111_1 }, /* a */ 771 772 { c1______, 773 c1______, 774 c1______, 775 c1_111__, 776 c11___1_, 777 c1_____1, 778 c1_____1, 779 c11___1_, 780 c1_111__ }, /* b */ 781 782 { c_______, 783 c_______, 784 c_______, 785 c_1111__, 786 c1____1_, 787 c1______, 788 c1______, 789 c1____1_, 790 c_1111__ }, /* c */ 791 792 { c_____1_, 793 c_____1_, 794 c_____1_, 795 c_111_1_, 796 c1___11_, 797 c1____1_, 798 c1____1_, 799 c1___11_, 800 c_111_1_ }, /* d */ 801 802 { c_______, 803 c_______, 804 c_______, 805 c_1111__, 806 c1____1_, 807 c111111_, 808 c1______, 809 c1____1_, 810 c_1111__ }, /* e */ 811 812 { c___11__, 813 c__1__1_, 814 c__1____, 815 c__1____, 816 c11111__, 817 c__1____, 818 c__1____, 819 c__1____, 820 c__1____ }, /* f */ 821 822 { c_111_1_, 823 c1___11_, 824 c1____1_, 825 c1____1_, 826 c1___11_, 827 c_111_1_, 828 c_____1_, 829 c1____1_, 830 c_1111__ }, /* g */ 831 832 { c1______, 833 c1______, 834 c1______, 835 c1_111__, 836 c11___1_, 837 c1____1_, 838 c1____1_, 839 c1____1_, 840 c1____1_ }, /* h */ 841 842 { c_______, 843 c___1___, 844 c_______, 845 c__11___, 846 c___1___, 847 c___1___, 848 c___1___, 849 c___1___, 850 c__111__ }, /* i */ 851 852 { c____11_, 853 c_____1_, 854 c_____1_, 855 c_____1_, 856 c_____1_, 857 c_____1_, 858 c_____1_, 859 c_1___1_, 860 c__111__ }, /* j */ 861 862 { c1______, 863 c1______, 864 c1______, 865 c1___1__, 866 c1__1___, 867 c1_1____, 868 c11_1___, 869 c1___1__, 870 c1____1_ }, /* k */ 871 872 { c__11___, 873 c___1___, 874 c___1___, 875 c___1___, 876 c___1___, 877 c___1___, 878 c___1___, 879 c___1___, 880 c__111__ }, /* l */ 881 882 { c_______, 883 c_______, 884 c_______, 885 c1_1_11_, 886 c11_1__1, 887 c1__1__1, 888 c1__1__1, 889 c1__1__1, 890 c1__1__1 }, /* m */ 891 892 { c_______, 893 c_______, 894 c_______, 895 c1_111__, 896 c11___1_, 897 c1____1_, 898 c1____1_, 899 c1____1_, 900 c1____1_ }, /* n */ 901 902 { c_______, 903 c_______, 904 c_______, 905 c_1111__, 906 c1____1_, 907 c1____1_, 908 c1____1_, 909 c1____1_, 910 c_1111__ }, /* o */ 911 912 { c1_111__, 913 c11___1_, 914 c1____1_, 915 c1____1_, 916 c11___1_, 917 c1_111__, 918 c1______, 919 c1______, 920 c1______ }, /* p */ 921 922 { c_111_1_, 923 c1___11_, 924 c1____1_, 925 c1____1_, 926 c1___11_, 927 c_111_1_, 928 c_____1_, 929 c_____1_, 930 c_____1_ }, /* q */ 931 932 { c_______, 933 c_______, 934 c_______, 935 c1_111__, 936 c11___1_, 937 c1______, 938 c1______, 939 c1______, 940 c1______ }, /* r */ 941 942 { c_______, 943 c_______, 944 c_______, 945 c_1111__, 946 c1____1_, 947 c_11____, 948 c___11__, 949 c1____1_, 950 c_1111__ }, /* s */ 951 952 { c_______, 953 c__1____, 954 c__1____, 955 c11111__, 956 c__1____, 957 c__1____, 958 c__1____, 959 c__1__1_, 960 c___11__ }, /* t */ 961 962 { c_______, 963 c_______, 964 c_______, 965 c1____1_, 966 c1____1_, 967 c1____1_, 968 c1____1_, 969 c1___11_, 970 c_111_1_ }, /* u */ 971 972 { c_______, 973 c_______, 974 c_______, 975 c1_____1, 976 c1_____1, 977 c1_____1, 978 c_1___1_, 979 c__1_1__, 980 c___1___ }, /* v */ 981 982 { c_______, 983 c_______, 984 c_______, 985 c1_____1, 986 c1__1__1, 987 c1__1__1, 988 c1__1__1, 989 c1__1__1, 990 c_11_11_ }, /* w */ 991 992 { c_______, 993 c_______, 994 c_______, 995 c1____1_, 996 c_1__1__, 997 c__11___, 998 c__11___, 999 c_1__1__, 1000 c1____1_ }, /* x */ 1001 1002 { c1____1_, 1003 c1____1_, 1004 c1____1_, 1005 c1____1_, 1006 c1___11_, 1007 c_111_1_, 1008 c_____1_, 1009 c1____1_, 1010 c_1111__ }, /* y */ 1011 1012 { c_______, 1013 c_______, 1014 c_______, 1015 c111111_, 1016 c____1__, 1017 c___1___, 1018 c__1____, 1019 c_1_____, 1020 c111111_ }, /* z */ 1021 1022 { c___11__, 1023 c__1____, 1024 c__1____, 1025 c__1____, 1026 c_1_____, 1027 c__1____, 1028 c__1____, 1029 c__1____, 1030 c___11__ }, /* } */ 1031 1032 { c___1___, 1033 c___1___, 1034 c___1___, 1035 c___1___, 1036 c___1___, 1037 c___1___, 1038 c___1___, 1039 c___1___, 1040 c___1___ }, /* | */ 1041 1042 { c__11___, 1043 c____1__, 1044 c____1__, 1045 c____1__, 1046 c_____1_, 1047 c____1__, 1048 c____1__, 1049 c____1__, 1050 c__11___ }, /* } */ 1051 1052 { c_11____, 1053 c1__1__1, 1054 c____11_, 1055 c_______, 1056 c_______, 1057 c_______, 1058 c_______, 1059 c_______, 1060 c_______ }, /* ~ */ 1061 1062 { c_1__1__, 1063 c1__1__1, 1064 c__1__1_, 1065 c_1__1__, 1066 c1__1__1, 1067 c__1__1_, 1068 c_1__1__, 1069 c1__1__1, 1070 c__1__1_ } /* rub-out */ 1071 }; 1072