'Add a new sdesc to object, replacing the old one.
Args:
sdesc (str): The sdesc to set. This may be stripped
of control sequences before setting.
max_length (int, optional): The max limit of the sdesc.
Returns:
sdesc (str): The actually set sdesc.
Raises:
SdescError: If the sdesc is empty, can not be set or is
longer than `max_length`.'

def add(self, sdesc, max_length=60):

    sdesc = _RE_REF.sub('\\1', _RE_REF_LANG.sub('\\1', _RE_SELF_REF.sub('', _RE_LANGUAGE.sub('', _RE_OBJ_REF_START.sub('', sdesc)))))
    cleaned_sdesc = ansi.strip_ansi(sdesc)
    if (not cleaned_sdesc):
        raise SdescError('Short    desc    cannot    be    empty.')
    if (len(cleaned_sdesc) > max_length):
        raise SdescError(('Short    desc    can    max    be    %i    chars    long    (was    %i    chars).' % (max_length, len(cleaned_sdesc))))
    sdesc_regex = ordered_permutation_regex(cleaned_sdesc)
    self.obj.attributes.add('_sdesc', sdesc)
    self.obj.attributes.add('_sdesc_regex', sdesc_regex)
    self.sdesc = sdesc
    self.sdesc_regex = re.compile(sdesc_regex, _RE_FLAGS)
    return sdesc
