diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 7 |
1 files changed, 5 insertions, 2 deletions
| @@ -1766,6 +1766,9 @@ changing the value of a sequence `foo'. */) | |||
| 1766 | } | 1766 | } |
| 1767 | else if (STRINGP (seq)) | 1767 | else if (STRINGP (seq)) |
| 1768 | { | 1768 | { |
| 1769 | if (!CHARACTERP (elt)) | ||
| 1770 | return seq; | ||
| 1771 | |||
| 1769 | ptrdiff_t i, ibyte, nchars, nbytes, cbytes; | 1772 | ptrdiff_t i, ibyte, nchars, nbytes, cbytes; |
| 1770 | int c; | 1773 | int c; |
| 1771 | 1774 | ||
| @@ -1784,7 +1787,7 @@ changing the value of a sequence `foo'. */) | |||
| 1784 | cbytes = 1; | 1787 | cbytes = 1; |
| 1785 | } | 1788 | } |
| 1786 | 1789 | ||
| 1787 | if (!FIXNUMP (elt) || c != XFIXNUM (elt)) | 1790 | if (c != XFIXNUM (elt)) |
| 1788 | { | 1791 | { |
| 1789 | ++nchars; | 1792 | ++nchars; |
| 1790 | nbytes += cbytes; | 1793 | nbytes += cbytes; |
| @@ -1814,7 +1817,7 @@ changing the value of a sequence `foo'. */) | |||
| 1814 | cbytes = 1; | 1817 | cbytes = 1; |
| 1815 | } | 1818 | } |
| 1816 | 1819 | ||
| 1817 | if (!FIXNUMP (elt) || c != XFIXNUM (elt)) | 1820 | if (c != XFIXNUM (elt)) |
| 1818 | { | 1821 | { |
| 1819 | unsigned char *from = SDATA (seq) + ibyte; | 1822 | unsigned char *from = SDATA (seq) + ibyte; |
| 1820 | unsigned char *to = SDATA (tem) + nbytes; | 1823 | unsigned char *to = SDATA (tem) + nbytes; |