mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Convert Commands to use the union pointer_long_t too.

As with MuttVars, Commands was using an unsigned long to hold pointers
as well as enums. Convert to use the same union type of MuttVars.

Adjust command functions data parameter type to the union. Since
these are used outside init.c, relocate the union definition to
mutt.h.

Although the number of functions affected was long, most of them did
not need much adjustment. Many of them made no use of the parameter.
Those that did were easily cast into an added "data" variable at the
top.

+201 -192
+2 -1
buffy.c
··· 253 253 FREE (mailbox); /* __FREE_CHECKED__ */ 254 254 } 255 255 256 - int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *err) 256 + int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, union pointer_long_t udata, BUFFER *err) 257 257 { 258 258 BUFFY **tmp,*tmp1; 259 259 struct stat sb; 260 260 char f1[PATH_MAX]; 261 261 char *p; 262 + long data = udata.l; 262 263 263 264 while (MoreArgs (s)) 264 265 {
+8 -10
color.c
··· 403 403 */ 404 404 405 405 static int 406 - _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err, 407 - short parse_uncolor); 406 + _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, BUFFER *err, short parse_uncolor); 408 407 409 408 410 409 #ifdef HAVE_COLOR 411 410 412 - int mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data, 411 + int mutt_parse_uncolor (BUFFER *buf, BUFFER *s, union pointer_long_t udata, 413 412 BUFFER *err) 414 413 { 415 - return _mutt_parse_uncolor(buf, s, data, err, 1); 414 + return _mutt_parse_uncolor(buf, s, err, 1); 416 415 } 417 416 418 417 #endif 419 418 420 - int mutt_parse_unmono (BUFFER *buf, BUFFER *s, unsigned long data, 419 + int mutt_parse_unmono (BUFFER *buf, BUFFER *s, union pointer_long_t udata, 421 420 BUFFER *err) 422 421 { 423 - return _mutt_parse_uncolor(buf, s, data, err, 0); 422 + return _mutt_parse_uncolor(buf, s, err, 0); 424 423 } 425 424 426 - static int _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data, 427 - BUFFER *err, short parse_uncolor) 425 + static int _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, BUFFER *err, short parse_uncolor) 428 426 { 429 427 int object = 0, is_index = 0, do_cache = 0; 430 428 COLOR_LINE *tmp, *last = NULL; ··· 878 876 879 877 #ifdef HAVE_COLOR 880 878 881 - int mutt_parse_color(BUFFER *buff, BUFFER *s, unsigned long data, BUFFER *err) 879 + int mutt_parse_color(BUFFER *buff, BUFFER *s, union pointer_long_t udata, BUFFER *err) 882 880 { 883 881 int dry_run = 0; 884 882 ··· 890 888 891 889 #endif 892 890 893 - int mutt_parse_mono(BUFFER *buff, BUFFER *s, unsigned long data, BUFFER *err) 891 + int mutt_parse_mono(BUFFER *buff, BUFFER *s, union pointer_long_t udata, BUFFER *err) 894 892 { 895 893 int dry_run = 0; 896 894
+5 -3
hook.c
··· 48 48 49 49 static int current_hook_type = 0; 50 50 51 - int mutt_parse_hook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 51 + int mutt_parse_hook (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 52 52 { 53 53 HOOK *ptr; 54 54 BUFFER command, pattern; ··· 56 56 regex_t *rx = NULL; 57 57 pattern_t *pat = NULL; 58 58 char path[_POSIX_PATH_MAX]; 59 + long data = udata.l; 59 60 60 61 mutt_buffer_init (&pattern); 61 62 mutt_buffer_init (&command); ··· 289 290 hash_destroy (&IdxFmtHooks, delete_idxfmt_hooklist); 290 291 } 291 292 292 - int mutt_parse_idxfmt_hook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 293 + int mutt_parse_idxfmt_hook (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 293 294 { 294 295 HOOK *hooks, *ptr; 295 296 BUFFER *name, *pattern, *fmtstring; 296 297 int rc = -1, not = 0; 297 298 pattern_t *pat = NULL; 299 + long data = udata.l; 298 300 299 301 name = mutt_buffer_pool_get (); 300 302 pattern = mutt_buffer_pool_get (); ··· 387 389 return rc; 388 390 } 389 391 390 - int mutt_parse_unhook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 392 + int mutt_parse_unhook (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 391 393 { 392 394 while (MoreArgs (s)) 393 395 {
+56 -47
init.c
··· 651 651 return t; 652 652 } 653 653 654 - static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 654 + static int parse_unignore (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 655 655 { 656 656 do 657 657 { ··· 668 668 return 0; 669 669 } 670 670 671 - static int parse_ignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 671 + static int parse_ignore (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 672 672 { 673 673 do 674 674 { ··· 681 681 return 0; 682 682 } 683 683 684 - static int parse_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 684 + static int parse_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 685 685 { 686 + LIST **data = udata.p; 686 687 do 687 688 { 688 689 mutt_extract_token (buf, s, 0); 689 - add_to_list ((LIST **) data, buf->data); 690 + add_to_list (data, buf->data); 690 691 } 691 692 while (MoreArgs (s)); 692 693 693 694 return 0; 694 695 } 695 696 696 - static int parse_echo (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 697 + static int parse_echo (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 697 698 { 698 699 if (!MoreArgs (s)) 699 700 { ··· 719 720 } 720 721 } 721 722 722 - static int parse_alternates (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 723 + static int parse_alternates (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 723 724 { 724 725 group_context_t *gc = NULL; 725 726 ··· 729 730 { 730 731 mutt_extract_token (buf, s, 0); 731 732 732 - if (parse_group_context (&gc, buf, s, data, err) == -1) 733 + if (parse_group_context (&gc, buf, s, err) == -1) 733 734 goto bail; 734 735 735 736 mutt_remove_from_rx_list (&UnAlternates, buf->data); ··· 750 751 return -1; 751 752 } 752 753 753 - static int parse_unalternates (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 754 + static int parse_unalternates (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 754 755 { 755 756 _alternates_clean(); 756 757 do ··· 768 769 return 0; 769 770 } 770 771 771 - static int parse_replace_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 772 + static int parse_replace_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 772 773 { 773 - REPLACE_LIST **list = (REPLACE_LIST **)data; 774 + REPLACE_LIST **list = (REPLACE_LIST **)udata.p; 774 775 BUFFER templ; 775 776 776 777 memset(&templ, 0, sizeof(templ)); ··· 801 802 return 0; 802 803 } 803 804 804 - static int parse_unreplace_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 805 + static int parse_unreplace_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 805 806 { 806 - REPLACE_LIST **list = (REPLACE_LIST **)data; 807 + REPLACE_LIST **list = (REPLACE_LIST **)udata.p; 807 808 808 809 /* First token is a regexp. */ 809 810 if (!MoreArgs(s)) ··· 837 838 } 838 839 839 840 840 - static int parse_subjectrx_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 841 + static int parse_subjectrx_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 841 842 { 842 843 int rc; 843 844 844 - rc = parse_replace_list(buf, s, data, err); 845 + rc = parse_replace_list(buf, s, udata, err); 845 846 if (rc == 0) 846 847 clear_subject_mods(); 847 848 return rc; 848 849 } 849 850 850 851 851 - static int parse_unsubjectrx_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 852 + static int parse_unsubjectrx_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 852 853 { 853 854 int rc; 854 855 855 - rc = parse_unreplace_list(buf, s, data, err); 856 + rc = parse_unreplace_list(buf, s, udata, err); 856 857 if (rc == 0) 857 858 clear_subject_mods(); 858 859 return rc; 859 860 } 860 861 861 862 862 - static int parse_spam_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 863 + static int parse_spam_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 863 864 { 864 865 BUFFER templ; 866 + long data = udata.l; 865 867 866 868 mutt_buffer_init (&templ); 867 869 ··· 934 936 } 935 937 936 938 937 - static int parse_unlist (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 939 + static int parse_unlist (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 938 940 { 941 + LIST **data = udata.p; 939 942 do 940 943 { 941 944 mutt_extract_token (buf, s, 0); ··· 944 947 */ 945 948 if (mutt_strcmp (buf->data, "*") == 0) 946 949 { 947 - mutt_free_list ((LIST **) data); 950 + mutt_free_list (data); 948 951 break; 949 952 } 950 - remove_from_list ((LIST **) data, buf->data); 953 + remove_from_list (data, buf->data); 951 954 } 952 955 while (MoreArgs (s)); 953 956 ··· 960 963 * is disabled. 961 964 */ 962 965 #ifdef USE_SIDEBAR 963 - static int parse_path_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 966 + static int parse_path_list (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 964 967 { 965 968 char path[_POSIX_PATH_MAX]; 969 + LIST **data = udata.p; 966 970 967 971 do 968 972 { 969 973 mutt_extract_token (buf, s, 0); 970 974 strfcpy (path, buf->data, sizeof (path)); 971 975 mutt_expand_path (path, sizeof (path)); 972 - add_to_list ((LIST **) data, path); 976 + add_to_list (data, path); 973 977 } 974 978 while (MoreArgs (s)); 975 979 976 980 return 0; 977 981 } 978 982 979 - static int parse_path_unlist (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 983 + static int parse_path_unlist (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 980 984 { 981 985 char path[_POSIX_PATH_MAX]; 986 + LIST **data = udata.p; 982 987 983 988 do 984 989 { ··· 988 993 */ 989 994 if (mutt_strcmp (buf->data, "*") == 0) 990 995 { 991 - mutt_free_list ((LIST **) data); 996 + mutt_free_list (data); 992 997 break; 993 998 } 994 999 strfcpy (path, buf->data, sizeof (path)); 995 1000 mutt_expand_path (path, sizeof (path)); 996 - remove_from_list ((LIST **) data, path); 1001 + remove_from_list (data, path); 997 1002 } 998 1003 while (MoreArgs (s)); 999 1004 ··· 1001 1006 } 1002 1007 #endif /* USE_SIDEBAR */ 1003 1008 1004 - static int parse_lists (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1009 + static int parse_lists (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1005 1010 { 1006 1011 group_context_t *gc = NULL; 1007 1012 ··· 1009 1014 { 1010 1015 mutt_extract_token (buf, s, 0); 1011 1016 1012 - if (parse_group_context (&gc, buf, s, data, err) == -1) 1017 + if (parse_group_context (&gc, buf, s, err) == -1) 1013 1018 goto bail; 1014 1019 1015 1020 mutt_remove_from_rx_list (&UnMailLists, buf->data); ··· 1034 1039 NONE, RX, ADDR 1035 1040 } group_state_t; 1036 1041 1037 - static int parse_group (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1042 + static int parse_group (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1038 1043 { 1039 1044 group_context_t *gc = NULL; 1040 1045 group_state_t state = NONE; 1041 1046 ADDRESS *addr = NULL; 1042 1047 char *estr = NULL; 1048 + long data = udata.l; 1043 1049 1044 1050 do 1045 1051 { 1046 1052 mutt_extract_token (buf, s, 0); 1047 - if (parse_group_context (&gc, buf, s, data, err) == -1) 1053 + if (parse_group_context (&gc, buf, s, err) == -1) 1048 1054 goto bail; 1049 1055 1050 1056 if (data == MUTT_UNGROUP && !mutt_strcasecmp (buf->data, "*")) ··· 1082 1088 if (mutt_addrlist_to_intl (addr, &estr)) 1083 1089 { 1084 1090 snprintf (err->data, err->dsize, _("%sgroup: warning: bad IDN '%s'.\n"), 1085 - data == 1 ? "un" : "", estr); 1091 + data == MUTT_UNGROUP ? "un" : "", estr); 1086 1092 FREE (&estr); 1087 1093 rfc822_free_address (&addr); 1088 1094 goto bail; ··· 1292 1298 } 1293 1299 1294 1300 1295 - static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1301 + static int parse_attachments (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1296 1302 { 1297 1303 char op, *category; 1298 1304 LIST **listp; ··· 1348 1354 return parse_attach_list(buf, s, listp, err); 1349 1355 } 1350 1356 1351 - static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1357 + static int parse_unattachments (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1352 1358 { 1353 1359 char op, *p; 1354 1360 LIST **listp; ··· 1390 1396 return parse_unattach_list(buf, s, listp, err); 1391 1397 } 1392 1398 1393 - static int parse_unlists (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1399 + static int parse_unlists (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1394 1400 { 1395 1401 hash_destroy (&AutoSubscribeCache, NULL); 1396 1402 do ··· 1408 1414 return 0; 1409 1415 } 1410 1416 1411 - static int parse_subscribe (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1417 + static int parse_subscribe (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1412 1418 { 1413 1419 group_context_t *gc = NULL; 1414 1420 ··· 1416 1422 { 1417 1423 mutt_extract_token (buf, s, 0); 1418 1424 1419 - if (parse_group_context (&gc, buf, s, data, err) == -1) 1425 + if (parse_group_context (&gc, buf, s, err) == -1) 1420 1426 goto bail; 1421 1427 1422 1428 mutt_remove_from_rx_list (&UnMailLists, buf->data); ··· 1439 1445 return -1; 1440 1446 } 1441 1447 1442 - static int parse_unsubscribe (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1448 + static int parse_unsubscribe (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1443 1449 { 1444 1450 hash_destroy (&AutoSubscribeCache, NULL); 1445 1451 do ··· 1456 1462 return 0; 1457 1463 } 1458 1464 1459 - static int parse_unalias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1465 + static int parse_unalias (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1460 1466 { 1461 1467 ALIAS *tmp, *last = NULL; 1462 1468 ··· 1503 1509 return 0; 1504 1510 } 1505 1511 1506 - static int parse_alias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1512 + static int parse_alias (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1507 1513 { 1508 1514 ALIAS *tmp = Aliases; 1509 1515 ALIAS *last = NULL; ··· 1518 1524 1519 1525 mutt_extract_token (buf, s, 0); 1520 1526 1521 - if (parse_group_context (&gc, buf, s, data, err) == -1) 1527 + if (parse_group_context (&gc, buf, s, err) == -1) 1522 1528 return -1; 1523 1529 1524 1530 /* check to see if an alias with this name already exists */ ··· 1594 1600 } 1595 1601 1596 1602 static int 1597 - parse_unmy_hdr (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1603 + parse_unmy_hdr (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1598 1604 { 1599 1605 LIST *last = NULL; 1600 1606 LIST *tmp = UserHeader; ··· 1640 1646 return 0; 1641 1647 } 1642 1648 1643 - static int parse_my_hdr (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1649 + static int parse_my_hdr (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1644 1650 { 1645 1651 LIST *tmp; 1646 1652 size_t keylen; ··· 1982 1988 } 1983 1989 } 1984 1990 1985 - static int parse_setenv(BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) 1991 + static int parse_setenv(BUFFER *tmp, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1986 1992 { 1987 1993 int query, unset, len; 1988 1994 char *name, **save, **envp = envlist; 1989 1995 int count = 0; 1996 + long data = udata.l; 1990 1997 1991 1998 query = 0; 1992 1999 unset = data & MUTT_SET_UNSET; ··· 2080 2087 return 0; 2081 2088 } 2082 2089 2083 - static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) 2090 + static int parse_set (BUFFER *tmp, BUFFER *s, union pointer_long_t udata, BUFFER *err) 2084 2091 { 2085 2092 int query, unset, inv, reset, r = 0; 2086 2093 int idx = -1; 2087 2094 const char *p; 2088 2095 char scratch[_POSIX_PATH_MAX]; 2089 2096 char* myvar; 2097 + long data = udata.l; 2090 2098 2091 2099 while (MoreArgs (s)) 2092 2100 { ··· 2755 2763 2756 2764 #undef MAXERRS 2757 2765 2758 - static int parse_source (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) 2766 + static int parse_source (BUFFER *tmp, BUFFER *s, union pointer_long_t udata, BUFFER *err) 2759 2767 { 2760 2768 char path[_POSIX_PATH_MAX]; 2761 2769 ··· 3547 3555 if ((p = getenv ("REPLYTO")) != NULL) 3548 3556 { 3549 3557 BUFFER buf, token; 3558 + union pointer_long_t udata = {.l=0}; 3550 3559 3551 3560 snprintf (buffer, sizeof (buffer), "Reply-To: %s", p); 3552 3561 ··· 3555 3564 buf.dsize = mutt_strlen (buffer); 3556 3565 3557 3566 mutt_buffer_init (&token); 3558 - parse_my_hdr (&token, &buf, 0, &err); 3567 + parse_my_hdr (&token, &buf, udata, &err); 3559 3568 FREE (&token.data); 3560 3569 } 3561 3570 ··· 3692 3701 for (c = Commands ; c->name ; c++) 3693 3702 if ((c->func == mutt_parse_hook || c->func == mutt_parse_idxfmt_hook) && 3694 3703 ascii_strcasecmp (c->name, name) == 0) 3695 - return c->data; 3704 + return c->data.l; 3696 3705 return 0; 3697 3706 } 3698 3707 3699 - static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 3708 + static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFFER *s, BUFFER *err) 3700 3709 { 3701 3710 while (!mutt_strcasecmp (buf->data, "-group")) 3702 3711 {
+103 -111
init.h
··· 72 72 #define R_BOTH (R_INDEX | R_PAGER) 73 73 #define R_RESORT_BOTH (R_RESORT | R_RESORT_SUB) 74 74 75 - union pointer_long_t 76 - { 77 - void *p; 78 - long l; 79 - }; 80 - 81 75 struct option_t 82 76 { 83 77 char *option; ··· 86 80 union pointer_long_t data; 87 81 union pointer_long_t init; /* initial value */ 88 82 }; 89 - 90 - #define UL (unsigned long) 91 83 #endif /* _MAKEDOC */ 92 84 93 85 #ifndef ISPELL ··· 4328 4320 4329 4321 /* functions used to parse commands in a rc file */ 4330 4322 4331 - static int parse_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4332 - static int parse_spam_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4333 - static int parse_unlist (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4323 + static int parse_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4324 + static int parse_spam_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4325 + static int parse_unlist (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4334 4326 #ifdef USE_SIDEBAR 4335 - static int parse_path_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4336 - static int parse_path_unlist (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4327 + static int parse_path_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4328 + static int parse_path_unlist (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4337 4329 #endif /* USE_SIDEBAR */ 4338 4330 4339 - static int parse_group (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4331 + static int parse_group (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4340 4332 4341 - static int parse_lists (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4342 - static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4343 - static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4344 - static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4345 - static int parse_echo (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4346 - static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4347 - static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4348 - static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4349 - static int parse_set (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4350 - static int parse_setenv (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4351 - static int parse_my_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4352 - static int parse_unmy_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4353 - static int parse_subscribe (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4354 - static int parse_unsubscribe (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4355 - static int parse_attachments (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4356 - static int parse_unattachments (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4333 + static int parse_lists (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4334 + static int parse_unlists (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4335 + static int parse_alias (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4336 + static int parse_unalias (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4337 + static int parse_echo (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4338 + static int parse_ignore (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4339 + static int parse_unignore (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4340 + static int parse_source (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4341 + static int parse_set (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4342 + static int parse_setenv (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4343 + static int parse_my_hdr (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4344 + static int parse_unmy_hdr (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4345 + static int parse_subscribe (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4346 + static int parse_unsubscribe (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4347 + static int parse_attachments (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4348 + static int parse_unattachments (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4357 4349 4358 4350 4359 - static int parse_replace_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4360 - static int parse_unreplace_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4361 - static int parse_subjectrx_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4362 - static int parse_unsubjectrx_list (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4363 - static int parse_alternates (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4364 - static int parse_unalternates (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4351 + static int parse_replace_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4352 + static int parse_unreplace_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4353 + static int parse_subjectrx_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4354 + static int parse_unsubjectrx_list (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4355 + static int parse_alternates (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4356 + static int parse_unalternates (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4365 4357 4366 4358 /* Parse -group arguments */ 4367 - static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err); 4359 + static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFFER *s, BUFFER *err); 4368 4360 4369 4361 4370 4362 struct command_t 4371 4363 { 4372 4364 char *name; 4373 - int (*func) (BUFFER *, BUFFER *, unsigned long, BUFFER *); 4374 - unsigned long data; 4365 + int (*func) (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 4366 + union pointer_long_t data; 4375 4367 }; 4376 4368 4377 4369 const struct command_t Commands[] = { 4378 - { "alternates", parse_alternates, 0 }, 4379 - { "unalternates", parse_unalternates, 0 }, 4370 + { "alternates", parse_alternates, {.l=0} }, 4371 + { "unalternates", parse_unalternates, {.l=0} }, 4380 4372 #ifdef USE_SOCKET 4381 - { "account-hook", mutt_parse_hook, MUTT_ACCOUNTHOOK }, 4373 + { "account-hook", mutt_parse_hook, {.l=MUTT_ACCOUNTHOOK} }, 4382 4374 #endif 4383 - { "alias", parse_alias, 0 }, 4384 - { "attachments", parse_attachments, 0 }, 4385 - { "unattachments",parse_unattachments,0 }, 4386 - { "auto_view", parse_list, UL &AutoViewList }, 4387 - { "alternative_order", parse_list, UL &AlternativeOrderList}, 4388 - { "bind", mutt_parse_bind, 0 }, 4389 - { "charset-hook", mutt_parse_hook, MUTT_CHARSETHOOK }, 4375 + { "alias", parse_alias, {.l=0} }, 4376 + { "attachments", parse_attachments, {.l=0} }, 4377 + { "unattachments", parse_unattachments, {.l=0} }, 4378 + { "auto_view", parse_list, {.p=&AutoViewList} }, 4379 + { "alternative_order", parse_list, {.p=&AlternativeOrderList} }, 4380 + { "bind", mutt_parse_bind, {.l=0} }, 4381 + { "charset-hook", mutt_parse_hook, {.l=MUTT_CHARSETHOOK} }, 4390 4382 #ifdef HAVE_COLOR 4391 - { "color", mutt_parse_color, 0 }, 4392 - { "uncolor", mutt_parse_uncolor, 0 }, 4383 + { "color", mutt_parse_color, {.l=0} }, 4384 + { "uncolor", mutt_parse_uncolor, {.l=0} }, 4393 4385 #endif 4394 - { "echo", parse_echo, 0 }, 4395 - { "exec", mutt_parse_exec, 0 }, 4396 - { "fcc-hook", mutt_parse_hook, MUTT_FCCHOOK }, 4397 - { "fcc-save-hook", mutt_parse_hook, MUTT_FCCHOOK | MUTT_SAVEHOOK }, 4398 - { "folder-hook", mutt_parse_hook, MUTT_FOLDERHOOK }, 4386 + { "echo", parse_echo, {.l=0} }, 4387 + { "exec", mutt_parse_exec, {.l=0} }, 4388 + { "fcc-hook", mutt_parse_hook, {.l=MUTT_FCCHOOK} }, 4389 + { "fcc-save-hook", mutt_parse_hook, {.l=MUTT_FCCHOOK | MUTT_SAVEHOOK} }, 4390 + { "folder-hook", mutt_parse_hook, {.l=MUTT_FOLDERHOOK} }, 4399 4391 #ifdef USE_COMPRESSED 4400 - { "open-hook", mutt_parse_hook, MUTT_OPENHOOK }, 4401 - { "close-hook", mutt_parse_hook, MUTT_CLOSEHOOK }, 4402 - { "append-hook", mutt_parse_hook, MUTT_APPENDHOOK }, 4392 + { "open-hook", mutt_parse_hook, {.l=MUTT_OPENHOOK} }, 4393 + { "close-hook", mutt_parse_hook, {.l=MUTT_CLOSEHOOK} }, 4394 + { "append-hook", mutt_parse_hook, {.l=MUTT_APPENDHOOK} }, 4403 4395 #endif 4404 - { "group", parse_group, MUTT_GROUP }, 4405 - { "ungroup", parse_group, MUTT_UNGROUP }, 4406 - { "hdr_order", parse_list, UL &HeaderOrderList }, 4396 + { "group", parse_group, {.l=MUTT_GROUP} }, 4397 + { "ungroup", parse_group, {.l=MUTT_UNGROUP} }, 4398 + { "hdr_order", parse_list, {.p=&HeaderOrderList} }, 4407 4399 #ifdef HAVE_ICONV 4408 - { "iconv-hook", mutt_parse_hook, MUTT_ICONVHOOK }, 4400 + { "iconv-hook", mutt_parse_hook, {.l=MUTT_ICONVHOOK} }, 4409 4401 #endif 4410 - { "ignore", parse_ignore, 0 }, 4411 - { "index-format-hook",mutt_parse_idxfmt_hook, MUTT_IDXFMTHOOK }, 4412 - { "lists", parse_lists, 0 }, 4413 - { "macro", mutt_parse_macro, 0 }, 4414 - { "mailboxes", mutt_parse_mailboxes, MUTT_MAILBOXES }, 4415 - { "unmailboxes", mutt_parse_mailboxes, MUTT_UNMAILBOXES }, 4416 - { "mailto_allow", parse_list, UL &MailtoAllow }, 4417 - { "unmailto_allow", parse_unlist, UL &MailtoAllow }, 4418 - { "message-hook", mutt_parse_hook, MUTT_MESSAGEHOOK }, 4419 - { "mbox-hook", mutt_parse_hook, MUTT_MBOXHOOK }, 4420 - { "mime_lookup", parse_list, UL &MimeLookupList }, 4421 - { "unmime_lookup", parse_unlist, UL &MimeLookupList }, 4422 - { "mono", mutt_parse_mono, 0 }, 4423 - { "my_hdr", parse_my_hdr, 0 }, 4424 - { "pgp-hook", mutt_parse_hook, MUTT_CRYPTHOOK }, 4425 - { "crypt-hook", mutt_parse_hook, MUTT_CRYPTHOOK }, 4426 - { "push", mutt_parse_push, 0 }, 4427 - { "reply-hook", mutt_parse_hook, MUTT_REPLYHOOK }, 4428 - { "reset", parse_set, MUTT_SET_RESET }, 4429 - { "save-hook", mutt_parse_hook, MUTT_SAVEHOOK }, 4430 - { "score", mutt_parse_score, 0 }, 4431 - { "send-hook", mutt_parse_hook, MUTT_SENDHOOK }, 4432 - { "send2-hook", mutt_parse_hook, MUTT_SEND2HOOK }, 4433 - { "set", parse_set, 0 }, 4434 - { "setenv", parse_setenv, 0 }, 4402 + { "ignore", parse_ignore, {.l=0} }, 4403 + { "index-format-hook",mutt_parse_idxfmt_hook, {.l=MUTT_IDXFMTHOOK} }, 4404 + { "lists", parse_lists, {.l=0} }, 4405 + { "macro", mutt_parse_macro, {.l=0} }, 4406 + { "mailboxes", mutt_parse_mailboxes, {.l=MUTT_MAILBOXES} }, 4407 + { "unmailboxes", mutt_parse_mailboxes, {.l=MUTT_UNMAILBOXES} }, 4408 + { "mailto_allow", parse_list, {.p=&MailtoAllow} }, 4409 + { "unmailto_allow", parse_unlist, {.p=&MailtoAllow} }, 4410 + { "message-hook", mutt_parse_hook, {.l=MUTT_MESSAGEHOOK} }, 4411 + { "mbox-hook", mutt_parse_hook, {.l=MUTT_MBOXHOOK} }, 4412 + { "mime_lookup", parse_list, {.p=&MimeLookupList} }, 4413 + { "unmime_lookup", parse_unlist, {.p=&MimeLookupList} }, 4414 + { "mono", mutt_parse_mono, {.l=0} }, 4415 + { "my_hdr", parse_my_hdr, {.l=0} }, 4416 + { "pgp-hook", mutt_parse_hook, {.l=MUTT_CRYPTHOOK} }, 4417 + { "crypt-hook", mutt_parse_hook, {.l=MUTT_CRYPTHOOK} }, 4418 + { "push", mutt_parse_push, {.l=0} }, 4419 + { "reply-hook", mutt_parse_hook, {.l=MUTT_REPLYHOOK} }, 4420 + { "reset", parse_set, {.l=MUTT_SET_RESET} }, 4421 + { "save-hook", mutt_parse_hook, {.l=MUTT_SAVEHOOK} }, 4422 + { "score", mutt_parse_score, {.l=0} }, 4423 + { "send-hook", mutt_parse_hook, {.l=MUTT_SENDHOOK} }, 4424 + { "send2-hook", mutt_parse_hook, {.l=MUTT_SEND2HOOK} }, 4425 + { "set", parse_set, {.l=0} }, 4426 + { "setenv", parse_setenv, {.l=0} }, 4435 4427 #ifdef USE_SIDEBAR 4436 - { "sidebar_whitelist",parse_path_list, UL &SidebarWhitelist }, 4437 - { "unsidebar_whitelist",parse_path_unlist, UL &SidebarWhitelist }, 4428 + { "sidebar_whitelist",parse_path_list, {.p=&SidebarWhitelist} }, 4429 + { "unsidebar_whitelist",parse_path_unlist, {.p=&SidebarWhitelist} }, 4438 4430 #endif 4439 - { "source", parse_source, 0 }, 4440 - { "spam", parse_spam_list, MUTT_SPAM }, 4441 - { "nospam", parse_spam_list, MUTT_NOSPAM }, 4442 - { "subscribe", parse_subscribe, 0 }, 4443 - { "subjectrx", parse_subjectrx_list, UL &SubjectRxList }, 4444 - { "unsubjectrx", parse_unsubjectrx_list, UL &SubjectRxList }, 4445 - { "toggle", parse_set, MUTT_SET_INV }, 4446 - { "unalias", parse_unalias, 0 }, 4447 - { "unalternative_order",parse_unlist, UL &AlternativeOrderList }, 4448 - { "unauto_view", parse_unlist, UL &AutoViewList }, 4449 - { "unhdr_order", parse_unlist, UL &HeaderOrderList }, 4450 - { "unhook", mutt_parse_unhook, 0 }, 4451 - { "unignore", parse_unignore, 0 }, 4452 - { "unlists", parse_unlists, 0 }, 4453 - { "unmono", mutt_parse_unmono, 0 }, 4454 - { "unmy_hdr", parse_unmy_hdr, 0 }, 4455 - { "unscore", mutt_parse_unscore, 0 }, 4456 - { "unset", parse_set, MUTT_SET_UNSET }, 4457 - { "unsetenv", parse_setenv, MUTT_SET_UNSET }, 4458 - { "unsubscribe", parse_unsubscribe, 0 }, 4459 - { NULL, NULL, 0 } 4431 + { "source", parse_source, {.l=0} }, 4432 + { "spam", parse_spam_list, {.l=MUTT_SPAM} }, 4433 + { "nospam", parse_spam_list, {.l=MUTT_NOSPAM} }, 4434 + { "subscribe", parse_subscribe, {.l=0} }, 4435 + { "subjectrx", parse_subjectrx_list, {.p=&SubjectRxList} }, 4436 + { "unsubjectrx", parse_unsubjectrx_list, {.p=&SubjectRxList} }, 4437 + { "toggle", parse_set, {.l=MUTT_SET_INV} }, 4438 + { "unalias", parse_unalias, {.l=0} }, 4439 + { "unalternative_order",parse_unlist, {.p=&AlternativeOrderList} }, 4440 + { "unauto_view", parse_unlist, {.p=&AutoViewList} }, 4441 + { "unhdr_order", parse_unlist, {.p=&HeaderOrderList} }, 4442 + { "unhook", mutt_parse_unhook, {.l=0} }, 4443 + { "unignore", parse_unignore, {.l=0} }, 4444 + { "unlists", parse_unlists, {.l=0} }, 4445 + { "unmono", mutt_parse_unmono, {.l=0} }, 4446 + { "unmy_hdr", parse_unmy_hdr, {.l=0} }, 4447 + { "unscore", mutt_parse_unscore, {.l=0} }, 4448 + { "unset", parse_set, {.l=MUTT_SET_UNSET} }, 4449 + { "unsetenv", parse_setenv, {.l=MUTT_SET_UNSET} }, 4450 + { "unsubscribe", parse_unsubscribe, {.l=0} }, 4451 + { NULL, NULL, {.l=0} } 4460 4452 };
+4 -4
keymap.c
··· 897 897 return; 898 898 } 899 899 900 - int mutt_parse_push (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 900 + int mutt_parse_push (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 901 901 { 902 902 int r = 0; 903 903 ··· 1022 1022 } 1023 1023 1024 1024 /* bind menu-name '<key_sequence>' function-name */ 1025 - int mutt_parse_bind (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1025 + int mutt_parse_bind (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1026 1026 { 1027 1027 const struct binding_t *bindings = NULL; 1028 1028 char *key; ··· 1070 1070 } 1071 1071 1072 1072 /* macro <menu> <key> <macro> <description> */ 1073 - int mutt_parse_macro (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1073 + int mutt_parse_macro (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1074 1074 { 1075 1075 int menu[sizeof(Menus)/sizeof(struct mapping_t)-1], r = -1, nummenus, i; 1076 1076 char *seq = NULL; ··· 1121 1121 } 1122 1122 1123 1123 /* exec function-name */ 1124 - int mutt_parse_exec (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 1124 + int mutt_parse_exec (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 1125 1125 { 1126 1126 int ops[128]; 1127 1127 int nops = 0;
+7
mutt.h
··· 289 289 MUTT_SAVE_OVERWRITE 290 290 }; 291 291 292 + /* used by init.h MuttVars and Commands dispatch functions */ 292 293 /* possible arguments to set_quadoption() */ 294 + union pointer_long_t 295 + { 296 + void *p; 297 + long l; 298 + }; 299 + 293 300 enum 294 301 { 295 302 MUTT_NO,
+14 -14
protos.h
··· 354 354 int mutt_multi_choice (char *prompt, char *letters); 355 355 int mutt_needs_mailcap (BODY *); 356 356 int mutt_num_postponed (int); 357 - int mutt_parse_bind (BUFFER *, BUFFER *, unsigned long, BUFFER *); 358 - int mutt_parse_exec (BUFFER *, BUFFER *, unsigned long, BUFFER *); 359 - int mutt_parse_color (BUFFER *, BUFFER *, unsigned long, BUFFER *); 360 - int mutt_parse_uncolor (BUFFER *, BUFFER *, unsigned long, BUFFER *); 361 - int mutt_parse_hook (BUFFER *, BUFFER *, unsigned long, BUFFER *); 362 - int mutt_parse_idxfmt_hook (BUFFER *, BUFFER *, unsigned long, BUFFER *); 363 - int mutt_parse_macro (BUFFER *, BUFFER *, unsigned long, BUFFER *); 364 - int mutt_parse_mailboxes (BUFFER *, BUFFER *, unsigned long, BUFFER *); 365 - int mutt_parse_mono (BUFFER *, BUFFER *, unsigned long, BUFFER *); 366 - int mutt_parse_unmono (BUFFER *, BUFFER *, unsigned long, BUFFER *); 367 - int mutt_parse_push (BUFFER *, BUFFER *, unsigned long, BUFFER *); 357 + int mutt_parse_bind (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 358 + int mutt_parse_exec (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 359 + int mutt_parse_color (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 360 + int mutt_parse_uncolor (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 361 + int mutt_parse_hook (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 362 + int mutt_parse_idxfmt_hook (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 363 + int mutt_parse_macro (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 364 + int mutt_parse_mailboxes (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 365 + int mutt_parse_mono (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 366 + int mutt_parse_unmono (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 367 + int mutt_parse_push (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 368 368 int mutt_parse_rc_line (/* const */ char *, BUFFER *, BUFFER *); 369 369 int mutt_parse_rfc822_line (ENVELOPE *e, HEADER *hdr, char *line, char *p, 370 370 short user_hdrs, short weed, short do_2047, LIST **lastp); 371 - int mutt_parse_score (BUFFER *, BUFFER *, unsigned long, BUFFER *); 372 - int mutt_parse_unscore (BUFFER *, BUFFER *, unsigned long, BUFFER *); 373 - int mutt_parse_unhook (BUFFER *, BUFFER *, unsigned long, BUFFER *); 371 + int mutt_parse_score (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 372 + int mutt_parse_unscore (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 373 + int mutt_parse_unhook (BUFFER *, BUFFER *, union pointer_long_t, BUFFER *); 374 374 int mutt_pattern_func (int, char *); 375 375 int mutt_pipe_attachment (FILE *, BODY *, const char *, char *); 376 376 int mutt_print_attachment (FILE *, BODY *);
+2 -2
score.c
··· 64 64 unset_option (OPTNEEDRESCORE); 65 65 } 66 66 67 - int mutt_parse_score (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 67 + int mutt_parse_score (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 68 68 { 69 69 SCORE *ptr, *last; 70 70 char *pattern, *pc; ··· 158 158 _mutt_set_flag (ctx, hdr, MUTT_FLAG, 1, upd_ctx); 159 159 } 160 160 161 - int mutt_parse_unscore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) 161 + int mutt_parse_unscore (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER *err) 162 162 { 163 163 SCORE *tmp, *last = NULL; 164 164