aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorPaul Eggert2017-11-13 10:54:20 -0800
committerPaul Eggert2017-11-13 10:54:20 -0800
commit99ceefa8ec4f9993663492cfcce6bb82a94569c1 (patch)
tree507f76715b3086f34672b7c984dc09befaa57fc6 /src/data.c
parenta7b7b85567f766ff510a5eaaaf32dbbbec15efd0 (diff)
parent79108894dbcd642121466bb6af6c98c6a56e9233 (diff)
downloademacs-99ceefa8ec4f9993663492cfcce6bb82a94569c1.tar.gz
emacs-99ceefa8ec4f9993663492cfcce6bb82a94569c1.zip
Merge from origin/emacs-26
79108894db Port to IBM xlc 12.01 d14956099d Simplify by removing HAVE_STRUCT_ATTRIBUTE_ALIGNED b1573a97e1 Use alignas to fix GCALIGN-related bugs 5d68dc9a2f Change vectorlike from struct to union 6aa0a26b46 Don't enable cursor-sensor-mode in mhtml-mode 2b8ef8dddf * lisp/files.el (abbreviate-file-name): Doc fix. (Bug#29267) fe85ce1e16 Unbreak interactive run of a flymake test (bug#29267) 48ad00390d Fix Bug#29225 42daf83f08 CC Mode: Fix defun-open being recognized as brace-list-ope... 7775c47298 Merge from Gnulib e470d16448 Pacify GCC when configured --with-x-toolkit=no 49450d0951 * lisp/find-dired.el (find-grep-dired): Doc fix. (Bug#29262) e286b3381f Fix more flymake-diag-region eob corner cases and add test... # Conflicts: # src/lisp.h
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/src/data.c b/src/data.c
index 00d1eb43033..4a3afed6f71 100644
--- a/src/data.c
+++ b/src/data.c
@@ -670,7 +670,7 @@ global value outside of any lexical scope. */)
670 sym = XSYMBOL (symbol); 670 sym = XSYMBOL (symbol);
671 671
672 start: 672 start:
673 switch (sym->redirect) 673 switch (sym->u.s.redirect)
674 { 674 {
675 case SYMBOL_PLAINVAL: valcontents = SYMBOL_VAL (sym); break; 675 case SYMBOL_PLAINVAL: valcontents = SYMBOL_VAL (sym); break;
676 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 676 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
@@ -704,10 +704,10 @@ global value outside of any lexical scope. */)
704 expect `t' in particular, rather than any true value. */ 704 expect `t' in particular, rather than any true value. */
705DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0, 705DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0,
706 doc: /* Return t if SYMBOL's function definition is not void. */) 706 doc: /* Return t if SYMBOL's function definition is not void. */)
707 (register Lisp_Object symbol) 707 (Lisp_Object symbol)
708{ 708{
709 CHECK_SYMBOL (symbol); 709 CHECK_SYMBOL (symbol);
710 return NILP (XSYMBOL (symbol)->function) ? Qnil : Qt; 710 return NILP (XSYMBOL (symbol)->u.s.function) ? Qnil : Qt;
711} 711}
712 712
713DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, 713DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0,
@@ -736,18 +736,18 @@ Return SYMBOL. */)
736 736
737DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0, 737DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0,
738 doc: /* Return SYMBOL's function definition, or nil if that is void. */) 738 doc: /* Return SYMBOL's function definition, or nil if that is void. */)
739 (register Lisp_Object symbol) 739 (Lisp_Object symbol)
740{ 740{
741 CHECK_SYMBOL (symbol); 741 CHECK_SYMBOL (symbol);
742 return XSYMBOL (symbol)->function; 742 return XSYMBOL (symbol)->u.s.function;
743} 743}
744 744
745DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0, 745DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0,
746 doc: /* Return SYMBOL's property list. */) 746 doc: /* Return SYMBOL's property list. */)
747 (register Lisp_Object symbol) 747 (Lisp_Object symbol)
748{ 748{
749 CHECK_SYMBOL (symbol); 749 CHECK_SYMBOL (symbol);
750 return XSYMBOL (symbol)->plist; 750 return XSYMBOL (symbol)->u.s.plist;
751} 751}
752 752
753DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0, 753DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
@@ -771,7 +771,7 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
771 if (NILP (symbol)) 771 if (NILP (symbol))
772 xsignal1 (Qsetting_constant, symbol); 772 xsignal1 (Qsetting_constant, symbol);
773 773
774 function = XSYMBOL (symbol)->function; 774 function = XSYMBOL (symbol)->u.s.function;
775 775
776 if (!NILP (Vautoload_queue) && !NILP (function)) 776 if (!NILP (Vautoload_queue) && !NILP (function))
777 Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue); 777 Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
@@ -814,7 +814,7 @@ The return value is undefined. */)
814 { /* Only add autoload entries after dumping, because the ones before are 814 { /* Only add autoload entries after dumping, because the ones before are
815 not useful and else we get loads of them from the loaddefs.el. */ 815 not useful and else we get loads of them from the loaddefs.el. */
816 816
817 if (AUTOLOADP (XSYMBOL (symbol)->function)) 817 if (AUTOLOADP (XSYMBOL (symbol)->u.s.function))
818 /* Remember that the function was already an autoload. */ 818 /* Remember that the function was already an autoload. */
819 LOADHIST_ATTACH (Fcons (Qt, symbol)); 819 LOADHIST_ATTACH (Fcons (Qt, symbol));
820 LOADHIST_ATTACH (Fcons (autoload ? Qautoload : Qdefun, symbol)); 820 LOADHIST_ATTACH (Fcons (autoload ? Qautoload : Qdefun, symbol));
@@ -940,10 +940,10 @@ indirect_variable (struct Lisp_Symbol *symbol)
940 940
941 hare = tortoise = symbol; 941 hare = tortoise = symbol;
942 942
943 while (hare->redirect == SYMBOL_VARALIAS) 943 while (hare->u.s.redirect == SYMBOL_VARALIAS)
944 { 944 {
945 hare = SYMBOL_ALIAS (hare); 945 hare = SYMBOL_ALIAS (hare);
946 if (hare->redirect != SYMBOL_VARALIAS) 946 if (hare->u.s.redirect != SYMBOL_VARALIAS)
947 break; 947 break;
948 948
949 hare = SYMBOL_ALIAS (hare); 949 hare = SYMBOL_ALIAS (hare);
@@ -1247,7 +1247,7 @@ find_symbol_value (Lisp_Object symbol)
1247 sym = XSYMBOL (symbol); 1247 sym = XSYMBOL (symbol);
1248 1248
1249 start: 1249 start:
1250 switch (sym->redirect) 1250 switch (sym->u.s.redirect)
1251 { 1251 {
1252 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1252 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1253 case SYMBOL_PLAINVAL: return SYMBOL_VAL (sym); 1253 case SYMBOL_PLAINVAL: return SYMBOL_VAL (sym);
@@ -1310,7 +1310,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
1310 1310
1311 CHECK_SYMBOL (symbol); 1311 CHECK_SYMBOL (symbol);
1312 sym = XSYMBOL (symbol); 1312 sym = XSYMBOL (symbol);
1313 switch (sym->trapped_write) 1313 switch (sym->u.s.trapped_write)
1314 { 1314 {
1315 case SYMBOL_NOWRITE: 1315 case SYMBOL_NOWRITE:
1316 if (NILP (Fkeywordp (symbol)) 1316 if (NILP (Fkeywordp (symbol))
@@ -1336,7 +1336,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
1336 } 1336 }
1337 1337
1338 start: 1338 start:
1339 switch (sym->redirect) 1339 switch (sym->u.s.redirect)
1340 { 1340 {
1341 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1341 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1342 case SYMBOL_PLAINVAL: SET_SYMBOL_VAL (sym , newval); return; 1342 case SYMBOL_PLAINVAL: SET_SYMBOL_VAL (sym , newval); return;
@@ -1436,7 +1436,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where,
1436 if (voide) 1436 if (voide)
1437 { /* If storing void (making the symbol void), forward only through 1437 { /* If storing void (making the symbol void), forward only through
1438 buffer-local indicator, not through Lisp_Objfwd, etc. */ 1438 buffer-local indicator, not through Lisp_Objfwd, etc. */
1439 sym->redirect = SYMBOL_PLAINVAL; 1439 sym->u.s.redirect = SYMBOL_PLAINVAL;
1440 SET_SYMBOL_VAL (sym, newval); 1440 SET_SYMBOL_VAL (sym, newval);
1441 } 1441 }
1442 else 1442 else
@@ -1452,9 +1452,9 @@ static void
1452set_symbol_trapped_write (Lisp_Object symbol, enum symbol_trapped_write trap) 1452set_symbol_trapped_write (Lisp_Object symbol, enum symbol_trapped_write trap)
1453{ 1453{
1454 struct Lisp_Symbol *sym = XSYMBOL (symbol); 1454 struct Lisp_Symbol *sym = XSYMBOL (symbol);
1455 if (sym->trapped_write == SYMBOL_NOWRITE) 1455 if (sym->u.s.trapped_write == SYMBOL_NOWRITE)
1456 xsignal1 (Qtrapping_constant, symbol); 1456 xsignal1 (Qtrapping_constant, symbol);
1457 sym->trapped_write = trap; 1457 sym->u.s.trapped_write = trap;
1458} 1458}
1459 1459
1460static void 1460static void
@@ -1469,7 +1469,7 @@ harmonize_variable_watchers (Lisp_Object alias, Lisp_Object base_variable)
1469 if (!EQ (base_variable, alias) 1469 if (!EQ (base_variable, alias)
1470 && EQ (base_variable, Findirect_variable (alias))) 1470 && EQ (base_variable, Findirect_variable (alias)))
1471 set_symbol_trapped_write 1471 set_symbol_trapped_write
1472 (alias, XSYMBOL (base_variable)->trapped_write); 1472 (alias, XSYMBOL (base_variable)->u.s.trapped_write);
1473} 1473}
1474 1474
1475DEFUN ("add-variable-watcher", Fadd_variable_watcher, Sadd_variable_watcher, 1475DEFUN ("add-variable-watcher", Fadd_variable_watcher, Sadd_variable_watcher,
@@ -1583,7 +1583,7 @@ default_value (Lisp_Object symbol)
1583 sym = XSYMBOL (symbol); 1583 sym = XSYMBOL (symbol);
1584 1584
1585 start: 1585 start:
1586 switch (sym->redirect) 1586 switch (sym->u.s.redirect)
1587 { 1587 {
1588 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1588 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1589 case SYMBOL_PLAINVAL: return SYMBOL_VAL (sym); 1589 case SYMBOL_PLAINVAL: return SYMBOL_VAL (sym);
@@ -1653,7 +1653,7 @@ set_default_internal (Lisp_Object symbol, Lisp_Object value,
1653 1653
1654 CHECK_SYMBOL (symbol); 1654 CHECK_SYMBOL (symbol);
1655 sym = XSYMBOL (symbol); 1655 sym = XSYMBOL (symbol);
1656 switch (sym->trapped_write) 1656 switch (sym->u.s.trapped_write)
1657 { 1657 {
1658 case SYMBOL_NOWRITE: 1658 case SYMBOL_NOWRITE:
1659 if (NILP (Fkeywordp (symbol)) 1659 if (NILP (Fkeywordp (symbol))
@@ -1665,7 +1665,7 @@ set_default_internal (Lisp_Object symbol, Lisp_Object value,
1665 1665
1666 case SYMBOL_TRAPPED_WRITE: 1666 case SYMBOL_TRAPPED_WRITE:
1667 /* Don't notify here if we're going to call Fset anyway. */ 1667 /* Don't notify here if we're going to call Fset anyway. */
1668 if (sym->redirect != SYMBOL_PLAINVAL 1668 if (sym->u.s.redirect != SYMBOL_PLAINVAL
1669 /* Setting due to thread switching doesn't count. */ 1669 /* Setting due to thread switching doesn't count. */
1670 && bindflag != SET_INTERNAL_THREAD_SWITCH) 1670 && bindflag != SET_INTERNAL_THREAD_SWITCH)
1671 notify_variable_watchers (symbol, value, Qset_default, Qnil); 1671 notify_variable_watchers (symbol, value, Qset_default, Qnil);
@@ -1677,7 +1677,7 @@ set_default_internal (Lisp_Object symbol, Lisp_Object value,
1677 } 1677 }
1678 1678
1679 start: 1679 start:
1680 switch (sym->redirect) 1680 switch (sym->u.s.redirect)
1681 { 1681 {
1682 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1682 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1683 case SYMBOL_PLAINVAL: set_internal (symbol, value, Qnil, bindflag); return; 1683 case SYMBOL_PLAINVAL: set_internal (symbol, value, Qnil, bindflag); return;
@@ -1829,7 +1829,7 @@ The function `default-value' gets the default value and `set-default' sets it.
1829 sym = XSYMBOL (variable); 1829 sym = XSYMBOL (variable);
1830 1830
1831 start: 1831 start:
1832 switch (sym->redirect) 1832 switch (sym->u.s.redirect)
1833 { 1833 {
1834 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1834 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1835 case SYMBOL_PLAINVAL: 1835 case SYMBOL_PLAINVAL:
@@ -1857,7 +1857,7 @@ The function `default-value' gets the default value and `set-default' sets it.
1857 if (!blv) 1857 if (!blv)
1858 { 1858 {
1859 blv = make_blv (sym, forwarded, valcontents); 1859 blv = make_blv (sym, forwarded, valcontents);
1860 sym->redirect = SYMBOL_LOCALIZED; 1860 sym->u.s.redirect = SYMBOL_LOCALIZED;
1861 SET_SYMBOL_BLV (sym, blv); 1861 SET_SYMBOL_BLV (sym, blv);
1862 } 1862 }
1863 1863
@@ -1897,7 +1897,7 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
1897 sym = XSYMBOL (variable); 1897 sym = XSYMBOL (variable);
1898 1898
1899 start: 1899 start:
1900 switch (sym->redirect) 1900 switch (sym->u.s.redirect)
1901 { 1901 {
1902 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1902 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1903 case SYMBOL_PLAINVAL: 1903 case SYMBOL_PLAINVAL:
@@ -1914,7 +1914,7 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
1914 default: emacs_abort (); 1914 default: emacs_abort ();
1915 } 1915 }
1916 1916
1917 if (sym->trapped_write == SYMBOL_NOWRITE) 1917 if (sym->u.s.trapped_write == SYMBOL_NOWRITE)
1918 error ("Symbol %s may not be buffer-local", 1918 error ("Symbol %s may not be buffer-local",
1919 SDATA (SYMBOL_NAME (variable))); 1919 SDATA (SYMBOL_NAME (variable)));
1920 1920
@@ -1930,7 +1930,7 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
1930 if (!blv) 1930 if (!blv)
1931 { 1931 {
1932 blv = make_blv (sym, forwarded, valcontents); 1932 blv = make_blv (sym, forwarded, valcontents);
1933 sym->redirect = SYMBOL_LOCALIZED; 1933 sym->u.s.redirect = SYMBOL_LOCALIZED;
1934 SET_SYMBOL_BLV (sym, blv); 1934 SET_SYMBOL_BLV (sym, blv);
1935 } 1935 }
1936 1936
@@ -1987,7 +1987,7 @@ From now on the default value will apply in this buffer. Return VARIABLE. */)
1987 sym = XSYMBOL (variable); 1987 sym = XSYMBOL (variable);
1988 1988
1989 start: 1989 start:
1990 switch (sym->redirect) 1990 switch (sym->u.s.redirect)
1991 { 1991 {
1992 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 1992 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
1993 case SYMBOL_PLAINVAL: return variable; 1993 case SYMBOL_PLAINVAL: return variable;
@@ -2014,7 +2014,7 @@ From now on the default value will apply in this buffer. Return VARIABLE. */)
2014 default: emacs_abort (); 2014 default: emacs_abort ();
2015 } 2015 }
2016 2016
2017 if (sym->trapped_write == SYMBOL_TRAPPED_WRITE) 2017 if (sym->u.s.trapped_write == SYMBOL_TRAPPED_WRITE)
2018 notify_variable_watchers (variable, Qnil, Qmakunbound, Fcurrent_buffer ()); 2018 notify_variable_watchers (variable, Qnil, Qmakunbound, Fcurrent_buffer ());
2019 2019
2020 /* Get rid of this buffer's alist element, if any. */ 2020 /* Get rid of this buffer's alist element, if any. */
@@ -2056,7 +2056,7 @@ BUFFER defaults to the current buffer. */)
2056 sym = XSYMBOL (variable); 2056 sym = XSYMBOL (variable);
2057 2057
2058 start: 2058 start:
2059 switch (sym->redirect) 2059 switch (sym->u.s.redirect)
2060 { 2060 {
2061 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 2061 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
2062 case SYMBOL_PLAINVAL: return Qnil; 2062 case SYMBOL_PLAINVAL: return Qnil;
@@ -2110,7 +2110,7 @@ value in BUFFER, or if VARIABLE is automatically buffer-local (see
2110 sym = XSYMBOL (variable); 2110 sym = XSYMBOL (variable);
2111 2111
2112 start: 2112 start:
2113 switch (sym->redirect) 2113 switch (sym->u.s.redirect)
2114 { 2114 {
2115 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 2115 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
2116 case SYMBOL_PLAINVAL: return Qnil; 2116 case SYMBOL_PLAINVAL: return Qnil;
@@ -2145,7 +2145,7 @@ If the current binding is global (the default), the value is nil. */)
2145 find_symbol_value (variable); 2145 find_symbol_value (variable);
2146 2146
2147 start: 2147 start:
2148 switch (sym->redirect) 2148 switch (sym->u.s.redirect)
2149 { 2149 {
2150 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start; 2150 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
2151 case SYMBOL_PLAINVAL: return Qnil; 2151 case SYMBOL_PLAINVAL: return Qnil;
@@ -2163,7 +2163,7 @@ If the current binding is global (the default), the value is nil. */)
2163 buffer's or frame's value we are saving. */ 2163 buffer's or frame's value we are saving. */
2164 if (!NILP (Flocal_variable_p (variable, Qnil))) 2164 if (!NILP (Flocal_variable_p (variable, Qnil)))
2165 return Fcurrent_buffer (); 2165 return Fcurrent_buffer ();
2166 else if (sym->redirect == SYMBOL_LOCALIZED 2166 else if (sym->u.s.redirect == SYMBOL_LOCALIZED
2167 && blv_found (SYMBOL_BLV (sym))) 2167 && blv_found (SYMBOL_BLV (sym)))
2168 return SYMBOL_BLV (sym)->where; 2168 return SYMBOL_BLV (sym)->where;
2169 else 2169 else
@@ -2234,12 +2234,12 @@ indirect_function (register Lisp_Object object)
2234 { 2234 {
2235 if (!SYMBOLP (hare) || NILP (hare)) 2235 if (!SYMBOLP (hare) || NILP (hare))
2236 break; 2236 break;
2237 hare = XSYMBOL (hare)->function; 2237 hare = XSYMBOL (hare)->u.s.function;
2238 if (!SYMBOLP (hare) || NILP (hare)) 2238 if (!SYMBOLP (hare) || NILP (hare))
2239 break; 2239 break;
2240 hare = XSYMBOL (hare)->function; 2240 hare = XSYMBOL (hare)->u.s.function;
2241 2241
2242 tortoise = XSYMBOL (tortoise)->function; 2242 tortoise = XSYMBOL (tortoise)->u.s.function;
2243 2243
2244 if (EQ (hare, tortoise)) 2244 if (EQ (hare, tortoise))
2245 xsignal1 (Qcyclic_function_indirection, object); 2245 xsignal1 (Qcyclic_function_indirection, object);
@@ -2261,7 +2261,7 @@ function chain of symbols. */)
2261 /* Optimize for no indirection. */ 2261 /* Optimize for no indirection. */
2262 result = object; 2262 result = object;
2263 if (SYMBOLP (result) && !NILP (result) 2263 if (SYMBOLP (result) && !NILP (result)
2264 && (result = XSYMBOL (result)->function, SYMBOLP (result))) 2264 && (result = XSYMBOL (result)->u.s.function, SYMBOLP (result)))
2265 result = indirect_function (result); 2265 result = indirect_function (result);
2266 if (!NILP (result)) 2266 if (!NILP (result))
2267 return result; 2267 return result;
@@ -3894,7 +3894,7 @@ syms_of_data (void)
3894 defsubr (&Sbool_vector_count_consecutive); 3894 defsubr (&Sbool_vector_count_consecutive);
3895 defsubr (&Sbool_vector_count_population); 3895 defsubr (&Sbool_vector_count_population);
3896 3896
3897 set_symbol_function (Qwholenump, XSYMBOL (Qnatnump)->function); 3897 set_symbol_function (Qwholenump, XSYMBOL (Qnatnump)->u.s.function);
3898 3898
3899 DEFVAR_LISP ("most-positive-fixnum", Vmost_positive_fixnum, 3899 DEFVAR_LISP ("most-positive-fixnum", Vmost_positive_fixnum,
3900 doc: /* The largest value that is representable in a Lisp integer. */); 3900 doc: /* The largest value that is representable in a Lisp integer. */);