
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
