Commit bd0b5c862d7fc774564244e033e9f5e442191f31
- Diff rendering mode:
- inline
- side by side
src/data.c
(33 / 33)
|   | |||
| 823 | 823 | ||
| 824 | 824 | for (it = l->thread_data; !NILP (it); it = XCDR (it)) | |
| 825 | 825 | { | |
| 826 | Lisp_Object head = XCDR (XCAR (it)); | ||
| 827 | if ((EQ (Fcurrent_buffer (), BLOCAL_BUFFER_VEC (head))) | ||
| 826 | Lisp_Object thread_data = XCDR (XCAR (it)); | ||
| 827 | if ((EQ (Fcurrent_buffer (), BLOCAL_BUFFER_VEC (thread_data))) | ||
| 828 | 828 | && (! l->check_frame | |
| 829 | || EQ (selected_frame, BLOCAL_FRAME_VEC (head)))) | ||
| 829 | || EQ (selected_frame, BLOCAL_FRAME_VEC (thread_data)))) | ||
| 830 | 830 | { | |
| 831 | Lisp_Object v = BLOCAL_CDR_VEC (head); | ||
| 832 | parent = head; | ||
| 833 | |||
| 834 | if (EQ (v, XCAR (v))) | ||
| 831 | Lisp_Object cdr = BLOCAL_CDR_VEC (thread_data); | ||
| 832 | parent = thread_data; | ||
| 833 | VECTORP (thread_data) || (abort (), 1); | ||
| 834 | if (EQ (XCAR (cdr), XCAR (XCAR (cdr)))) | ||
| 835 | 835 | val = XCDR (assq_no_quit (XCAR (XCAR (it)), | |
| 836 | 836 | XTHREADLOCAL (l->realvalue)->thread_alist)); | |
| 837 | 837 | else | |
| 838 | val = XCDR (BLOCAL_CDR_VEC (head)); | ||
| 838 | val = XCDR (BLOCAL_CDR_VEC (thread_data)); | ||
| 839 | 839 | ||
| 840 | 840 | break; | |
| 841 | 841 | } | |
| … | … | ||
| 1185 | 1185 | valcontents = SYMBOL_VALUE (symbol); | |
| 1186 | 1186 | if (BUFFER_LOCAL_VALUEP (valcontents)) | |
| 1187 | 1187 | { | |
| 1188 | Lisp_Object v = BLOCAL_CDR (XBUFFER_LOCAL_VALUE (valcontents)); | ||
| 1189 | if (EQ (v, XCAR (v))) | ||
| 1190 | { | ||
| 1191 | Lisp_Object it; | ||
| 1192 | for (it = XBUFFER_LOCAL_VALUE (valcontents)->thread_data; | ||
| 1193 | !NILP (it); it = XCDR (it)) | ||
| 1194 | { | ||
| 1195 | Lisp_Object head = XCDR (XCAR (it)); | ||
| 1196 | if (1 || EQ (BLOCAL_BUFFER (XBUFFER_LOCAL_VALUE (valcontents)), | ||
| 1197 | BLOCAL_BUFFER_VEC (head)) | ||
| 1198 | && (! XBUFFER_LOCAL_VALUE (valcontents)->check_frame | ||
| 1199 | || EQ (selected_frame, BLOCAL_FRAME_VEC (head)))) | ||
| 1200 | { | ||
| 1201 | Lisp_Object rv | ||
| 1202 | = XBUFFER_LOCAL_VALUE (valcontents)->realvalue; | ||
| 1188 | Lisp_Object cdr = BLOCAL_CDR (XBUFFER_LOCAL_VALUE (valcontents)); | ||
| 1189 | if (EQ (XCAR (cdr), XCAR (XCAR (cdr)))) | ||
| 1190 | { | ||
| 1191 | Lisp_Object it; | ||
| 1192 | for (it = XBUFFER_LOCAL_VALUE (valcontents)->thread_data; | ||
| 1193 | !NILP (it); it = XCDR (it)) | ||
| 1194 | { | ||
| 1195 | Lisp_Object head = XCDR (XCAR (it)); | ||
| 1196 | if (EQ (BLOCAL_BUFFER (XBUFFER_LOCAL_VALUE (valcontents)), | ||
| 1197 | BLOCAL_BUFFER_VEC (head)) | ||
| 1198 | && (! XBUFFER_LOCAL_VALUE (valcontents)->check_frame | ||
| 1199 | || EQ (selected_frame, BLOCAL_FRAME_VEC (head)))) | ||
| 1200 | { | ||
| 1201 | Lisp_Object rv | ||
| 1202 | = XBUFFER_LOCAL_VALUE (valcontents)->realvalue; | ||
| 1203 | 1203 | ||
| 1204 | if (EQ (BLOCAL_CDR_VEC (head), | ||
| 1205 | XCAR (BLOCAL_CDR_VEC (head)))) | ||
| 1206 | Fsetcdr (assq_no_quit (XCAR (XCAR (it)), | ||
| 1207 | XTHREADLOCAL (rv)->thread_alist), | ||
| 1208 | newval); | ||
| 1204 | if (EQ (XCAR (BLOCAL_CDR_VEC (head)), | ||
| 1205 | XCAR (XCAR (BLOCAL_CDR_VEC (head))))) | ||
| 1206 | Fsetcdr (assq_no_quit (XCAR (XCAR (it)), | ||
| 1207 | XTHREADLOCAL (rv)->thread_alist), | ||
| 1208 | newval); | ||
| 1209 | 1209 | ||
| 1210 | XSETCDR (XCAR (BLOCAL_CDR_VEC (head)), newval); | ||
| 1211 | } | ||
| 1212 | } | ||
| 1213 | } | ||
| 1214 | BLOCAL_REALVALUE (XBUFFER_LOCAL_VALUE (valcontents)) = newval; | ||
| 1210 | XSETCDR (XCAR (BLOCAL_CDR_VEC (head)), newval); | ||
| 1211 | } | ||
| 1212 | } | ||
| 1213 | } | ||
| 1214 | BLOCAL_REALVALUE (XBUFFER_LOCAL_VALUE (valcontents)) = newval; | ||
| 1215 | 1215 | } | |
| 1216 | 1216 | else if (THREADLOCALP (valcontents)) | |
| 1217 | 1217 | { |

