diff options
| author | Richard M. Stallman | 1998-01-09 23:17:00 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1998-01-09 23:17:00 +0000 |
| commit | a1b5012f8aada770dda68c83afd8880fbda9f356 (patch) | |
| tree | 9f424a4381a05300aeb65bea4dfdbf1ae49ddf18 /src/lisp.h | |
| parent | f3ba54094e9f22ff95216f8aa0b528125591ea52 (diff) | |
| download | emacs-a1b5012f8aada770dda68c83afd8880fbda9f356.tar.gz emacs-a1b5012f8aada770dda68c83afd8880fbda9f356.zip | |
(STRING_MULTIBYTE): New macro.
(struct lisp_String): New field size_byte.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/lisp.h b/src/lisp.h index c5b9c815852..272ef009a7f 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -540,11 +540,16 @@ struct Lisp_Buffer_Cons | |||
| 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 | }; |
| @@ -1511,6 +1516,7 @@ 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); |
| @@ -1595,6 +1601,7 @@ 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); |
| @@ -1607,6 +1614,8 @@ 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); |
| @@ -1628,6 +1637,7 @@ 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); |
| @@ -1656,6 +1666,8 @@ 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); |
| @@ -1679,16 +1691,19 @@ EXFUN (Ftruncate, 2); | |||
| 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)); |
| @@ -1710,13 +1725,15 @@ 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)); |
| @@ -1742,10 +1759,12 @@ 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); |
| @@ -1802,7 +1821,7 @@ 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; |