#ifndef ENDIAN_UTIL_SEEN
#define ENDIAN_UTIL_SEEN

/*--------------------------------------------------------------------*/

char *debut_ligne(char *ptr) /* c'est sur 4 octets */
{

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_debut_ligne(char *ptr) /* c'est sur 4 octets */
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 );

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *fin_ligne(char *ptr) /* c'est sur 4 octets */
{

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_fin_ligne(char *ptr) /* c'est sur 4 octets */
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 );

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *lit_int(char *ptr,int *k) /* int (4 octets) */
{
    memcpy( k, ptr, 4 );

    return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_int(char *ptr) /* entiers (4 octets) */ 
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 );

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_et_lit_int(char *ptr,int *k) /* int (4 octets) */
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 ); /* swap */
  memcpy( k, ptr, 4 );

  return ptr+4;

}

/*--------------------------------------------------------------------*/

char *ecrit_int(char *ptr,int *k) /* int (4 octets) */
{
    memcpy( ptr, k, 4 );

    return ptr+4;

}

/*--------------------------------------------------------------------*/

char *lit_float(char *ptr,float *f) /* float (4 octets) */
{
    memcpy( f, ptr, 4 );

    return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_float(char *ptr) /* float (4 octets) */
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 );

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *swap_et_lit_float(char *ptr,float *f) /* float (4 octets) */
{
  char tmp[4];

  tmp[3] =  *ptr;
  tmp[2] =  *(ptr+1);
  tmp[1] =  *(ptr+2);
  tmp[0] =  *(ptr+3);
  memcpy( ptr, tmp, 4 ); /* swap */
  memcpy( f, ptr, 4 );

  return ptr+4;
}

/*--------------------------------------------------------------------*/

char *ecrit_float(char *ptr,float *f) /* float (4 octets) */
{
    memcpy( ptr, f, 4 );

    return ptr+4;
}

/*--------------------------------------------------------------------*/

char *lit_double(char *ptr,double *d)  /* double (8 octets) */
{
    memcpy( d, ptr, 8 );

    return ptr+8;
}

/*--------------------------------------------------------------------*/

char *swap_double(char *ptr) /* double (8 octets) */
{
  char tmp[8];

  tmp[7] =  *ptr;
  tmp[6] =  *(ptr+1);
  tmp[5] =  *(ptr+2);
  tmp[4] =  *(ptr+3);
  tmp[3] =  *(ptr+4);
  tmp[2] =  *(ptr+5);
  tmp[1] =  *(ptr+6);
  tmp[0] =  *(ptr+7);
  memcpy( ptr, tmp, 8 );

  return ptr+8;
}

/*--------------------------------------------------------------------*/

char *swap_et_lit_double(char *ptr,double *d) /* double (8 octets) */
{
  char tmp[8];

  tmp[7] =  *ptr;
  tmp[6] =  *(ptr+1);
  tmp[5] =  *(ptr+2);
  tmp[4] =  *(ptr+3);
  tmp[3] =  *(ptr+4);
  tmp[2] =  *(ptr+5);
  tmp[1] =  *(ptr+6);
  tmp[0] =  *(ptr+7);
  memcpy( ptr, tmp, 8 ); /* swap */
  memcpy( d, ptr, 8 );

  return ptr+8;
}

/*--------------------------------------------------------------------*/

char *ecrit_double(char *ptr,double *d) /* double (8 octets) */
{
    memcpy( ptr, d, 8 );

    return ptr+8;
}

/*--------------------------------------------------------------------*/

#endif /* of #ifndef ENDIAN_UTIL_SEEN */

