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