1 /* 2 * generated by ./tinfo/MKuserdefs.sh 3 */ 4 5 /* 6 * comp_userdefs.c -- The names of widely used user-defined capabilities 7 * indexed via a hash table for the compiler. 8 * 9 */ 10 11 #include <curses.priv.h> 12 #include <tic.h> 13 #include <hashsize.h> 14 15 #if NCURSES_XNAMES 16 /* 10 collisions out of 90 entries */ 17 static const char user_names_text[] = \ 18 "E3\0" "RGB\0" "TS\0" "U8\0" "XM\0" "grbom\0" "gsbom\0" "xm\0" "AN\0" \ 19 "AX\0" "C0\0" "C8\0" "CE\0" "CS\0" "E0\0" "G0\0" "KJ\0" "OL\0" "S0\0" \ 20 "TF\0" "WS\0" "XC\0" "XT\0" "Z0\0" "Z1\0" "Cr\0" "Cs\0" "Csr\0" "Ms\0" \ 21 "Se\0" "Smulx\0" "Ss\0" "rmxx\0" "smxx\0" "kDC3\0" "kDC4\0" "kDC5\0" \ 22 "kDC6\0" "kDC7\0" "kDN\0" "kDN3\0" "kDN4\0" "kDN5\0" "kDN6\0" "kDN7\0" \ 23 "kEND3\0" "kEND4\0" "kEND5\0" "kEND6\0" "kEND7\0" "kHOM3\0" "kHOM4\0" \ 24 "kHOM5\0" "kHOM6\0" "kHOM7\0" "kIC3\0" "kIC4\0" "kIC5\0" "kIC6\0" \ 25 "kIC7\0" "kLFT3\0" "kLFT4\0" "kLFT5\0" "kLFT6\0" "kLFT7\0" "kNXT3\0" \ 26 "kNXT4\0" "kNXT5\0" "kNXT6\0" "kNXT7\0" "kPRV3\0" "kPRV4\0" "kPRV5\0" \ 27 "kPRV6\0" "kPRV7\0" "kRIT3\0" "kRIT4\0" "kRIT5\0" "kRIT6\0" "kRIT7\0" \ 28 "kUP\0" "kUP3\0" "kUP4\0" "kUP5\0" "kUP6\0" "kUP7\0" "ka2\0" "kb1\0" \ 29 "kb3\0" "kc2\0" ; 30 31 static user_table_data const user_names_data[] = 32 { 33 { 0, (1<<STRING), 0,0, 0, -1 }, 34 { 3, (1<<BOOLEAN|1<<NUMBER|1<<STRING), 0,0, 1, -1 }, 35 { 7, (1<<STRING), 0,0, 2, -1 }, 36 { 10, (1<<NUMBER), 0,0, 1, -1 }, 37 { 13, (1<<STRING), 1,0, 3, -1 }, 38 { 16, (1<<STRING), 0,0, 4, -1 }, 39 { 22, (1<<STRING), 0,0, 5, -1 }, 40 { 28, (1<<STRING), 8,8, 14, -1 }, 41 { 31, (1<<BOOLEAN), 0,0, 1, -1 }, 42 { 34, (1<<BOOLEAN), 0,0, 2, -1 }, 43 { 37, (1<<STRING), 0,0, 15, -1 }, 44 { 40, (1<<BOOLEAN), 0,0, 3, -1 }, 45 { 43, (1<<STRING), 0,0, 16, -1 }, 46 { 46, (1<<STRING), 0,0, 17, -1 }, 47 { 49, (1<<STRING), 0,0, 18, -1 }, 48 { 52, (1<<BOOLEAN), 0,0, 4, -1 }, 49 { 55, (1<<STRING), 1,1, 19, -1 }, 50 { 58, (1<<NUMBER), 0,0, 2, -1 }, 51 { 61, (1<<STRING), 1,1, 20, -1 }, 52 { 64, (1<<BOOLEAN), 0,0, 5, -1 }, 53 { 67, (1<<STRING), 2,0, 21, -1 }, 54 { 70, (1<<STRING), 1,1, 22, -1 }, 55 { 73, (1<<BOOLEAN), 0,0, 6, -1 }, 56 { 76, (1<<STRING), 0,0, 23, -1 }, 57 { 79, (1<<STRING), 0,0, 24, -1 }, 58 { 82, (1<<STRING), 0,0, 25, -1 }, 59 { 85, (1<<STRING), 1,1, 26, -1 }, 60 { 88, (1<<STRING), 1,0, 27, -1 }, 61 { 92, (1<<STRING), 2,3, 28, -1 }, 62 { 95, (1<<STRING), 0,0, 29, -1 }, 63 { 98, (1<<STRING), 1,0, 30, -1 }, 64 { 104, (1<<STRING), 1,0, 31, -1 }, 65 { 107, (1<<STRING), 0,0, 32, -1 }, 66 { 112, (1<<STRING), 0,0, 33, -1 }, 67 { 117, (1<<STRING), 0,0, 34, -1 }, 68 { 122, (1<<STRING), 0,0, 35, -1 }, 69 { 127, (1<<STRING), 0,0, 36, -1 }, 70 { 132, (1<<STRING), 0,0, 37, -1 }, 71 { 137, (1<<STRING), 0,0, 38, 8 }, 72 { 142, (1<<STRING), 0,0, 39, -1 }, 73 { 146, (1<<STRING), 0,0, 40, -1 }, 74 { 151, (1<<STRING), 0,0, 41, -1 }, 75 { 156, (1<<STRING), 0,0, 42, -1 }, 76 { 161, (1<<STRING), 0,0, 43, 9 }, 77 { 166, (1<<STRING), 0,0, 44, -1 }, 78 { 171, (1<<STRING), 0,0, 45, -1 }, 79 { 177, (1<<STRING), 0,0, 46, -1 }, 80 { 183, (1<<STRING), 0,0, 47, -1 }, 81 { 189, (1<<STRING), 0,0, 48, -1 }, 82 { 195, (1<<STRING), 0,0, 49, -1 }, 83 { 201, (1<<STRING), 0,0, 50, -1 }, 84 { 207, (1<<STRING), 0,0, 51, -1 }, 85 { 213, (1<<STRING), 0,0, 52, -1 }, 86 { 219, (1<<STRING), 0,0, 53, -1 }, 87 { 225, (1<<STRING), 0,0, 54, -1 }, 88 { 231, (1<<STRING), 0,0, 55, -1 }, 89 { 236, (1<<STRING), 0,0, 56, -1 }, 90 { 241, (1<<STRING), 0,0, 57, -1 }, 91 { 246, (1<<STRING), 0,0, 58, -1 }, 92 { 251, (1<<STRING), 0,0, 59, -1 }, 93 { 256, (1<<STRING), 0,0, 60, 52 }, 94 { 262, (1<<STRING), 0,0, 61, 53 }, 95 { 268, (1<<STRING), 0,0, 62, 54 }, 96 { 274, (1<<STRING), 0,0, 63, -1 }, 97 { 280, (1<<STRING), 0,0, 64, -1 }, 98 { 286, (1<<STRING), 0,0, 65, -1 }, 99 { 292, (1<<STRING), 0,0, 66, -1 }, 100 { 298, (1<<STRING), 0,0, 67, -1 }, 101 { 304, (1<<STRING), 0,0, 68, -1 }, 102 { 310, (1<<STRING), 0,0, 69, -1 }, 103 { 316, (1<<STRING), 0,0, 70, -1 }, 104 { 322, (1<<STRING), 0,0, 71, -1 }, 105 { 328, (1<<STRING), 0,0, 72, 65 }, 106 { 334, (1<<STRING), 0,0, 73, 66 }, 107 { 340, (1<<STRING), 0,0, 74, 67 }, 108 { 346, (1<<STRING), 0,0, 75, -1 }, 109 { 352, (1<<STRING), 0,0, 76, -1 }, 110 { 358, (1<<STRING), 0,0, 77, -1 }, 111 { 364, (1<<STRING), 0,0, 78, -1 }, 112 { 370, (1<<STRING), 0,0, 79, -1 }, 113 { 376, (1<<STRING), 0,0, 80, -1 }, 114 { 380, (1<<STRING), 0,0, 81, -1 }, 115 { 385, (1<<STRING), 0,0, 82, -1 }, 116 { 390, (1<<STRING), 0,0, 83, -1 }, 117 { 395, (1<<STRING), 0,0, 84, -1 }, 118 { 400, (1<<STRING), 0,0, 85, -1 }, 119 { 405, (1<<STRING), 0,0, 86, -1 }, 120 { 409, (1<<STRING), 0,0, 87, 86 }, 121 { 413, (1<<STRING), 0,0, 88, -1 }, 122 { 417, (1<<STRING), 0,0, 89, 88 } 123 }; 124 125 static struct user_table_entry *_nc_user_table = 0; 126 127 static const HashValue _nc_user_hash_table[995] = 128 { 129 -1, 130 -1, 131 -1, 132 -1, 133 -1, 134 -1, 135 -1, 136 -1, 137 57, 138 -1, 139 -1, 140 -1, 141 -1, 142 -1, 143 -1, 144 -1, 145 -1, 146 -1, 147 -1, 148 61, 149 -1, 150 -1, 151 -1, 152 -1, 153 -1, 154 -1, 155 -1, 156 -1, 157 -1, 158 -1, 159 -1, 160 -1, 161 -1, 162 -1, 163 -1, 164 -1, 165 -1, 166 -1, 167 -1, 168 -1, 169 -1, 170 -1, 171 40, 172 -1, 173 -1, 174 -1, 175 -1, 176 -1, 177 -1, 178 -1, 179 -1, 180 -1, 181 -1, 182 -1, 183 -1, 184 -1, 185 6, 186 -1, 187 -1, 188 -1, 189 -1, 190 -1, 191 -1, 192 -1, 193 -1, 194 -1, 195 -1, 196 -1, 197 -1, 198 -1, 199 -1, 200 -1, 201 -1, 202 -1, 203 -1, 204 -1, 205 44, 206 -1, 207 -1, 208 -1, 209 -1, 210 -1, 211 -1, 212 -1, 213 -1, 214 -1, 215 -1, 216 75, 217 -1, 218 -1, 219 -1, 220 -1, 221 -1, 222 -1, 223 -1, 224 -1, 225 -1, 226 -1, 227 -1, 228 -1, 229 -1, 230 -1, 231 -1, 232 -1, 233 -1, 234 -1, 235 -1, 236 -1, 237 -1, 238 -1, 239 -1, 240 -1, 241 -1, 242 -1, 243 87, 244 -1, 245 -1, 246 -1, 247 -1, 248 -1, 249 -1, 250 79, 251 -1, 252 -1, 253 -1, 254 -1, 255 -1, 256 -1, 257 -1, 258 -1, 259 -1, 260 -1, 261 -1, 262 -1, 263 -1, 264 -1, 265 -1, 266 -1, 267 -1, 268 -1, 269 46, 270 -1, 271 -1, 272 -1, 273 -1, 274 -1, 275 -1, 276 -1, 277 -1, 278 -1, 279 -1, 280 -1, 281 -1, 282 -1, 283 -1, 284 -1, 285 -1, 286 -1, 287 -1, 288 -1, 289 -1, 290 -1, 291 -1, 292 -1, 293 -1, 294 -1, 295 -1, 296 -1, 297 -1, 298 -1, 299 -1, 300 -1, 301 -1, 302 -1, 303 -1, 304 -1, 305 -1, 306 -1, 307 -1, 308 -1, 309 -1, 310 -1, 311 19, 312 -1, 313 -1, 314 -1, 315 -1, 316 -1, 317 -1, 318 73, 319 -1, 320 -1, 321 -1, 322 -1, 323 -1, 324 -1, 325 29, 326 34, 327 -1, 328 -1, 329 -1, 330 -1, 331 -1, 332 -1, 333 -1, 334 -1, 335 -1, 336 16, 337 -1, 338 -1, 339 -1, 340 -1, 341 82, 342 -1, 343 -1, 344 -1, 345 -1, 346 -1, 347 -1, 348 -1, 349 -1, 350 -1, 351 -1, 352 -1, 353 -1, 354 -1, 355 -1, 356 -1, 357 -1, 358 -1, 359 -1, 360 38, 361 -1, 362 -1, 363 -1, 364 -1, 365 -1, 366 -1, 367 -1, 368 -1, 369 -1, 370 -1, 371 50, 372 -1, 373 -1, 374 -1, 375 -1, 376 -1, 377 -1, 378 -1, 379 -1, 380 -1, 381 -1, 382 -1, 383 0, 384 -1, 385 -1, 386 -1, 387 -1, 388 -1, 389 -1, 390 -1, 391 -1, 392 -1, 393 -1, 394 58, 395 -1, 396 -1, 397 -1, 398 -1, 399 -1, 400 -1, 401 -1, 402 -1, 403 27, 404 -1, 405 62, 406 -1, 407 -1, 408 -1, 409 -1, 410 -1, 411 -1, 412 -1, 413 -1, 414 -1, 415 -1, 416 -1, 417 -1, 418 -1, 419 -1, 420 -1, 421 -1, 422 -1, 423 -1, 424 -1, 425 -1, 426 -1, 427 -1, 428 41, 429 -1, 430 7, 431 -1, 432 -1, 433 -1, 434 -1, 435 -1, 436 -1, 437 -1, 438 -1, 439 -1, 440 -1, 441 -1, 442 -1, 443 -1, 444 -1, 445 -1, 446 -1, 447 -1, 448 -1, 449 -1, 450 -1, 451 -1, 452 -1, 453 -1, 454 -1, 455 -1, 456 -1, 457 -1, 458 -1, 459 -1, 460 -1, 461 -1, 462 -1, 463 -1, 464 -1, 465 -1, 466 -1, 467 -1, 468 -1, 469 -1, 470 -1, 471 -1, 472 -1, 473 76, 474 -1, 475 -1, 476 32, 477 33, 478 -1, 479 -1, 480 -1, 481 -1, 482 -1, 483 -1, 484 -1, 485 -1, 486 -1, 487 -1, 488 -1, 489 -1, 490 -1, 491 -1, 492 -1, 493 -1, 494 -1, 495 -1, 496 -1, 497 -1, 498 -1, 499 -1, 500 -1, 501 -1, 502 -1, 503 -1, 504 -1, 505 -1, 506 -1, 507 -1, 508 -1, 509 -1, 510 -1, 511 -1, 512 -1, 513 -1, 514 -1, 515 -1, 516 -1, 517 -1, 518 -1, 519 -1, 520 -1, 521 -1, 522 -1, 523 -1, 524 -1, 525 -1, 526 47, 527 -1, 528 -1, 529 -1, 530 -1, 531 -1, 532 -1, 533 -1, 534 -1, 535 -1, 536 -1, 537 -1, 538 21, 539 -1, 540 -1, 541 70, 542 -1, 543 -1, 544 -1, 545 -1, 546 -1, 547 -1, 548 -1, 549 -1, 550 -1, 551 -1, 552 -1, 553 -1, 554 -1, 555 -1, 556 -1, 557 -1, 558 -1, 559 -1, 560 -1, 561 -1, 562 -1, 563 -1, 564 -1, 565 -1, 566 -1, 567 -1, 568 -1, 569 -1, 570 -1, 571 -1, 572 -1, 573 -1, 574 -1, 575 74, 576 -1, 577 -1, 578 -1, 579 -1, 580 -1, 581 -1, 582 -1, 583 35, 584 -1, 585 -1, 586 -1, 587 -1, 588 -1, 589 -1, 590 -1, 591 -1, 592 30, 593 -1, 594 -1, 595 -1, 596 -1, 597 -1, 598 83, 599 -1, 600 -1, 601 -1, 602 -1, 603 -1, 604 10, 605 -1, 606 14, 607 -1, 608 15, 609 -1, 610 -1, 611 -1, 612 -1, 613 -1, 614 -1, 615 -1, 616 -1, 617 55, 618 -1, 619 -1, 620 18, 621 -1, 622 -1, 623 -1, 624 -1, 625 -1, 626 -1, 627 23, 628 51, 629 -1, 630 1, 631 -1, 632 -1, 633 -1, 634 -1, 635 -1, 636 -1, 637 -1, 638 -1, 639 -1, 640 -1, 641 -1, 642 -1, 643 -1, 644 -1, 645 -1, 646 -1, 647 -1, 648 -1, 649 -1, 650 -1, 651 59, 652 -1, 653 13, 654 -1, 655 -1, 656 -1, 657 -1, 658 -1, 659 -1, 660 -1, 661 -1, 662 63, 663 -1, 664 -1, 665 -1, 666 -1, 667 -1, 668 25, 669 -1, 670 2, 671 -1, 672 11, 673 20, 674 -1, 675 -1, 676 -1, 677 -1, 678 -1, 679 -1, 680 -1, 681 -1, 682 -1, 683 -1, 684 -1, 685 42, 686 -1, 687 -1, 688 -1, 689 -1, 690 3, 691 -1, 692 -1, 693 -1, 694 -1, 695 -1, 696 -1, 697 -1, 698 -1, 699 -1, 700 -1, 701 -1, 702 -1, 703 -1, 704 -1, 705 -1, 706 -1, 707 -1, 708 -1, 709 -1, 710 -1, 711 -1, 712 -1, 713 -1, 714 -1, 715 -1, 716 -1, 717 -1, 718 -1, 719 -1, 720 -1, 721 -1, 722 -1, 723 -1, 724 -1, 725 -1, 726 -1, 727 -1, 728 -1, 729 -1, 730 77, 731 -1, 732 -1, 733 -1, 734 -1, 735 -1, 736 -1, 737 -1, 738 -1, 739 -1, 740 -1, 741 -1, 742 -1, 743 -1, 744 -1, 745 -1, 746 -1, 747 -1, 748 -1, 749 -1, 750 -1, 751 -1, 752 -1, 753 -1, 754 -1, 755 -1, 756 -1, 757 89, 758 -1, 759 -1, 760 -1, 761 -1, 762 -1, 763 -1, 764 -1, 765 -1, 766 -1, 767 -1, 768 -1, 769 -1, 770 -1, 771 -1, 772 -1, 773 -1, 774 -1, 775 -1, 776 -1, 777 -1, 778 -1, 779 -1, 780 -1, 781 -1, 782 -1, 783 48, 784 -1, 785 -1, 786 -1, 787 -1, 788 -1, 789 -1, 790 -1, 791 -1, 792 -1, 793 -1, 794 -1, 795 -1, 796 -1, 797 -1, 798 71, 799 -1, 800 -1, 801 -1, 802 -1, 803 -1, 804 -1, 805 -1, 806 -1, 807 -1, 808 -1, 809 -1, 810 -1, 811 -1, 812 -1, 813 -1, 814 -1, 815 -1, 816 -1, 817 -1, 818 -1, 819 -1, 820 -1, 821 -1, 822 -1, 823 -1, 824 -1, 825 -1, 826 -1, 827 -1, 828 -1, 829 -1, 830 -1, 831 -1, 832 68, 833 -1, 834 -1, 835 -1, 836 -1, 837 -1, 838 -1, 839 -1, 840 36, 841 -1, 842 -1, 843 -1, 844 -1, 845 -1, 846 -1, 847 -1, 848 -1, 849 -1, 850 -1, 851 -1, 852 -1, 853 -1, 854 17, 855 84, 856 -1, 857 -1, 858 -1, 859 -1, 860 -1, 861 -1, 862 -1, 863 -1, 864 -1, 865 -1, 866 -1, 867 -1, 868 -1, 869 -1, 870 -1, 871 -1, 872 -1, 873 -1, 874 56, 875 -1, 876 -1, 877 -1, 878 -1, 879 -1, 880 -1, 881 -1, 882 -1, 883 -1, 884 24, 885 60, 886 -1, 887 -1, 888 -1, 889 -1, 890 -1, 891 -1, 892 -1, 893 80, 894 -1, 895 -1, 896 -1, 897 -1, 898 -1, 899 -1, 900 -1, 901 -1, 902 -1, 903 -1, 904 -1, 905 -1, 906 -1, 907 -1, 908 -1, 909 -1, 910 -1, 911 -1, 912 -1, 913 -1, 914 -1, 915 -1, 916 -1, 917 -1, 918 -1, 919 64, 920 -1, 921 -1, 922 5, 923 -1, 924 -1, 925 26, 926 -1, 927 -1, 928 -1, 929 -1, 930 -1, 931 22, 932 -1, 933 -1, 934 -1, 935 28, 936 -1, 937 -1, 938 -1, 939 -1, 940 -1, 941 31, 942 43, 943 -1, 944 -1, 945 -1, 946 -1, 947 -1, 948 -1, 949 -1, 950 -1, 951 -1, 952 -1, 953 -1, 954 -1, 955 -1, 956 -1, 957 -1, 958 -1, 959 -1, 960 -1, 961 -1, 962 -1, 963 -1, 964 -1, 965 -1, 966 -1, 967 -1, 968 -1, 969 -1, 970 -1, 971 -1, 972 -1, 973 -1, 974 -1, 975 -1, 976 -1, 977 -1, 978 -1, 979 -1, 980 39, 981 -1, 982 -1, 983 -1, 984 -1, 985 -1, 986 -1, 987 78, 988 -1, 989 -1, 990 -1, 991 -1, 992 -1, 993 -1, 994 -1, 995 -1, 996 -1, 997 -1, 998 -1, 999 -1, 1000 -1, 1001 -1, 1002 -1, 1003 -1, 1004 -1, 1005 -1, 1006 45, 1007 -1, 1008 -1, 1009 -1, 1010 -1, 1011 -1, 1012 -1, 1013 -1, 1014 -1, 1015 -1, 1016 -1, 1017 -1, 1018 -1, 1019 -1, 1020 -1, 1021 -1, 1022 -1, 1023 -1, 1024 -1, 1025 -1, 1026 -1, 1027 -1, 1028 -1, 1029 -1, 1030 -1, 1031 12, 1032 -1, 1033 -1, 1034 -1, 1035 -1, 1036 -1, 1037 -1, 1038 -1, 1039 -1, 1040 49, 1041 -1, 1042 -1, 1043 -1, 1044 -1, 1045 -1, 1046 -1, 1047 -1, 1048 -1, 1049 -1, 1050 -1, 1051 -1, 1052 -1, 1053 -1, 1054 -1, 1055 72, 1056 -1, 1057 -1, 1058 -1, 1059 -1, 1060 -1, 1061 -1, 1062 -1, 1063 -1, 1064 -1, 1065 -1, 1066 -1, 1067 -1, 1068 -1, 1069 -1, 1070 -1, 1071 -1, 1072 -1, 1073 -1, 1074 -1, 1075 -1, 1076 -1, 1077 -1, 1078 81, 1079 -1, 1080 -1, 1081 -1, 1082 -1, 1083 -1, 1084 -1, 1085 -1, 1086 -1, 1087 -1, 1088 -1, 1089 69, 1090 -1, 1091 -1, 1092 -1, 1093 -1, 1094 -1, 1095 -1, 1096 -1, 1097 37, 1098 -1, 1099 -1, 1100 -1, 1101 -1, 1102 -1, 1103 -1, 1104 -1, 1105 -1, 1106 -1, 1107 -1, 1108 -1, 1109 -1, 1110 -1, 1111 -1, 1112 85, 1113 -1, 1114 -1, 1115 -1, 1116 -1, 1117 -1, 1118 -1, 1119 -1, 1120 4, 1121 -1, 1122 -1, 1123 0 /* base-of-table */ 1124 }; 1125 1126 1127 #define USERTABSIZE SIZEOF(user_names_data) 1128 1129 #if 1 1130 static void 1131 next_string(const char *strings, unsigned *offset) 1132 { 1133 *offset += (unsigned) strlen(strings + *offset) + 1; 1134 } 1135 1136 static const struct user_table_entry * 1137 _nc_build_names(struct user_table_entry **actual, 1138 const user_table_data *source, 1139 const char *strings) 1140 { 1141 if (*actual == 0) { 1142 *actual = typeCalloc(struct user_table_entry, USERTABSIZE); 1143 if (*actual != 0) { 1144 unsigned n; 1145 unsigned len = 0; 1146 for (n = 0; n < USERTABSIZE; ++n) { 1147 (*actual)[n].ute_name = strings + len; 1148 (*actual)[n].ute_type = (int) source[n].ute_type; 1149 (*actual)[n].ute_argc = source[n].ute_argc; 1150 (*actual)[n].ute_args = source[n].ute_args; 1151 (*actual)[n].ute_index = source[n].ute_index; 1152 (*actual)[n].ute_link = source[n].ute_link; 1153 next_string(strings, &len); 1154 } 1155 } 1156 } 1157 return *actual; 1158 } 1159 1160 #define build_names(root) _nc_build_names(&_nc_##root##_table, \ 1161 root##_names_data, \ 1162 root##_names_text) 1163 #else 1164 #define build_names(root) _nc_ ## root ## _table 1165 #endif 1166 1167 NCURSES_EXPORT(const struct user_table_entry *) _nc_get_userdefs_table (void) 1168 { 1169 return build_names(user) ; 1170 } 1171 1172 static HashValue 1173 info_hash(const char *string) 1174 { 1175 long sum = 0; 1176 1177 DEBUG(9, ("hashing %s", string)); 1178 while (*string) { 1179 sum += (long) (*string + (*(string + 1) << 8)); 1180 string++; 1181 } 1182 1183 DEBUG(9, ("sum is %ld", sum)); 1184 return (HashValue) (sum % HASHTABSIZE); 1185 } 1186 1187 static int 1188 compare_info_names(const char *a, const char *b) 1189 { 1190 return !strcmp(a, b); 1191 } 1192 1193 static const HashData hash_data[] = { 1194 { HASHTABSIZE, _nc_user_hash_table, info_hash, compare_info_names } 1195 }; 1196 1197 NCURSES_EXPORT(const HashData *) _nc_get_hash_user (void) 1198 { 1199 return hash_data; 1200 } 1201 1202 #if NO_LEAKS 1203 NCURSES_EXPORT(void) _nc_comp_userdefs_leaks(void) 1204 { 1205 #if 1 1206 FreeIfNeeded(_nc_user_table); 1207 #endif 1208 } 1209 #endif /* NO_LEAKS */ 1210 1211 #else /*! NCURSES_XNAMES */ 1212 NCURSES_EXPORT(void) _nc_comp_userdefs(void); 1213 NCURSES_EXPORT(void) _nc_comp_userdefs(void) { } 1214 #endif /* NCURSES_XNAMES */ 1215