1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-03 09:13:20 +03:00

Resync the source tree, commit some things that were missing (pqcomprim.c) and

bring in Thomas's updates for the date/time code...
This commit is contained in:
Marc G. Fournier
1997-03-18 16:36:50 +00:00
parent 7d02575ad1
commit b5e16b1869
6 changed files with 152 additions and 70 deletions

View File

@@ -0,0 +1,82 @@
#include <stdlib.h>
#include <stdio.h>
#include "postgres.h"
#include "libpq/pqcomm.h"
/* --------------------------------------------------------------------- */
/* Is the other way around than system ntoh/hton, so we roll our own
here */
#if BYTE_ORDER == LITTLE_ENDIAN
#define ntoh_s(n) n
#define ntoh_l(n) n
#define hton_s(n) n
#define hton_l(n) n
#endif
#if BYTE_ORDER == BIG_ENDIAN
#define ntoh_s(n) (u_short)(((u_char *) &n)[0] << 8 | ((u_char *) &n)[1]);
#define ntoh_l(n) (u_long)(((u_char *)&n)[0] << 24 | ((u_char *)&n)[1] << 16 |\
((u_char *)&n)[2] << 8 | ((u_char *)&n)[3]);
#define hton_s(n) (ntoh_s(n))
#define hton_l(n) (ntoh_l(n))
#endif
#if BYTE_ORDER == PDP_ENDIAN
#endif
#ifndef ntoh_s
#error Please write byte order macros
#endif
/* --------------------------------------------------------------------- */
int pqPutShort(const int integer, FILE *f)
{
int retval = 0;
u_short n;
n = hton_s(integer);
if(fwrite(&n, sizeof(u_short), 1, f) != 1)
retval = 1;
return retval;
}
/* --------------------------------------------------------------------- */
int pqPutLong(const int integer, FILE *f)
{
int retval = 0;
u_long n;
n = hton_l(integer);
if(fwrite(&n, sizeof(u_long), 1, f) != 1)
retval = 1;
return retval;
}
/* --------------------------------------------------------------------- */
int pqGetShort(int *result, FILE *f)
{
int retval = 0;
u_short n;
if(fread(&n, sizeof(u_short), 1, f) != 1)
retval = 1;
*result = ntoh_s(n);
return retval;
}
/* --------------------------------------------------------------------- */
int pqGetLong(int *result, FILE *f)
{
int retval = 0;
u_long n;
if(fread(&n, sizeof(u_long), 1, f) != 1)
retval = 1;
*result = ntoh_l(n);
return retval;
}
/* --------------------------------------------------------------------- */