     {
       /* match.d is displacement */
       /* match.l is length of match */
-      /* IDX_BY_BIT(flags,b) |= PUT_BIT(1,b); */
-      flags[b] = 1;
+      IDX_BY_BIT(flags,b) |= PUT_BIT(1,b);
       pack_match(&m,&match);
-      /* memcpy(dst + w,&m,sizeof(match_t)); */
-      *(/*(match_t*)*/(dst + w)) = ((m.dl >> 8) & 0xff);
-      *(/*(match_t*)*/(dst + w + 1)) = (m.dl & 0xff);
+      memcpy(dst + w,&m,sizeof(match_t));
       i += match.l;
       w += sizeof(match_t);
       b++;

  for(uint16_t i=1;i<back_max;i++)
  {
    uint8_t* tmp = word - i;
    uint16_t curr = match_len(tmp,word,fwd_max+i);
    if(curr > best)
    {
      offset = i;
      best = curr;
    }
  }


#include <stdint.h>
#include <string.h>
#include <limits.h>
#include <unistd.h>

#include "common.h"
#include "lzss_help.h"

#define DISP_BITS 11
#define LEN_BITS 4
