diff options
| author | Paul Eggert | 2012-08-01 13:51:44 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-08-01 13:51:44 -0700 |
| commit | 4939150cb43137980c49b318bc70119b9d8ff6f7 (patch) | |
| tree | bcee8eb23f3a6388789bd808a5539dae6e2fc854 /src/coding.c | |
| parent | 947b2afddc9f54a999125aa7e8c9a705ecb51e18 (diff) | |
| download | emacs-4939150cb43137980c49b318bc70119b9d8ff6f7.tar.gz emacs-4939150cb43137980c49b318bc70119b9d8ff6f7.zip | |
Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
This how ASET and AREF are supposed to work, and makes
it easier to think about future improvements. See
<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
* charset.h (set_charset_attr): New function.
All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
* lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
(aref_addr): New function. All uses of &AREF(...) changed.
(set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
(set_hash_index): New functions. All lvalue-style uses of
HASH_KEY etc. changed.
* keyboard.c (set_prop): New function. All lvalue-style uses
of PROP changed.
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/src/coding.c b/src/coding.c index e4ed65079d9..12a7cf93c46 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -2674,8 +2674,8 @@ encode_coding_emacs_mule (struct coding_system *coding) | |||
| 2674 | CODING_GET_INFO (coding, attrs, charset_list); | 2674 | CODING_GET_INFO (coding, attrs, charset_list); |
| 2675 | if (! EQ (charset_list, Vemacs_mule_charset_list)) | 2675 | if (! EQ (charset_list, Vemacs_mule_charset_list)) |
| 2676 | { | 2676 | { |
| 2677 | CODING_ATTR_CHARSET_LIST (attrs) | 2677 | charset_list = Vemacs_mule_charset_list; |
| 2678 | = charset_list = Vemacs_mule_charset_list; | 2678 | ASET (attrs, coding_attr_charset_list, charset_list); |
| 2679 | } | 2679 | } |
| 2680 | 2680 | ||
| 2681 | while (charbuf < charbuf_end) | 2681 | while (charbuf < charbuf_end) |
| @@ -2967,8 +2967,8 @@ setup_iso_safe_charsets (Lisp_Object attrs) | |||
| 2967 | if ((flags & CODING_ISO_FLAG_FULL_SUPPORT) | 2967 | if ((flags & CODING_ISO_FLAG_FULL_SUPPORT) |
| 2968 | && ! EQ (charset_list, Viso_2022_charset_list)) | 2968 | && ! EQ (charset_list, Viso_2022_charset_list)) |
| 2969 | { | 2969 | { |
| 2970 | CODING_ATTR_CHARSET_LIST (attrs) | 2970 | charset_list = Viso_2022_charset_list; |
| 2971 | = charset_list = Viso_2022_charset_list; | 2971 | ASET (attrs, coding_attr_charset_list, charset_list); |
| 2972 | ASET (attrs, coding_attr_safe_charsets, Qnil); | 2972 | ASET (attrs, coding_attr_safe_charsets, Qnil); |
| 2973 | } | 2973 | } |
| 2974 | 2974 | ||
| @@ -9603,16 +9603,16 @@ usage: (define-coding-system-internal ...) */) | |||
| 9603 | 9603 | ||
| 9604 | name = args[coding_arg_name]; | 9604 | name = args[coding_arg_name]; |
| 9605 | CHECK_SYMBOL (name); | 9605 | CHECK_SYMBOL (name); |
| 9606 | CODING_ATTR_BASE_NAME (attrs) = name; | 9606 | ASET (attrs, coding_attr_base_name, name); |
| 9607 | 9607 | ||
| 9608 | val = args[coding_arg_mnemonic]; | 9608 | val = args[coding_arg_mnemonic]; |
| 9609 | if (! STRINGP (val)) | 9609 | if (! STRINGP (val)) |
| 9610 | CHECK_CHARACTER (val); | 9610 | CHECK_CHARACTER (val); |
| 9611 | CODING_ATTR_MNEMONIC (attrs) = val; | 9611 | ASET (attrs, coding_attr_mnemonic, val); |
| 9612 | 9612 | ||
| 9613 | coding_type = args[coding_arg_coding_type]; | 9613 | coding_type = args[coding_arg_coding_type]; |
| 9614 | CHECK_SYMBOL (coding_type); | 9614 | CHECK_SYMBOL (coding_type); |
| 9615 | CODING_ATTR_TYPE (attrs) = coding_type; | 9615 | ASET (attrs, coding_attr_type, coding_type); |
| 9616 | 9616 | ||
| 9617 | charset_list = args[coding_arg_charset_list]; | 9617 | charset_list = args[coding_arg_charset_list]; |
| 9618 | if (SYMBOLP (charset_list)) | 9618 | if (SYMBOLP (charset_list)) |
| @@ -9659,49 +9659,49 @@ usage: (define-coding-system-internal ...) */) | |||
| 9659 | max_charset_id = charset->id; | 9659 | max_charset_id = charset->id; |
| 9660 | } | 9660 | } |
| 9661 | } | 9661 | } |
| 9662 | CODING_ATTR_CHARSET_LIST (attrs) = charset_list; | 9662 | ASET (attrs, coding_attr_charset_list, charset_list); |
| 9663 | 9663 | ||
| 9664 | safe_charsets = make_uninit_string (max_charset_id + 1); | 9664 | safe_charsets = make_uninit_string (max_charset_id + 1); |
| 9665 | memset (SDATA (safe_charsets), 255, max_charset_id + 1); | 9665 | memset (SDATA (safe_charsets), 255, max_charset_id + 1); |
| 9666 | for (tail = charset_list; CONSP (tail); tail = XCDR (tail)) | 9666 | for (tail = charset_list; CONSP (tail); tail = XCDR (tail)) |
| 9667 | SSET (safe_charsets, XFASTINT (XCAR (tail)), 0); | 9667 | SSET (safe_charsets, XFASTINT (XCAR (tail)), 0); |
| 9668 | CODING_ATTR_SAFE_CHARSETS (attrs) = safe_charsets; | 9668 | ASET (attrs, coding_attr_safe_charsets, safe_charsets); |
| 9669 | 9669 | ||
| 9670 | CODING_ATTR_ASCII_COMPAT (attrs) = args[coding_arg_ascii_compatible_p]; | 9670 | ASET (attrs, coding_attr_ascii_compat, args[coding_arg_ascii_compatible_p]); |
| 9671 | 9671 | ||
| 9672 | val = args[coding_arg_decode_translation_table]; | 9672 | val = args[coding_arg_decode_translation_table]; |
| 9673 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) | 9673 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) |
| 9674 | CHECK_SYMBOL (val); | 9674 | CHECK_SYMBOL (val); |
| 9675 | CODING_ATTR_DECODE_TBL (attrs) = val; | 9675 | ASET (attrs, coding_attr_decode_tbl, val); |
| 9676 | 9676 | ||
| 9677 | val = args[coding_arg_encode_translation_table]; | 9677 | val = args[coding_arg_encode_translation_table]; |
| 9678 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) | 9678 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) |
| 9679 | CHECK_SYMBOL (val); | 9679 | CHECK_SYMBOL (val); |
| 9680 | CODING_ATTR_ENCODE_TBL (attrs) = val; | 9680 | ASET (attrs, coding_attr_encode_tbl, val); |
| 9681 | 9681 | ||
| 9682 | val = args[coding_arg_post_read_conversion]; | 9682 | val = args[coding_arg_post_read_conversion]; |
| 9683 | CHECK_SYMBOL (val); | 9683 | CHECK_SYMBOL (val); |
| 9684 | CODING_ATTR_POST_READ (attrs) = val; | 9684 | ASET (attrs, coding_attr_post_read, val); |
| 9685 | 9685 | ||
| 9686 | val = args[coding_arg_pre_write_conversion]; | 9686 | val = args[coding_arg_pre_write_conversion]; |
| 9687 | CHECK_SYMBOL (val); | 9687 | CHECK_SYMBOL (val); |
| 9688 | CODING_ATTR_PRE_WRITE (attrs) = val; | 9688 | ASET (attrs, coding_attr_pre_write, val); |
| 9689 | 9689 | ||
| 9690 | val = args[coding_arg_default_char]; | 9690 | val = args[coding_arg_default_char]; |
| 9691 | if (NILP (val)) | 9691 | if (NILP (val)) |
| 9692 | CODING_ATTR_DEFAULT_CHAR (attrs) = make_number (' '); | 9692 | ASET (attrs, coding_attr_default_char, make_number (' ')); |
| 9693 | else | 9693 | else |
| 9694 | { | 9694 | { |
| 9695 | CHECK_CHARACTER (val); | 9695 | CHECK_CHARACTER (val); |
| 9696 | CODING_ATTR_DEFAULT_CHAR (attrs) = val; | 9696 | ASET (attrs, coding_attr_default_char, val); |
| 9697 | } | 9697 | } |
| 9698 | 9698 | ||
| 9699 | val = args[coding_arg_for_unibyte]; | 9699 | val = args[coding_arg_for_unibyte]; |
| 9700 | CODING_ATTR_FOR_UNIBYTE (attrs) = NILP (val) ? Qnil : Qt; | 9700 | ASET (attrs, coding_attr_for_unibyte, NILP (val) ? Qnil : Qt); |
| 9701 | 9701 | ||
| 9702 | val = args[coding_arg_plist]; | 9702 | val = args[coding_arg_plist]; |
| 9703 | CHECK_LIST (val); | 9703 | CHECK_LIST (val); |
| 9704 | CODING_ATTR_PLIST (attrs) = val; | 9704 | ASET (attrs, coding_attr_plist, val); |
| 9705 | 9705 | ||
| 9706 | if (EQ (coding_type, Qcharset)) | 9706 | if (EQ (coding_type, Qcharset)) |
| 9707 | { | 9707 | { |
| @@ -9726,7 +9726,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9726 | int idx = (dim - 1) * 4; | 9726 | int idx = (dim - 1) * 4; |
| 9727 | 9727 | ||
| 9728 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) | 9728 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) |
| 9729 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 9729 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 9730 | 9730 | ||
| 9731 | for (i = charset->code_space[idx]; | 9731 | for (i = charset->code_space[idx]; |
| 9732 | i <= charset->code_space[idx + 1]; i++) | 9732 | i <= charset->code_space[idx + 1]; i++) |
| @@ -9824,7 +9824,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9824 | { | 9824 | { |
| 9825 | Lisp_Object bom, endian; | 9825 | Lisp_Object bom, endian; |
| 9826 | 9826 | ||
| 9827 | CODING_ATTR_ASCII_COMPAT (attrs) = Qnil; | 9827 | ASET (attrs, coding_attr_ascii_compat, Qnil); |
| 9828 | 9828 | ||
| 9829 | if (nargs < coding_arg_utf16_max) | 9829 | if (nargs < coding_arg_utf16_max) |
| 9830 | goto short_args; | 9830 | goto short_args; |
| @@ -9877,7 +9877,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9877 | CHECK_CHARSET_GET_CHARSET (val, charset); | 9877 | CHECK_CHARSET_GET_CHARSET (val, charset); |
| 9878 | ASET (initial, i, make_number (CHARSET_ID (charset))); | 9878 | ASET (initial, i, make_number (CHARSET_ID (charset))); |
| 9879 | if (i == 0 && CHARSET_ASCII_COMPATIBLE_P (charset)) | 9879 | if (i == 0 && CHARSET_ASCII_COMPATIBLE_P (charset)) |
| 9880 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 9880 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 9881 | } | 9881 | } |
| 9882 | else | 9882 | else |
| 9883 | ASET (initial, i, make_number (-1)); | 9883 | ASET (initial, i, make_number (-1)); |
| @@ -9938,13 +9938,13 @@ usage: (define-coding-system-internal ...) */) | |||
| 9938 | } | 9938 | } |
| 9939 | if (category != coding_category_iso_8_1 | 9939 | if (category != coding_category_iso_8_1 |
| 9940 | && category != coding_category_iso_8_2) | 9940 | && category != coding_category_iso_8_2) |
| 9941 | CODING_ATTR_ASCII_COMPAT (attrs) = Qnil; | 9941 | ASET (attrs, coding_attr_ascii_compat, Qnil); |
| 9942 | } | 9942 | } |
| 9943 | else if (EQ (coding_type, Qemacs_mule)) | 9943 | else if (EQ (coding_type, Qemacs_mule)) |
| 9944 | { | 9944 | { |
| 9945 | if (EQ (args[coding_arg_charset_list], Qemacs_mule)) | 9945 | if (EQ (args[coding_arg_charset_list], Qemacs_mule)) |
| 9946 | ASET (attrs, coding_attr_emacs_mule_full, Qt); | 9946 | ASET (attrs, coding_attr_emacs_mule_full, Qt); |
| 9947 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 9947 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 9948 | category = coding_category_emacs_mule; | 9948 | category = coding_category_emacs_mule; |
| 9949 | } | 9949 | } |
| 9950 | else if (EQ (coding_type, Qshift_jis)) | 9950 | else if (EQ (coding_type, Qshift_jis)) |
| @@ -9961,7 +9961,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9961 | error ("Dimension of charset %s is not one", | 9961 | error ("Dimension of charset %s is not one", |
| 9962 | SDATA (SYMBOL_NAME (CHARSET_NAME (charset)))); | 9962 | SDATA (SYMBOL_NAME (CHARSET_NAME (charset)))); |
| 9963 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) | 9963 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) |
| 9964 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 9964 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 9965 | 9965 | ||
| 9966 | charset_list = XCDR (charset_list); | 9966 | charset_list = XCDR (charset_list); |
| 9967 | charset = CHARSET_FROM_ID (XINT (XCAR (charset_list))); | 9967 | charset = CHARSET_FROM_ID (XINT (XCAR (charset_list))); |
| @@ -9999,7 +9999,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9999 | error ("Dimension of charset %s is not one", | 9999 | error ("Dimension of charset %s is not one", |
| 10000 | SDATA (SYMBOL_NAME (CHARSET_NAME (charset)))); | 10000 | SDATA (SYMBOL_NAME (CHARSET_NAME (charset)))); |
| 10001 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) | 10001 | if (CHARSET_ASCII_COMPATIBLE_P (charset)) |
| 10002 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 10002 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 10003 | 10003 | ||
| 10004 | charset_list = XCDR (charset_list); | 10004 | charset_list = XCDR (charset_list); |
| 10005 | charset = CHARSET_FROM_ID (XINT (XCAR (charset_list))); | 10005 | charset = CHARSET_FROM_ID (XINT (XCAR (charset_list))); |
| @@ -10013,7 +10013,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 10013 | else if (EQ (coding_type, Qraw_text)) | 10013 | else if (EQ (coding_type, Qraw_text)) |
| 10014 | { | 10014 | { |
| 10015 | category = coding_category_raw_text; | 10015 | category = coding_category_raw_text; |
| 10016 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 10016 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 10017 | } | 10017 | } |
| 10018 | else if (EQ (coding_type, Qutf_8)) | 10018 | else if (EQ (coding_type, Qutf_8)) |
| 10019 | { | 10019 | { |
| @@ -10033,7 +10033,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 10033 | } | 10033 | } |
| 10034 | ASET (attrs, coding_attr_utf_bom, bom); | 10034 | ASET (attrs, coding_attr_utf_bom, bom); |
| 10035 | if (NILP (bom)) | 10035 | if (NILP (bom)) |
| 10036 | CODING_ATTR_ASCII_COMPAT (attrs) = Qt; | 10036 | ASET (attrs, coding_attr_ascii_compat, Qt); |
| 10037 | 10037 | ||
| 10038 | category = (CONSP (bom) ? coding_category_utf_8_auto | 10038 | category = (CONSP (bom) ? coding_category_utf_8_auto |
| 10039 | : NILP (bom) ? coding_category_utf_8_nosig | 10039 | : NILP (bom) ? coding_category_utf_8_nosig |
| @@ -10045,14 +10045,15 @@ usage: (define-coding-system-internal ...) */) | |||
| 10045 | error ("Invalid coding system type: %s", | 10045 | error ("Invalid coding system type: %s", |
| 10046 | SDATA (SYMBOL_NAME (coding_type))); | 10046 | SDATA (SYMBOL_NAME (coding_type))); |
| 10047 | 10047 | ||
| 10048 | CODING_ATTR_CATEGORY (attrs) = make_number (category); | 10048 | ASET (attrs, coding_attr_category, make_number (category)); |
| 10049 | CODING_ATTR_PLIST (attrs) | 10049 | ASET (attrs, coding_attr_plist, |
| 10050 | = Fcons (QCcategory, Fcons (AREF (Vcoding_category_table, category), | 10050 | Fcons (QCcategory, |
| 10051 | CODING_ATTR_PLIST (attrs))); | 10051 | Fcons (AREF (Vcoding_category_table, category), |
| 10052 | CODING_ATTR_PLIST (attrs) | 10052 | CODING_ATTR_PLIST (attrs)))); |
| 10053 | = Fcons (QCascii_compatible_p, | 10053 | ASET (attrs, coding_attr_plist, |
| 10054 | Fcons (CODING_ATTR_ASCII_COMPAT (attrs), | 10054 | Fcons (QCascii_compatible_p, |
| 10055 | CODING_ATTR_PLIST (attrs))); | 10055 | Fcons (CODING_ATTR_ASCII_COMPAT (attrs), |
| 10056 | CODING_ATTR_PLIST (attrs)))); | ||
| 10056 | 10057 | ||
| 10057 | eol_type = args[coding_arg_eol_type]; | 10058 | eol_type = args[coding_arg_eol_type]; |
| 10058 | if (! NILP (eol_type) | 10059 | if (! NILP (eol_type) |
| @@ -10126,7 +10127,7 @@ DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put, | |||
| 10126 | { | 10127 | { |
| 10127 | if (! STRINGP (val)) | 10128 | if (! STRINGP (val)) |
| 10128 | CHECK_CHARACTER (val); | 10129 | CHECK_CHARACTER (val); |
| 10129 | CODING_ATTR_MNEMONIC (attrs) = val; | 10130 | ASET (attrs, coding_attr_mnemonic, val); |
| 10130 | } | 10131 | } |
| 10131 | else if (EQ (prop, QCdefault_char)) | 10132 | else if (EQ (prop, QCdefault_char)) |
| 10132 | { | 10133 | { |
| @@ -10134,37 +10135,37 @@ DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put, | |||
| 10134 | val = make_number (' '); | 10135 | val = make_number (' '); |
| 10135 | else | 10136 | else |
| 10136 | CHECK_CHARACTER (val); | 10137 | CHECK_CHARACTER (val); |
| 10137 | CODING_ATTR_DEFAULT_CHAR (attrs) = val; | 10138 | ASET (attrs, coding_attr_default_char, val); |
| 10138 | } | 10139 | } |
| 10139 | else if (EQ (prop, QCdecode_translation_table)) | 10140 | else if (EQ (prop, QCdecode_translation_table)) |
| 10140 | { | 10141 | { |
| 10141 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) | 10142 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) |
| 10142 | CHECK_SYMBOL (val); | 10143 | CHECK_SYMBOL (val); |
| 10143 | CODING_ATTR_DECODE_TBL (attrs) = val; | 10144 | ASET (attrs, coding_attr_decode_tbl, val); |
| 10144 | } | 10145 | } |
| 10145 | else if (EQ (prop, QCencode_translation_table)) | 10146 | else if (EQ (prop, QCencode_translation_table)) |
| 10146 | { | 10147 | { |
| 10147 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) | 10148 | if (! CHAR_TABLE_P (val) && ! CONSP (val)) |
| 10148 | CHECK_SYMBOL (val); | 10149 | CHECK_SYMBOL (val); |
| 10149 | CODING_ATTR_ENCODE_TBL (attrs) = val; | 10150 | ASET (attrs, coding_attr_encode_tbl, val); |
| 10150 | } | 10151 | } |
| 10151 | else if (EQ (prop, QCpost_read_conversion)) | 10152 | else if (EQ (prop, QCpost_read_conversion)) |
| 10152 | { | 10153 | { |
| 10153 | CHECK_SYMBOL (val); | 10154 | CHECK_SYMBOL (val); |
| 10154 | CODING_ATTR_POST_READ (attrs) = val; | 10155 | ASET (attrs, coding_attr_post_read, val); |
| 10155 | } | 10156 | } |
| 10156 | else if (EQ (prop, QCpre_write_conversion)) | 10157 | else if (EQ (prop, QCpre_write_conversion)) |
| 10157 | { | 10158 | { |
| 10158 | CHECK_SYMBOL (val); | 10159 | CHECK_SYMBOL (val); |
| 10159 | CODING_ATTR_PRE_WRITE (attrs) = val; | 10160 | ASET (attrs, coding_attr_pre_write, val); |
| 10160 | } | 10161 | } |
| 10161 | else if (EQ (prop, QCascii_compatible_p)) | 10162 | else if (EQ (prop, QCascii_compatible_p)) |
| 10162 | { | 10163 | { |
| 10163 | CODING_ATTR_ASCII_COMPAT (attrs) = val; | 10164 | ASET (attrs, coding_attr_ascii_compat, val); |
| 10164 | } | 10165 | } |
| 10165 | 10166 | ||
| 10166 | CODING_ATTR_PLIST (attrs) | 10167 | ASET (attrs, coding_attr_plist, |
| 10167 | = Fplist_put (CODING_ATTR_PLIST (attrs), prop, val); | 10168 | Fplist_put (CODING_ATTR_PLIST (attrs), prop, val)); |
| 10168 | return val; | 10169 | return val; |
| 10169 | } | 10170 | } |
| 10170 | 10171 | ||