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
next_string(const char * strings,unsigned * offset)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 *
_nc_build_names(struct user_table_entry ** actual,const user_table_data * source,const char * strings)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
_nc_get_userdefs_table(void)1167 NCURSES_EXPORT(const struct user_table_entry *) _nc_get_userdefs_table (void)
1168 {
1169 return build_names(user) ;
1170 }
1171
1172 static HashValue
info_hash(const char * string)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
compare_info_names(const char * a,const char * b)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
_nc_get_hash_user(void)1197 NCURSES_EXPORT(const HashData *) _nc_get_hash_user (void)
1198 {
1199 return hash_data;
1200 }
1201
1202 #if NO_LEAKS
_nc_comp_userdefs_leaks(void)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);
_nc_comp_userdefs(void)1213 NCURSES_EXPORT(void) _nc_comp_userdefs(void) { }
1214 #endif /* NCURSES_XNAMES */
1215