Mercurial > emacs
comparison src/data.c @ 89909:68c22ea6027c
Sync to HEAD
| author | Kenichi Handa <handa@m17n.org> |
|---|---|
| date | Fri, 16 Apr 2004 12:51:06 +0000 |
| parents | 58eb89f2fdfc |
| children | 4c90ffeb71c5 |
comparison
equal
deleted
inserted
replaced
| 89908:ee1402f7b568 | 89909:68c22ea6027c |
|---|---|
| 1 /* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter. | 1 /* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter. |
| 2 Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001, 2003 | 2 Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001, 03, 2004 |
| 3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
| 4 | 4 |
| 5 This file is part of GNU Emacs. | 5 This file is part of GNU Emacs. |
| 6 | 6 |
| 7 GNU Emacs is free software; you can redistribute it and/or modify | 7 GNU Emacs is free software; you can redistribute it and/or modify |
| 69 Lisp_Object Qsetting_constant, Qinvalid_read_syntax; | 69 Lisp_Object Qsetting_constant, Qinvalid_read_syntax; |
| 70 Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch; | 70 Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch; |
| 71 Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive; | 71 Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive; |
| 72 Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; | 72 Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only; |
| 73 Lisp_Object Qtext_read_only; | 73 Lisp_Object Qtext_read_only; |
| 74 | |
| 74 Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp; | 75 Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp; |
| 75 Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; | 76 Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; |
| 76 Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp; | 77 Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp; |
| 77 Lisp_Object Qbuffer_or_string_p, Qkeywordp; | 78 Lisp_Object Qbuffer_or_string_p, Qkeywordp; |
| 78 Lisp_Object Qboundp, Qfboundp; | 79 Lisp_Object Qboundp, Qfboundp; |
| 85 Lisp_Object Qoverflow_error, Qunderflow_error; | 86 Lisp_Object Qoverflow_error, Qunderflow_error; |
| 86 | 87 |
| 87 Lisp_Object Qfloatp; | 88 Lisp_Object Qfloatp; |
| 88 Lisp_Object Qnumberp, Qnumber_or_marker_p; | 89 Lisp_Object Qnumberp, Qnumber_or_marker_p; |
| 89 | 90 |
| 90 static Lisp_Object Qinteger, Qsymbol, Qstring, Qcons, Qmarker, Qoverlay; | 91 Lisp_Object Qinteger; |
| 92 static Lisp_Object Qsymbol, Qstring, Qcons, Qmarker, Qoverlay; | |
| 91 static Lisp_Object Qfloat, Qwindow_configuration, Qwindow; | 93 static Lisp_Object Qfloat, Qwindow_configuration, Qwindow; |
| 92 Lisp_Object Qprocess; | 94 Lisp_Object Qprocess; |
| 93 static Lisp_Object Qcompiled_function, Qbuffer, Qframe, Qvector; | 95 static Lisp_Object Qcompiled_function, Qbuffer, Qframe, Qvector; |
| 94 static Lisp_Object Qchar_table, Qbool_vector, Qhash_table; | 96 static Lisp_Object Qchar_table, Qbool_vector, Qhash_table; |
| 95 static Lisp_Object Qsubrp, Qmany, Qunevalled; | 97 static Lisp_Object Qsubrp, Qmany, Qunevalled; |
| 726 Fput (symbol, Qfunction_documentation, docstring); | 728 Fput (symbol, Qfunction_documentation, docstring); |
| 727 return definition; | 729 return definition; |
| 728 } | 730 } |
| 729 | 731 |
| 730 DEFUN ("setplist", Fsetplist, Ssetplist, 2, 2, 0, | 732 DEFUN ("setplist", Fsetplist, Ssetplist, 2, 2, 0, |
| 731 doc: /* Set SYMBOL's property list to NEWVAL, and return NEWVAL. */) | 733 doc: /* Set SYMBOL's property list to NEWPLIST, and return NEWPLIST. */) |
| 732 (symbol, newplist) | 734 (symbol, newplist) |
| 733 register Lisp_Object symbol, newplist; | 735 register Lisp_Object symbol, newplist; |
| 734 { | 736 { |
| 735 CHECK_SYMBOL (symbol); | 737 CHECK_SYMBOL (symbol); |
| 736 XSYMBOL (symbol)->plist = newplist; | 738 XSYMBOL (symbol)->plist = newplist; |
| 757 return Fcons (make_number (minargs), Qunevalled); | 759 return Fcons (make_number (minargs), Qunevalled); |
| 758 else | 760 else |
| 759 return Fcons (make_number (minargs), make_number (maxargs)); | 761 return Fcons (make_number (minargs), make_number (maxargs)); |
| 760 } | 762 } |
| 761 | 763 |
| 762 DEFUN ("subr-interactive-form", Fsubr_interactive_form, Ssubr_interactive_form, 1, 1, 0, | 764 DEFUN ("interactive-form", Finteractive_form, Sinteractive_form, 1, 1, 0, |
| 763 doc: /* Return the interactive form of SUBR or nil if none. | 765 doc: /* Return the interactive form of CMD or nil if none. |
| 764 SUBR must be a built-in function. Value, if non-nil, is a list | 766 CMD must be a command. Value, if non-nil, is a list |
| 765 \(interactive SPEC). */) | 767 \(interactive SPEC). */) |
| 766 (subr) | 768 (cmd) |
| 767 Lisp_Object subr; | 769 Lisp_Object cmd; |
| 768 { | 770 { |
| 769 if (!SUBRP (subr)) | 771 Lisp_Object fun = indirect_function (cmd); |
| 770 wrong_type_argument (Qsubrp, subr); | 772 |
| 771 if (XSUBR (subr)->prompt) | 773 if (SUBRP (fun)) |
| 772 return list2 (Qinteractive, build_string (XSUBR (subr)->prompt)); | 774 { |
| 775 if (XSUBR (fun)->prompt) | |
| 776 return list2 (Qinteractive, build_string (XSUBR (fun)->prompt)); | |
| 777 } | |
| 778 else if (COMPILEDP (fun)) | |
| 779 { | |
| 780 if ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE) | |
| 781 return list2 (Qinteractive, AREF (fun, COMPILED_INTERACTIVE)); | |
| 782 } | |
| 783 else if (CONSP (fun)) | |
| 784 { | |
| 785 Lisp_Object funcar = XCAR (fun); | |
| 786 if (EQ (funcar, Qlambda)) | |
| 787 return Fassq (Qinteractive, Fcdr (XCDR (fun))); | |
| 788 else if (EQ (funcar, Qautoload)) | |
| 789 { | |
| 790 struct gcpro gcpro1; | |
| 791 GCPRO1 (cmd); | |
| 792 do_autoload (fun, cmd); | |
| 793 UNGCPRO; | |
| 794 return Finteractive_form (cmd); | |
| 795 } | |
| 796 } | |
| 773 return Qnil; | 797 return Qnil; |
| 774 } | 798 } |
| 775 | 799 |
| 776 | 800 |
| 777 /*********************************************************************** | 801 /*********************************************************************** |
| 869 store_symval_forwarding (symbol, valcontents, newval, buf) | 893 store_symval_forwarding (symbol, valcontents, newval, buf) |
| 870 Lisp_Object symbol; | 894 Lisp_Object symbol; |
| 871 register Lisp_Object valcontents, newval; | 895 register Lisp_Object valcontents, newval; |
| 872 struct buffer *buf; | 896 struct buffer *buf; |
| 873 { | 897 { |
| 898 int offset; | |
| 899 | |
| 874 switch (SWITCH_ENUM_CAST (XTYPE (valcontents))) | 900 switch (SWITCH_ENUM_CAST (XTYPE (valcontents))) |
| 875 { | 901 { |
| 876 case Lisp_Misc: | 902 case Lisp_Misc: |
| 877 switch (XMISCTYPE (valcontents)) | 903 switch (XMISCTYPE (valcontents)) |
| 878 { | 904 { |
| 888 *XBOOLFWD (valcontents)->boolvar = NILP (newval) ? 0 : 1; | 914 *XBOOLFWD (valcontents)->boolvar = NILP (newval) ? 0 : 1; |
| 889 break; | 915 break; |
| 890 | 916 |
| 891 case Lisp_Misc_Objfwd: | 917 case Lisp_Misc_Objfwd: |
| 892 *XOBJFWD (valcontents)->objvar = newval; | 918 *XOBJFWD (valcontents)->objvar = newval; |
| 919 | |
| 920 /* If this variable is a default for something stored | |
| 921 in the buffer itself, such as default-fill-column, | |
| 922 find the buffers that don't have local values for it | |
| 923 and update them. */ | |
| 924 if (XOBJFWD (valcontents)->objvar > (Lisp_Object *) &buffer_defaults | |
| 925 && XOBJFWD (valcontents)->objvar < (Lisp_Object *) (&buffer_defaults + 1)) | |
| 926 { | |
| 927 int offset = ((char *) XOBJFWD (valcontents)->objvar | |
| 928 - (char *) &buffer_defaults); | |
| 929 int idx = PER_BUFFER_IDX (offset); | |
| 930 | |
| 931 Lisp_Object tail, buf; | |
| 932 | |
| 933 if (idx <= 0) | |
| 934 break; | |
| 935 | |
| 936 for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) | |
| 937 { | |
| 938 Lisp_Object buf; | |
| 939 struct buffer *b; | |
| 940 | |
| 941 buf = Fcdr (XCAR (tail)); | |
| 942 if (!BUFFERP (buf)) continue; | |
| 943 b = XBUFFER (buf); | |
| 944 | |
| 945 if (! PER_BUFFER_VALUE_P (b, idx)) | |
| 946 PER_BUFFER_VALUE (b, offset) = newval; | |
| 947 } | |
| 948 } | |
| 893 break; | 949 break; |
| 894 | 950 |
| 895 case Lisp_Misc_Buffer_Objfwd: | 951 case Lisp_Misc_Buffer_Objfwd: |
| 896 { | 952 { |
| 897 int offset = XBUFFER_OBJFWD (valcontents)->offset; | 953 int offset = XBUFFER_OBJFWD (valcontents)->offset; |
| 1447 register Lisp_Object variable; | 1503 register Lisp_Object variable; |
| 1448 { | 1504 { |
| 1449 register Lisp_Object tem, valcontents, newval; | 1505 register Lisp_Object tem, valcontents, newval; |
| 1450 | 1506 |
| 1451 CHECK_SYMBOL (variable); | 1507 CHECK_SYMBOL (variable); |
| 1508 variable = indirect_variable (variable); | |
| 1452 | 1509 |
| 1453 valcontents = SYMBOL_VALUE (variable); | 1510 valcontents = SYMBOL_VALUE (variable); |
| 1454 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents)) | 1511 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents)) |
| 1455 error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable))); | 1512 error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable))); |
| 1456 | 1513 |
| 1500 register Lisp_Object variable; | 1557 register Lisp_Object variable; |
| 1501 { | 1558 { |
| 1502 register Lisp_Object tem, valcontents; | 1559 register Lisp_Object tem, valcontents; |
| 1503 | 1560 |
| 1504 CHECK_SYMBOL (variable); | 1561 CHECK_SYMBOL (variable); |
| 1562 variable = indirect_variable (variable); | |
| 1505 | 1563 |
| 1506 valcontents = SYMBOL_VALUE (variable); | 1564 valcontents = SYMBOL_VALUE (variable); |
| 1507 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents)) | 1565 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents)) |
| 1508 error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable))); | 1566 error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable))); |
| 1509 | 1567 |
| 1579 register Lisp_Object variable; | 1637 register Lisp_Object variable; |
| 1580 { | 1638 { |
| 1581 register Lisp_Object tem, valcontents; | 1639 register Lisp_Object tem, valcontents; |
| 1582 | 1640 |
| 1583 CHECK_SYMBOL (variable); | 1641 CHECK_SYMBOL (variable); |
| 1642 variable = indirect_variable (variable); | |
| 1584 | 1643 |
| 1585 valcontents = SYMBOL_VALUE (variable); | 1644 valcontents = SYMBOL_VALUE (variable); |
| 1586 | 1645 |
| 1587 if (BUFFER_OBJFWDP (valcontents)) | 1646 if (BUFFER_OBJFWDP (valcontents)) |
| 1588 { | 1647 { |
| 1643 register Lisp_Object variable; | 1702 register Lisp_Object variable; |
| 1644 { | 1703 { |
| 1645 register Lisp_Object tem, valcontents, newval; | 1704 register Lisp_Object tem, valcontents, newval; |
| 1646 | 1705 |
| 1647 CHECK_SYMBOL (variable); | 1706 CHECK_SYMBOL (variable); |
| 1707 variable = indirect_variable (variable); | |
| 1648 | 1708 |
| 1649 valcontents = SYMBOL_VALUE (variable); | 1709 valcontents = SYMBOL_VALUE (variable); |
| 1650 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents) | 1710 if (EQ (variable, Qnil) || EQ (variable, Qt) || KBOARD_OBJFWDP (valcontents) |
| 1651 || BUFFER_OBJFWDP (valcontents)) | 1711 || BUFFER_OBJFWDP (valcontents)) |
| 1652 error ("Symbol %s may not be frame-local", SDATA (SYMBOL_NAME (variable))); | 1712 error ("Symbol %s may not be frame-local", SDATA (SYMBOL_NAME (variable))); |
| 1692 CHECK_BUFFER (buffer); | 1752 CHECK_BUFFER (buffer); |
| 1693 buf = XBUFFER (buffer); | 1753 buf = XBUFFER (buffer); |
| 1694 } | 1754 } |
| 1695 | 1755 |
| 1696 CHECK_SYMBOL (variable); | 1756 CHECK_SYMBOL (variable); |
| 1757 variable = indirect_variable (variable); | |
| 1697 | 1758 |
| 1698 valcontents = SYMBOL_VALUE (variable); | 1759 valcontents = SYMBOL_VALUE (variable); |
| 1699 if (BUFFER_LOCAL_VALUEP (valcontents) | 1760 if (BUFFER_LOCAL_VALUEP (valcontents) |
| 1700 || SOME_BUFFER_LOCAL_VALUEP (valcontents)) | 1761 || SOME_BUFFER_LOCAL_VALUEP (valcontents)) |
| 1701 { | 1762 { |
| 1702 Lisp_Object tail, elt; | 1763 Lisp_Object tail, elt; |
| 1703 | 1764 |
| 1704 variable = indirect_variable (variable); | |
| 1705 for (tail = buf->local_var_alist; CONSP (tail); tail = XCDR (tail)) | 1765 for (tail = buf->local_var_alist; CONSP (tail); tail = XCDR (tail)) |
| 1706 { | 1766 { |
| 1707 elt = XCAR (tail); | 1767 elt = XCAR (tail); |
| 1708 if (EQ (variable, XCAR (elt))) | 1768 if (EQ (variable, XCAR (elt))) |
| 1709 return Qt; | 1769 return Qt; |
| 1736 CHECK_BUFFER (buffer); | 1796 CHECK_BUFFER (buffer); |
| 1737 buf = XBUFFER (buffer); | 1797 buf = XBUFFER (buffer); |
| 1738 } | 1798 } |
| 1739 | 1799 |
| 1740 CHECK_SYMBOL (variable); | 1800 CHECK_SYMBOL (variable); |
| 1801 variable = indirect_variable (variable); | |
| 1741 | 1802 |
| 1742 valcontents = SYMBOL_VALUE (variable); | 1803 valcontents = SYMBOL_VALUE (variable); |
| 1743 | 1804 |
| 1744 /* This means that make-variable-buffer-local was done. */ | 1805 /* This means that make-variable-buffer-local was done. */ |
| 1745 if (BUFFER_LOCAL_VALUEP (valcontents)) | 1806 if (BUFFER_LOCAL_VALUEP (valcontents)) |
| 1755 elt = XCAR (tail); | 1816 elt = XCAR (tail); |
| 1756 if (EQ (variable, XCAR (elt))) | 1817 if (EQ (variable, XCAR (elt))) |
| 1757 return Qt; | 1818 return Qt; |
| 1758 } | 1819 } |
| 1759 } | 1820 } |
| 1821 return Qnil; | |
| 1822 } | |
| 1823 | |
| 1824 DEFUN ("variable-binding-locus", Fvariable_binding_locus, Svariable_binding_locus, | |
| 1825 1, 1, 0, | |
| 1826 doc: /* Return a value indicating where VARIABLE's current binding comes from. | |
| 1827 If the current binding is buffer-local, the value is the current buffer. | |
| 1828 If the current binding is frame-local, the value is the selected frame. | |
| 1829 If the current binding is global (the default), the value is nil. */) | |
| 1830 (variable) | |
| 1831 register Lisp_Object variable; | |
| 1832 { | |
| 1833 Lisp_Object valcontents; | |
| 1834 | |
| 1835 CHECK_SYMBOL (variable); | |
| 1836 variable = indirect_variable (variable); | |
| 1837 | |
| 1838 /* Make sure the current binding is actually swapped in. */ | |
| 1839 find_symbol_value (variable); | |
| 1840 | |
| 1841 valcontents = XSYMBOL (variable)->value; | |
| 1842 | |
| 1843 if (BUFFER_LOCAL_VALUEP (valcontents) | |
| 1844 || SOME_BUFFER_LOCAL_VALUEP (valcontents) | |
| 1845 || BUFFER_OBJFWDP (valcontents)) | |
| 1846 { | |
| 1847 /* For a local variable, record both the symbol and which | |
| 1848 buffer's or frame's value we are saving. */ | |
| 1849 if (!NILP (Flocal_variable_p (variable, Qnil))) | |
| 1850 return Fcurrent_buffer (); | |
| 1851 else if (!BUFFER_OBJFWDP (valcontents) | |
| 1852 && XBUFFER_LOCAL_VALUE (valcontents)->found_for_frame) | |
| 1853 return XBUFFER_LOCAL_VALUE (valcontents)->frame; | |
| 1854 } | |
| 1855 | |
| 1760 return Qnil; | 1856 return Qnil; |
| 1761 } | 1857 } |
| 1762 | 1858 |
| 1763 /* Find the function at the end of a chain of symbol function indirections. */ | 1859 /* Find the function at the end of a chain of symbol function indirections. */ |
| 1764 | 1860 |
| 2699 { | 2795 { |
| 2700 CHECK_NUMBER (number); | 2796 CHECK_NUMBER (number); |
| 2701 XSETINT (number, ~XINT (number)); | 2797 XSETINT (number, ~XINT (number)); |
| 2702 return number; | 2798 return number; |
| 2703 } | 2799 } |
| 2800 | |
| 2801 DEFUN ("byteorder", Fbyteorder, Sbyteorder, 0, 0, 0, | |
| 2802 doc: /* Return the byteorder for the machine. | |
| 2803 Returns 66 (ASCII uppercase B) for big endian machines or 108 (ASCII | |
| 2804 lowercase l) for small endian machines. */) | |
| 2805 () | |
| 2806 { | |
| 2807 unsigned i = 0x04030201; | |
| 2808 int order = *(char *)&i == 1 ? 108 : 66; | |
| 2809 | |
| 2810 return make_number (order); | |
| 2811 } | |
| 2812 | |
| 2813 | |
| 2704 | 2814 |
| 2705 void | 2815 void |
| 2706 syms_of_data () | 2816 syms_of_data () |
| 2707 { | 2817 { |
| 2708 Lisp_Object error_tail, arith_tail; | 2818 Lisp_Object error_tail, arith_tail; |
| 3015 staticpro (&Qchar_table); | 3125 staticpro (&Qchar_table); |
| 3016 staticpro (&Qbool_vector); | 3126 staticpro (&Qbool_vector); |
| 3017 staticpro (&Qhash_table); | 3127 staticpro (&Qhash_table); |
| 3018 | 3128 |
| 3019 defsubr (&Sindirect_variable); | 3129 defsubr (&Sindirect_variable); |
| 3020 defsubr (&Ssubr_interactive_form); | 3130 defsubr (&Sinteractive_form); |
| 3021 defsubr (&Seq); | 3131 defsubr (&Seq); |
| 3022 defsubr (&Snull); | 3132 defsubr (&Snull); |
| 3023 defsubr (&Stype_of); | 3133 defsubr (&Stype_of); |
| 3024 defsubr (&Slistp); | 3134 defsubr (&Slistp); |
| 3025 defsubr (&Snlistp); | 3135 defsubr (&Snlistp); |
| 3073 defsubr (&Smake_local_variable); | 3183 defsubr (&Smake_local_variable); |
| 3074 defsubr (&Skill_local_variable); | 3184 defsubr (&Skill_local_variable); |
| 3075 defsubr (&Smake_variable_frame_local); | 3185 defsubr (&Smake_variable_frame_local); |
| 3076 defsubr (&Slocal_variable_p); | 3186 defsubr (&Slocal_variable_p); |
| 3077 defsubr (&Slocal_variable_if_set_p); | 3187 defsubr (&Slocal_variable_if_set_p); |
| 3188 defsubr (&Svariable_binding_locus); | |
| 3078 defsubr (&Saref); | 3189 defsubr (&Saref); |
| 3079 defsubr (&Saset); | 3190 defsubr (&Saset); |
| 3080 defsubr (&Snumber_to_string); | 3191 defsubr (&Snumber_to_string); |
| 3081 defsubr (&Sstring_to_number); | 3192 defsubr (&Sstring_to_number); |
| 3082 defsubr (&Seqlsign); | 3193 defsubr (&Seqlsign); |
| 3100 defsubr (&Slsh); | 3211 defsubr (&Slsh); |
| 3101 defsubr (&Sash); | 3212 defsubr (&Sash); |
| 3102 defsubr (&Sadd1); | 3213 defsubr (&Sadd1); |
| 3103 defsubr (&Ssub1); | 3214 defsubr (&Ssub1); |
| 3104 defsubr (&Slognot); | 3215 defsubr (&Slognot); |
| 3216 defsubr (&Sbyteorder); | |
| 3105 defsubr (&Ssubr_arity); | 3217 defsubr (&Ssubr_arity); |
| 3106 | 3218 |
| 3107 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function; | 3219 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function; |
| 3108 | 3220 |
| 3109 DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum, | 3221 DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum, |
| 3152 | 3264 |
| 3153 #ifdef uts | 3265 #ifdef uts |
| 3154 signal (SIGEMT, arith_error); | 3266 signal (SIGEMT, arith_error); |
| 3155 #endif /* uts */ | 3267 #endif /* uts */ |
| 3156 } | 3268 } |
| 3269 | |
| 3270 /* arch-tag: 25879798-b84d-479a-9c89-7d148e2109f7 | |
| 3271 (do not change this comment) */ |
