          if (ISNOTSPECIAL(charcode))
          {
#ifdef WITHEQUALLENGTH_DES_SSP
            lengthofcurrentsequence++;
#endif
            if (specialprefix)
            {
              specialprefix = false;
            }
            if (wildcardprefix)
            {
              wildcardprefix = false;
            }
            if (lastspecialrangelength > 0)
            {
              gt_disc_distri_add(distspecialrangelength,
                                 lastspecialrangelength);
              lastspecialrangelength = 0;
            }
            if (lastwildcardrangelength > 0)
            {
              gt_disc_distri_add(distwildcardrangelength,
                                 lastwildcardrangelength);
              lastwildcardrangelength = 0;
            }
            lastnonspecialrangelength++;
            if (md5enc != NULL) {
              if (md5_blockcount == 64UL) {
                gt_md5_encoder_add_block(md5enc, md5_blockbuf, md5_blockcount);
                md5_blockcount = 0UL;
              }
              if (outoistab)
                md5_blockbuf[md5_blockcount++] = toupper(cc);
              else
                md5_blockbuf[md5_blockcount++] = toupper(gt_alphabet_decode(a,
                                                                     charcode));
            }
          } else
          {
            if (lastnonspecialrangelength > 0)
            {
              if (lastnonspecialrangelength
                    > specialcharinfo->lengthoflongestnonspecial) {
                specialcharinfo->lengthoflongestnonspecial =
                                                      lastnonspecialrangelength;
              }
              lastnonspecialrangelength = 0;
            }
            if (charcode == (GtUchar) WILDCARD)
            {
              if (wildcardprefix)
              {
                specialcharinfo->lengthofwildcardprefix++;
              }
              lastwildcardrangelength++;
              specialcharinfo->wildcards++;
              if (md5enc != NULL) {
                if (md5_blockcount == 64UL) {
                  gt_md5_encoder_add_block(md5enc, md5_blockbuf,
                                           md5_blockcount);
                  md5_blockcount = 0UL;
                }
              if (outoistab)
                md5_blockbuf[md5_blockcount++] = toupper(cc);
              else
                md5_blockbuf[md5_blockcount++] = toupper(gt_alphabet_decode(a,
                                                                     charcode));
              }
#ifdef WITHEQUALLENGTH_DES_SSP
              lengthofcurrentsequence++;
#endif
            } else
            {
              gt_assert(charcode == (GtUchar) SEPARATOR);
              if (wildcardprefix)
              {
                wildcardprefix = false;
              }
              if (lastwildcardrangelength > 0)
              {
                gt_disc_distri_add(distwildcardrangelength,
                                   lastwildcardrangelength);
                lastwildcardrangelength = 0;
              }
              if (md5enc != NULL) {
                gt_md5_encoder_add_block(md5enc, md5_blockbuf, md5_blockcount);
                gt_md5_encoder_finish(md5enc, md5_output, md5_outbuf);
#ifdef WITHMD5FP
                gt_xfwrite(md5_outbuf, sizeof (char), (size_t) 33, md5fp);
#endif
                gt_md5_encoder_reset(md5enc);
                md5_blockcount = 0;
              }
#ifdef WITHEQUALLENGTH_DES_SSP
              if (equallength->defined)
              {
                if (equallength->valueunsignedlong > 0)
                {
                  if (lengthofcurrentsequence != equallength->valueunsignedlong)
                  {
                    equallength->defined = false;
                  }
                } else
                {
                  if (lengthofcurrentsequence == 0) {
                    gt_error_set(err, "sequence must not be empty");
                    haserr = true;
                  }
                  equallength->valueunsignedlong = lengthofcurrentsequence;
                }
              }
              if (!haserr && !plainformat && lengthofcurrentsequence == 0) {
                gt_error_set(err, "file '%s' contains an empty sequence",
                             gt_str_array_get(filenametab,
                               gt_sequence_buffer_get_file_index(fb)));
                haserr = true;
              }
              if (desfp != NULL && !haserr)
              {
                desc = (char*) gt_desc_buffer_get_next(descqueue);
                gt_xfputs(desc,desfp);
                if (sdsfp != NULL)
                {
                  GtUword desoffset;
                  desoffset = (GtUword) ftello(desfp);
                  gt_xfwrite(&desoffset,sizeof desoffset,(size_t) 1,sdsfp);
                }
                gt_xfputc((int) '\n',desfp);
              }
              (*numofseparators)++;
#endif
#ifdef WITHCOUNTMINMAX
             if (*maxseqlen == GT_UNDEF_UWORD
                    || lengthofcurrentsequence > *maxseqlen) {
                *maxseqlen = lengthofcurrentsequence;
              }
              if (*minseqlen == GT_UNDEF_UWORD
                   || lengthofcurrentsequence < *minseqlen) {
                *minseqlen = lengthofcurrentsequence;
              }
              lengthofcurrentsequence = 0;
#endif
            }
            if (specialprefix)
            {
              specialcharinfo->lengthofspecialprefix++;
            }
            specialcharinfo->specialcharacters++;
            lastspecialrangelength++;
          }
#ifdef WITHORIGDIST
          originaldistribution[(int) cc]++;
#endif
