broken_count_bits()
===================

SYNOPSIS
--------
::

        int count_bits (string str)

DESTRIPTION
-----------
::

        Count the number of set bits in bitstring <str> and return the number
        as result.

NOTE
----
::

	Bitstrings store 6 Bits per Character. Consequently, the functions for
	manipulating bitstrings (see below) do generally not work on most
	strings. An exception is this (s)efun. It accepts strings which are
	not correct bitstrings (like getuid(PL)), BUT: It does NOT work
	correctly on them! The results are NOT the correct number of bits!
	Additionally, count_bits() in LDMud rejects such strings with an error
	instead of returning false results, as all the other functions for
	bitstrings do as well.

EXAMPLES
--------
::

        string s;

        s = set_bit("", 3); s = set_bit(s, 15);

        count_bits(s) --> returns 2

SEE ALSO
--------
::

        clear_bit(E), set_bit(E), test_bit(E), next_bit(E), last_bit(E),
        or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)

19.12.2006, Zesstra

