| SYNOPSIS |
| string copy_bits(string src, string dest |
| [, int srcstart [, int deststart [, int copylen ]]]) |
| |
| DESCRIPTION |
| Copy the bitrange [<srcstart>..<srcstart>+<copylen>[ from |
| bitstring <src> and copy it into the bitstring <dest> starting |
| at <deststart>, overwriting the original bits at those positions. |
| |
| The resulting combined string is returned, the input strings remain |
| unaffected. |
| |
| If <srcstart> is not given, <src> is copied from the start. |
| If <srcstart> is negative, it is counted from one past the last set |
| bit in the string (ie. '-1' will index the last set bit). |
| |
| If <deststart> is not given, <dest> will be overwritten from the start. |
| If <deststart> is negative, it is counted from one past the last set |
| bit in the string (ie. '-1' will index the last set bit). |
| |
| If <copylen> is not given, it is assumed to be infinite, ie. the result |
| will consist of <dest> up to position <deststart>, followed by |
| the data copied from <src>. |
| If <copylen> is negative, the function will copy the abs(<copylen>) |
| bits _before_ <srcstart> in to the result. |
| |
| None of the range limits can become negative. |
| |
| EXAMPLES |
| copy_bits(src, dest, 10) === src[10..] |
| copy_bits(src, dest, 10, 5) === dest[0..4] + src[10..] |
| copy_bits(src, dest, 10, 5, 3) |
| === dest[0..4] + src[10..12] + dest[8..] |
| |
| (The src[]/dest[] is just for explanatory purposes!) |
| |
| HISTORY |
| Introduced in LDMud 3.3.166. |
| |
| SEE ALSO |
| clear_bit(E), set_bit(E), test_bit(E), next_bit(E), last_bit(E), |
| count_bits(E), or_bits(E), xor_bits(E), invert_bits(E), and_bits(E) |