1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-17 11:20:39 -08:00

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.
This commit is contained in:
Paul Eggert 2012-08-01 13:51:44 -07:00
parent 947b2afddc
commit 4939150cb4
17 changed files with 266 additions and 189 deletions

View file

@ -2674,8 +2674,8 @@ encode_coding_emacs_mule (struct coding_system *coding)
CODING_GET_INFO (coding, attrs, charset_list);
if (! EQ (charset_list, Vemacs_mule_charset_list))
{
CODING_ATTR_CHARSET_LIST (attrs)
= charset_list = Vemacs_mule_charset_list;
charset_list = Vemacs_mule_charset_list;
ASET (attrs, coding_attr_charset_list, charset_list);
}
while (charbuf < charbuf_end)
@ -2967,8 +2967,8 @@ setup_iso_safe_charsets (Lisp_Object attrs)
if ((flags & CODING_ISO_FLAG_FULL_SUPPORT)
&& ! EQ (charset_list, Viso_2022_charset_list))
{
CODING_ATTR_CHARSET_LIST (attrs)
= charset_list = Viso_2022_charset_list;
charset_list = Viso_2022_charset_list;
ASET (attrs, coding_attr_charset_list, charset_list);
ASET (attrs, coding_attr_safe_charsets, Qnil);
}
@ -9603,16 +9603,16 @@ usage: (define-coding-system-internal ...) */)
name = args[coding_arg_name];
CHECK_SYMBOL (name);
CODING_ATTR_BASE_NAME (attrs) = name;
ASET (attrs, coding_attr_base_name, name);
val = args[coding_arg_mnemonic];
if (! STRINGP (val))
CHECK_CHARACTER (val);
CODING_ATTR_MNEMONIC (attrs) = val;
ASET (attrs, coding_attr_mnemonic, val);
coding_type = args[coding_arg_coding_type];
CHECK_SYMBOL (coding_type);
CODING_ATTR_TYPE (attrs) = coding_type;
ASET (attrs, coding_attr_type, coding_type);
charset_list = args[coding_arg_charset_list];
if (SYMBOLP (charset_list))
@ -9659,49 +9659,49 @@ usage: (define-coding-system-internal ...) */)
max_charset_id = charset->id;
}
}
CODING_ATTR_CHARSET_LIST (attrs) = charset_list;
ASET (attrs, coding_attr_charset_list, charset_list);
safe_charsets = make_uninit_string (max_charset_id + 1);
memset (SDATA (safe_charsets), 255, max_charset_id + 1);
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
SSET (safe_charsets, XFASTINT (XCAR (tail)), 0);
CODING_ATTR_SAFE_CHARSETS (attrs) = safe_charsets;
ASET (attrs, coding_attr_safe_charsets, safe_charsets);
CODING_ATTR_ASCII_COMPAT (attrs) = args[coding_arg_ascii_compatible_p];
ASET (attrs, coding_attr_ascii_compat, args[coding_arg_ascii_compatible_p]);
val = args[coding_arg_decode_translation_table];
if (! CHAR_TABLE_P (val) && ! CONSP (val))
CHECK_SYMBOL (val);
CODING_ATTR_DECODE_TBL (attrs) = val;
ASET (attrs, coding_attr_decode_tbl, val);
val = args[coding_arg_encode_translation_table];
if (! CHAR_TABLE_P (val) && ! CONSP (val))
CHECK_SYMBOL (val);
CODING_ATTR_ENCODE_TBL (attrs) = val;
ASET (attrs, coding_attr_encode_tbl, val);
val = args[coding_arg_post_read_conversion];
CHECK_SYMBOL (val);
CODING_ATTR_POST_READ (attrs) = val;
ASET (attrs, coding_attr_post_read, val);
val = args[coding_arg_pre_write_conversion];
CHECK_SYMBOL (val);
CODING_ATTR_PRE_WRITE (attrs) = val;
ASET (attrs, coding_attr_pre_write, val);
val = args[coding_arg_default_char];
if (NILP (val))
CODING_ATTR_DEFAULT_CHAR (attrs) = make_number (' ');
ASET (attrs, coding_attr_default_char, make_number (' '));
else
{
CHECK_CHARACTER (val);
CODING_ATTR_DEFAULT_CHAR (attrs) = val;
ASET (attrs, coding_attr_default_char, val);
}
val = args[coding_arg_for_unibyte];
CODING_ATTR_FOR_UNIBYTE (attrs) = NILP (val) ? Qnil : Qt;
ASET (attrs, coding_attr_for_unibyte, NILP (val) ? Qnil : Qt);
val = args[coding_arg_plist];
CHECK_LIST (val);
CODING_ATTR_PLIST (attrs) = val;
ASET (attrs, coding_attr_plist, val);
if (EQ (coding_type, Qcharset))
{
@ -9726,7 +9726,7 @@ usage: (define-coding-system-internal ...) */)
int idx = (dim - 1) * 4;
if (CHARSET_ASCII_COMPATIBLE_P (charset))
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
for (i = charset->code_space[idx];
i <= charset->code_space[idx + 1]; i++)
@ -9824,7 +9824,7 @@ usage: (define-coding-system-internal ...) */)
{
Lisp_Object bom, endian;
CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
ASET (attrs, coding_attr_ascii_compat, Qnil);
if (nargs < coding_arg_utf16_max)
goto short_args;
@ -9877,7 +9877,7 @@ usage: (define-coding-system-internal ...) */)
CHECK_CHARSET_GET_CHARSET (val, charset);
ASET (initial, i, make_number (CHARSET_ID (charset)));
if (i == 0 && CHARSET_ASCII_COMPATIBLE_P (charset))
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
}
else
ASET (initial, i, make_number (-1));
@ -9938,13 +9938,13 @@ usage: (define-coding-system-internal ...) */)
}
if (category != coding_category_iso_8_1
&& category != coding_category_iso_8_2)
CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
ASET (attrs, coding_attr_ascii_compat, Qnil);
}
else if (EQ (coding_type, Qemacs_mule))
{
if (EQ (args[coding_arg_charset_list], Qemacs_mule))
ASET (attrs, coding_attr_emacs_mule_full, Qt);
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
category = coding_category_emacs_mule;
}
else if (EQ (coding_type, Qshift_jis))
@ -9961,7 +9961,7 @@ usage: (define-coding-system-internal ...) */)
error ("Dimension of charset %s is not one",
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
if (CHARSET_ASCII_COMPATIBLE_P (charset))
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
charset_list = XCDR (charset_list);
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
@ -9999,7 +9999,7 @@ usage: (define-coding-system-internal ...) */)
error ("Dimension of charset %s is not one",
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
if (CHARSET_ASCII_COMPATIBLE_P (charset))
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
charset_list = XCDR (charset_list);
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
@ -10013,7 +10013,7 @@ usage: (define-coding-system-internal ...) */)
else if (EQ (coding_type, Qraw_text))
{
category = coding_category_raw_text;
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
}
else if (EQ (coding_type, Qutf_8))
{
@ -10033,7 +10033,7 @@ usage: (define-coding-system-internal ...) */)
}
ASET (attrs, coding_attr_utf_bom, bom);
if (NILP (bom))
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
ASET (attrs, coding_attr_ascii_compat, Qt);
category = (CONSP (bom) ? coding_category_utf_8_auto
: NILP (bom) ? coding_category_utf_8_nosig
@ -10045,14 +10045,15 @@ usage: (define-coding-system-internal ...) */)
error ("Invalid coding system type: %s",
SDATA (SYMBOL_NAME (coding_type)));
CODING_ATTR_CATEGORY (attrs) = make_number (category);
CODING_ATTR_PLIST (attrs)
= Fcons (QCcategory, Fcons (AREF (Vcoding_category_table, category),
CODING_ATTR_PLIST (attrs)));
CODING_ATTR_PLIST (attrs)
= Fcons (QCascii_compatible_p,
Fcons (CODING_ATTR_ASCII_COMPAT (attrs),
CODING_ATTR_PLIST (attrs)));
ASET (attrs, coding_attr_category, make_number (category));
ASET (attrs, coding_attr_plist,
Fcons (QCcategory,
Fcons (AREF (Vcoding_category_table, category),
CODING_ATTR_PLIST (attrs))));
ASET (attrs, coding_attr_plist,
Fcons (QCascii_compatible_p,
Fcons (CODING_ATTR_ASCII_COMPAT (attrs),
CODING_ATTR_PLIST (attrs))));
eol_type = args[coding_arg_eol_type];
if (! NILP (eol_type)
@ -10126,7 +10127,7 @@ DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put,
{
if (! STRINGP (val))
CHECK_CHARACTER (val);
CODING_ATTR_MNEMONIC (attrs) = val;
ASET (attrs, coding_attr_mnemonic, val);
}
else if (EQ (prop, QCdefault_char))
{
@ -10134,37 +10135,37 @@ DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put,
val = make_number (' ');
else
CHECK_CHARACTER (val);
CODING_ATTR_DEFAULT_CHAR (attrs) = val;
ASET (attrs, coding_attr_default_char, val);
}
else if (EQ (prop, QCdecode_translation_table))
{
if (! CHAR_TABLE_P (val) && ! CONSP (val))
CHECK_SYMBOL (val);
CODING_ATTR_DECODE_TBL (attrs) = val;
ASET (attrs, coding_attr_decode_tbl, val);
}
else if (EQ (prop, QCencode_translation_table))
{
if (! CHAR_TABLE_P (val) && ! CONSP (val))
CHECK_SYMBOL (val);
CODING_ATTR_ENCODE_TBL (attrs) = val;
ASET (attrs, coding_attr_encode_tbl, val);
}
else if (EQ (prop, QCpost_read_conversion))
{
CHECK_SYMBOL (val);
CODING_ATTR_POST_READ (attrs) = val;
ASET (attrs, coding_attr_post_read, val);
}
else if (EQ (prop, QCpre_write_conversion))
{
CHECK_SYMBOL (val);
CODING_ATTR_PRE_WRITE (attrs) = val;
ASET (attrs, coding_attr_pre_write, val);
}
else if (EQ (prop, QCascii_compatible_p))
{
CODING_ATTR_ASCII_COMPAT (attrs) = val;
ASET (attrs, coding_attr_ascii_compat, val);
}
CODING_ATTR_PLIST (attrs)
= Fplist_put (CODING_ATTR_PLIST (attrs), prop, val);
ASET (attrs, coding_attr_plist,
Fplist_put (CODING_ATTR_PLIST (attrs), prop, val));
return val;
}