diff options
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index b176bfed3fe..22ae522523a 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1022,7 +1022,10 @@ buffer_lisp_local_variables (struct buffer *buf) | |||
| 1022 | if (buf != current_buffer) | 1022 | if (buf != current_buffer) |
| 1023 | val = XCDR (elt); | 1023 | val = XCDR (elt); |
| 1024 | 1024 | ||
| 1025 | result = Fcons (Fcons (XCAR (elt), val), result); | 1025 | result = Fcons (EQ (val, Qunbound) |
| 1026 | ? XCAR (elt) | ||
| 1027 | : Fcons (XCAR (elt), val), | ||
| 1028 | result); | ||
| 1026 | } | 1029 | } |
| 1027 | 1030 | ||
| 1028 | return result; | 1031 | return result; |
| @@ -1064,9 +1067,12 @@ No argument or nil as argument means use current buffer as BUFFER. */) | |||
| 1064 | idx = PER_BUFFER_IDX (offset); | 1067 | idx = PER_BUFFER_IDX (offset); |
| 1065 | if ((idx == -1 || PER_BUFFER_VALUE_P (buf, idx)) | 1068 | if ((idx == -1 || PER_BUFFER_VALUE_P (buf, idx)) |
| 1066 | && SYMBOLP (PER_BUFFER_SYMBOL (offset))) | 1069 | && SYMBOLP (PER_BUFFER_SYMBOL (offset))) |
| 1067 | result = Fcons (Fcons (PER_BUFFER_SYMBOL (offset), | 1070 | { |
| 1068 | PER_BUFFER_VALUE (buf, offset)), | 1071 | Lisp_Object sym = PER_BUFFER_SYMBOL (offset); |
| 1069 | result); | 1072 | Lisp_Object val = PER_BUFFER_VALUE (buf, offset); |
| 1073 | result = Fcons (EQ (val, Qunbound) ? sym : Fcons (sym, val), | ||
| 1074 | result); | ||
| 1075 | } | ||
| 1070 | } | 1076 | } |
| 1071 | } | 1077 | } |
| 1072 | 1078 | ||