Mercurial > emacs
comparison src/lisp.h @ 20625:a9c4bf3f4e46
(STRING_MULTIBYTE): New macro.
(struct lisp_String): New field size_byte.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 09 Jan 1998 23:17:00 +0000 |
parents | d8013f2236a0 |
children | ed9ed828415e |
comparison
equal
deleted
inserted
replaced
20624:9ac0b485cf60 | 20625:a9c4bf3f4e46 |
---|---|
538 Lisp_Object car, cdr; | 538 Lisp_Object car, cdr; |
539 struct buffer *buffer; | 539 struct buffer *buffer; |
540 int bufpos; | 540 int bufpos; |
541 }; | 541 }; |
542 | 542 |
543 /* Nonzero if STR is a multibyte string. */ | |
544 #define STRING_MULTIBYTE(STR) \ | |
545 (XSTRING (STR)->size != XSTRING (STR)->size_byte) | |
546 | |
543 /* In a string or vector, the sign bit of the `size' is the gc mark bit */ | 547 /* In a string or vector, the sign bit of the `size' is the gc mark bit */ |
544 | 548 |
545 struct Lisp_String | 549 struct Lisp_String |
546 { | 550 { |
547 EMACS_INT size; | 551 EMACS_INT size; |
552 EMACS_INT size_byte; | |
548 DECLARE_INTERVALS /* `data' field must be last. */ | 553 DECLARE_INTERVALS /* `data' field must be last. */ |
549 unsigned char data[1]; | 554 unsigned char data[1]; |
550 }; | 555 }; |
551 | 556 |
552 /* If a struct is made to look like a vector, this macro returns the length | 557 /* If a struct is made to look like a vector, this macro returns the length |
1509 EXFUN (Fintegerp, 1); | 1514 EXFUN (Fintegerp, 1); |
1510 EXFUN (Fnatnump, 1); | 1515 EXFUN (Fnatnump, 1); |
1511 EXFUN (Fsymbolp, 1); | 1516 EXFUN (Fsymbolp, 1); |
1512 EXFUN (Fvectorp, 1); | 1517 EXFUN (Fvectorp, 1); |
1513 EXFUN (Fstringp, 1); | 1518 EXFUN (Fstringp, 1); |
1519 EXFUN (Fmultibyte_string_p, 1); | |
1514 EXFUN (Farrayp, 1); | 1520 EXFUN (Farrayp, 1); |
1515 EXFUN (Fsequencep, 1); | 1521 EXFUN (Fsequencep, 1); |
1516 EXFUN (Fbufferp, 1); | 1522 EXFUN (Fbufferp, 1); |
1517 EXFUN (Fmarkerp, 1); | 1523 EXFUN (Fmarkerp, 1); |
1518 EXFUN (Fsubrp, 1); | 1524 EXFUN (Fsubrp, 1); |
1593 EXFUN (Fend_of_line, 1); | 1599 EXFUN (Fend_of_line, 1); |
1594 EXFUN (Fforward_char, 1); | 1600 EXFUN (Fforward_char, 1); |
1595 EXFUN (Fforward_line, 1); | 1601 EXFUN (Fforward_line, 1); |
1596 extern int forward_point P_ ((int)); | 1602 extern int forward_point P_ ((int)); |
1597 extern int internal_self_insert P_ ((int, int)); | 1603 extern int internal_self_insert P_ ((int, int)); |
1604 extern int nonascii_insert_offset; | |
1598 | 1605 |
1599 /* Defined in coding.c */ | 1606 /* Defined in coding.c */ |
1600 EXFUN (Fcoding_system_p, 1); | 1607 EXFUN (Fcoding_system_p, 1); |
1601 EXFUN (Fcheck_coding_system, 1); | 1608 EXFUN (Fcheck_coding_system, 1); |
1602 EXFUN (Fread_coding_system, 2); | 1609 EXFUN (Fread_coding_system, 2); |
1605 EXFUN (Fencode_coding_string, 3); | 1612 EXFUN (Fencode_coding_string, 3); |
1606 EXFUN (Fdecode_coding_string, 3); | 1613 EXFUN (Fdecode_coding_string, 3); |
1607 | 1614 |
1608 /* Defined in charset.c */ | 1615 /* Defined in charset.c */ |
1609 EXFUN (Fchar_bytes, 1); | 1616 EXFUN (Fchar_bytes, 1); |
1617 extern int chars_in_text P_ ((unsigned char *, int)); | |
1618 extern int multibyte_chars_in_text P_ ((unsigned char *, int)); | |
1610 | 1619 |
1611 /* Defined in syntax.c */ | 1620 /* Defined in syntax.c */ |
1612 EXFUN (Fforward_word, 1); | 1621 EXFUN (Fforward_word, 1); |
1613 EXFUN (Fskip_chars_forward, 2); | 1622 EXFUN (Fskip_chars_forward, 2); |
1614 EXFUN (Fskip_chars_backward, 2); | 1623 EXFUN (Fskip_chars_backward, 2); |
1626 EXFUN (Fappend, MANY); | 1635 EXFUN (Fappend, MANY); |
1627 EXFUN (Fconcat, MANY); | 1636 EXFUN (Fconcat, MANY); |
1628 EXFUN (Fvconcat, MANY); | 1637 EXFUN (Fvconcat, MANY); |
1629 EXFUN (Fcopy_sequence, 1); | 1638 EXFUN (Fcopy_sequence, 1); |
1630 EXFUN (Fsubstring, 3); | 1639 EXFUN (Fsubstring, 3); |
1640 extern Lisp_Object substring_both P_ ((Lisp_Object, int, int, int, int)); | |
1631 EXFUN (Fnth, 2); | 1641 EXFUN (Fnth, 2); |
1632 EXFUN (Fnthcdr, 2); | 1642 EXFUN (Fnthcdr, 2); |
1633 EXFUN (Fmemq, 2); | 1643 EXFUN (Fmemq, 2); |
1634 EXFUN (Fassq, 2); | 1644 EXFUN (Fassq, 2); |
1635 EXFUN (Fassoc, 2); | 1645 EXFUN (Fassoc, 2); |
1654 EXFUN (Fprovide, 1); | 1664 EXFUN (Fprovide, 1); |
1655 extern Lisp_Object concat2 P_ ((Lisp_Object, Lisp_Object)); | 1665 extern Lisp_Object concat2 P_ ((Lisp_Object, Lisp_Object)); |
1656 extern Lisp_Object concat3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); | 1666 extern Lisp_Object concat3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); |
1657 extern Lisp_Object nconc2 P_ ((Lisp_Object, Lisp_Object)); | 1667 extern Lisp_Object nconc2 P_ ((Lisp_Object, Lisp_Object)); |
1658 extern Lisp_Object assq_no_quit P_ ((Lisp_Object, Lisp_Object)); | 1668 extern Lisp_Object assq_no_quit P_ ((Lisp_Object, Lisp_Object)); |
1669 extern int string_char_to_byte P_ ((Lisp_Object, int)); | |
1670 extern int string_byte_to_char P_ ((Lisp_Object, int)); | |
1659 EXFUN (Fcopy_alist, 1); | 1671 EXFUN (Fcopy_alist, 1); |
1660 EXFUN (Fplist_get, 2); | 1672 EXFUN (Fplist_get, 2); |
1661 EXFUN (Fset_char_table_parent, 2); | 1673 EXFUN (Fset_char_table_parent, 2); |
1662 EXFUN (Fchar_table_extra_slot, 2); | 1674 EXFUN (Fchar_table_extra_slot, 2); |
1663 EXFUN (Fset_char_table_extra_slot, 3); | 1675 EXFUN (Fset_char_table_extra_slot, 3); |
1677 | 1689 |
1678 /* Defined in insdel.c */ | 1690 /* Defined in insdel.c */ |
1679 extern void move_gap P_ ((int)); | 1691 extern void move_gap P_ ((int)); |
1680 extern void move_gap_both P_ ((int, int)); | 1692 extern void move_gap_both P_ ((int, int)); |
1681 extern void make_gap P_ ((int)); | 1693 extern void make_gap P_ ((int)); |
1694 extern int copy_text P_ ((unsigned char *, unsigned char *, int, int, int)); | |
1695 extern int count_size_as_multibyte P_ ((unsigned char *, int)); | |
1682 extern void insert P_ ((unsigned char *, int)); | 1696 extern void insert P_ ((unsigned char *, int)); |
1683 extern void insert_and_inherit P_ ((unsigned char *, int)); | 1697 extern void insert_and_inherit P_ ((unsigned char *, int)); |
1684 extern void insert_1 P_ ((unsigned char *, int, int, int, int)); | 1698 extern void insert_1 P_ ((unsigned char *, int, int, int, int)); |
1685 extern void insert_from_string P_ ((Lisp_Object, int, int, int)); | 1699 extern void insert_1_both P_ ((unsigned char *, int, int, int, int, int)); |
1700 extern void insert_from_string P_ ((Lisp_Object, int, int, int, int, int)); | |
1686 extern void insert_from_buffer P_ ((struct buffer *, int, int, int)); | 1701 extern void insert_from_buffer P_ ((struct buffer *, int, int, int)); |
1687 extern void insert_char P_ ((int)); | 1702 extern void insert_char P_ ((int)); |
1688 extern void insert_string P_ ((char *)); | 1703 extern void insert_string P_ ((char *)); |
1689 extern void insert_before_markers P_ ((unsigned char *, int)); | 1704 extern void insert_before_markers P_ ((unsigned char *, int)); |
1690 extern void insert_before_markers_and_inherit P_ ((unsigned char *, int)); | 1705 extern void insert_before_markers_and_inherit P_ ((unsigned char *, int)); |
1691 extern void insert_from_string_before_markers P_ ((Lisp_Object, int, int, int)); | 1706 extern void insert_from_string_before_markers P_ ((Lisp_Object, int, int, int, int, int)); |
1692 extern void del_range P_ ((int, int)); | 1707 extern void del_range P_ ((int, int)); |
1693 extern void del_range_1 P_ ((int, int, int)); | 1708 extern void del_range_1 P_ ((int, int, int)); |
1694 extern void del_range_byte P_ ((int, int, int)); | 1709 extern void del_range_byte P_ ((int, int, int)); |
1695 extern void del_range_both P_ ((int, int, int, int, int)); | 1710 extern void del_range_both P_ ((int, int, int, int, int)); |
1696 extern void del_range_2 P_ ((int, int, int, int)); | 1711 extern void del_range_2 P_ ((int, int, int, int)); |
1708 extern Lisp_Object sit_for P_ ((int, int, int, int, int)); | 1723 extern Lisp_Object sit_for P_ ((int, int, int, int, int)); |
1709 extern void quit_error_check P_ ((void)); | 1724 extern void quit_error_check P_ ((void)); |
1710 | 1725 |
1711 /* Defined in xdisp.c */ | 1726 /* Defined in xdisp.c */ |
1712 extern Lisp_Object Vmessage_log_max; | 1727 extern Lisp_Object Vmessage_log_max; |
1728 extern int message_enable_multibyte; | |
1713 extern void message P_ ((/* char *, ... */)); | 1729 extern void message P_ ((/* char *, ... */)); |
1714 extern void message_nolog P_ ((/* char *, ... */)); | 1730 extern void message_nolog P_ ((/* char *, ... */)); |
1715 extern void message1 P_ ((char *)); | 1731 extern void message1 P_ ((char *)); |
1716 extern void message1_nolog P_ ((char *)); | 1732 extern void message1_nolog P_ ((char *)); |
1717 extern void message2 P_ ((char *, int)); | 1733 extern void message2 P_ ((char *, int, int)); |
1718 extern void message2_nolog P_ ((char *, int, int)); | 1734 extern void message2_nolog P_ ((char *, int, int)); |
1719 extern void message_dolog P_ ((char *, int, int)); | 1735 extern void message_dolog P_ ((char *, int, int, int)); |
1736 extern void message_with_string P_ ((char *, Lisp_Object, int)); | |
1720 extern void message_log_maybe_newline P_ ((void)); | 1737 extern void message_log_maybe_newline P_ ((void)); |
1721 extern void update_echo_area P_ ((void)); | 1738 extern void update_echo_area P_ ((void)); |
1722 extern void truncate_echo_area P_ ((int)); | 1739 extern void truncate_echo_area P_ ((int)); |
1723 extern void redisplay P_ ((void)); | 1740 extern void redisplay P_ ((void)); |
1724 extern void redisplay_preserve_echo_area P_ ((void)); | 1741 extern void redisplay_preserve_echo_area P_ ((void)); |
1740 EXFUN (Fmake_symbol, 1); | 1757 EXFUN (Fmake_symbol, 1); |
1741 EXFUN (Fmake_marker, 0); | 1758 EXFUN (Fmake_marker, 0); |
1742 EXFUN (Fmake_string, 2); | 1759 EXFUN (Fmake_string, 2); |
1743 extern Lisp_Object build_string P_ ((char *)); | 1760 extern Lisp_Object build_string P_ ((char *)); |
1744 extern Lisp_Object make_string P_ ((char *, int)); | 1761 extern Lisp_Object make_string P_ ((char *, int)); |
1762 extern Lisp_Object make__multibytestring P_ ((char *, int, int)); | |
1745 extern Lisp_Object make_event_array P_ ((int, Lisp_Object *)); | 1763 extern Lisp_Object make_event_array P_ ((int, Lisp_Object *)); |
1746 extern Lisp_Object make_uninit_string P_ ((int)); | 1764 extern Lisp_Object make_uninit_string P_ ((int)); |
1765 extern Lisp_Object make_uninit_multibyte_string P_ ((int, int)); | |
1747 EXFUN (Fpurecopy, 1); | 1766 EXFUN (Fpurecopy, 1); |
1748 extern Lisp_Object make_pure_string P_ ((char *, int)); | 1767 extern Lisp_Object make_pure_string P_ ((char *, int, int)); |
1749 extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); | 1768 extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); |
1750 extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); | 1769 extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); |
1751 EXFUN (Fgarbage_collect, 0); | 1770 EXFUN (Fgarbage_collect, 0); |
1752 EXFUN (Fmake_byte_code, MANY); | 1771 EXFUN (Fmake_byte_code, MANY); |
1753 EXFUN (Fmake_bool_vector, 2); | 1772 EXFUN (Fmake_bool_vector, 2); |
1800 EXFUN (Fread_char, 0); | 1819 EXFUN (Fread_char, 0); |
1801 extern Lisp_Object read_filtered_event P_ ((int, int, int)); | 1820 extern Lisp_Object read_filtered_event P_ ((int, int, int)); |
1802 EXFUN (Feval_region, 3); | 1821 EXFUN (Feval_region, 3); |
1803 extern Lisp_Object intern P_ ((char *)); | 1822 extern Lisp_Object intern P_ ((char *)); |
1804 extern Lisp_Object make_symbol P_ ((char *)); | 1823 extern Lisp_Object make_symbol P_ ((char *)); |
1805 extern Lisp_Object oblookup P_ ((Lisp_Object, char *, int)); | 1824 extern Lisp_Object oblookup P_ ((Lisp_Object, char *, int, int)); |
1806 #define LOADHIST_ATTACH(x) \ | 1825 #define LOADHIST_ATTACH(x) \ |
1807 if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list) | 1826 if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list) |
1808 extern Lisp_Object Vcurrent_load_list; | 1827 extern Lisp_Object Vcurrent_load_list; |
1809 extern Lisp_Object Vload_history; | 1828 extern Lisp_Object Vload_history; |
1810 extern int openp P_ ((Lisp_Object, Lisp_Object, char *, Lisp_Object *, int)); | 1829 extern int openp P_ ((Lisp_Object, Lisp_Object, char *, Lisp_Object *, int)); |