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
