diff --git a/include/swap.h b/include/swap.h index 78d6c6f87545d05cc2742d04408e27f89e16f22b..e1f5b9406973376a64df95c6060bb00347c3f739 100644 --- a/include/swap.h +++ b/include/swap.h @@ -2,21 +2,10 @@ #include <ctype.h> #include <utils/p2c.h> -typedef union swap2 { - short ival; - unsigned char c[2]; -} swap2; - -typedef union swap4 { - long ival; - unsigned char c[4]; -} swap4; - -extern short shortsw(short sh); -extern short getshortsw(char * c); - -extern long getintsw(char * c); -extern long intsw(long ii); -extern short reverse(short s); +short shortsw(short sh); +short getshortsw(char * c); +long getintsw(char * c); +long intsw(long ii); +short reverse(short s); diff --git a/src/loged.c b/src/loged.c index 4b145c260b2149622ca4c5b1f6fe3b41e5cd68ba..6c252eeb67a9bbab7ea74eab172d1a9f55ca281c 100644 --- a/src/loged.c +++ b/src/loged.c @@ -503,6 +503,15 @@ static int firsttime, menuflag, refrkind, needrefr, firsthelp, savedflag, errorflag, exitflag; static pnumrec pn; +typedef union swap2 { + short ival; + unsigned char c[2]; +} swap2; + +typedef union swap4 { + long ival; + unsigned char c[4]; +} swap4; static void writedesc(rec,d) char *rec; diff --git a/src/swap.c b/src/swap.c index 013807c318fb0fe21ce2ca691446e79f7bbc336d..6ed6af1bd1d7f8417b902e8995c68bdad8face8b 100644 --- a/src/swap.c +++ b/src/swap.c @@ -1,95 +1,105 @@ #include "swap.h" - + +typedef union swap2 { + short ival; + unsigned char c[2]; +} swap2; + +typedef union swap4 { + long ival; + unsigned char c[4]; +} swap4; + short shortsw(short sh) { - swap2 s1; + swap2 s1; swap2 s2; - + s1.ival = sh; - if (bigendian) - { - s2.c[1] = s1.c[1]; - s2.c[0] = s1.c[0]; - } - else - { - s2.c[0] = s1.c[1]; - s2.c[1] = s1.c[0]; - } - return s2.ival; + if (bigendian) + { + s2.c[1] = s1.c[1]; + s2.c[0] = s1.c[0]; + } + else + { + s2.c[0] = s1.c[1]; + s2.c[1] = s1.c[0]; + } + return s2.ival; } short getshortsw(char *c) { - swap2 s; - - if (bigendian) - { - s.c[1] = c[1]; - s.c[0] = c[0]; - } - else - { - s.c[0] = c[1]; - s.c[1] = c[0]; - } - - return s.ival; + swap2 s; + + if (bigendian) + { + s.c[1] = c[1]; + s.c[0] = c[0]; + } + else + { + s.c[0] = c[1]; + s.c[1] = c[0]; + } + + return s.ival; } - + long getintsw(char *c) { - swap4 s; - - if (bigendian) - { - s.c[0] = c[0]; - s.c[1] = c[1]; - s.c[2] = c[2]; - s.c[3] = c[3]; - } - else - { - s.c[0] = c[3]; - s.c[1] = c[2]; - s.c[2] = c[1]; - s.c[3] = c[0]; - } - return s.ival; - } + swap4 s; + + if (bigendian) + { + s.c[0] = c[0]; + s.c[1] = c[1]; + s.c[2] = c[2]; + s.c[3] = c[3]; + } + else + { + s.c[0] = c[3]; + s.c[1] = c[2]; + s.c[2] = c[1]; + s.c[3] = c[0]; + } + return s.ival; +} long intsw(long ii) { - swap4 s1,s2; - s1.ival = ii; - - if (bigendian) - { - s2.c[0] = s1.c[0]; - s2.c[1] = s1.c[1]; - s2.c[2] = s1.c[2]; - s2.c[3] = s1.c[3]; - } - else - { - s2.c[0] = s1.c[3]; - s2.c[1] = s1.c[2]; - s2.c[2] = s1.c[1]; - s2.c[3] = s1.c[0]; - } - - return s2.ival; + swap4 s1,s2; + s1.ival = ii; + + if (bigendian) + { + s2.c[0] = s1.c[0]; + s2.c[1] = s1.c[1]; + s2.c[2] = s1.c[2]; + s2.c[3] = s1.c[3]; + } + else + { + s2.c[0] = s1.c[3]; + s2.c[1] = s1.c[2]; + s2.c[2] = s1.c[1]; + s2.c[3] = s1.c[0]; + } + + return s2.ival; } short reverse(short s) { - short b = 0; + short b = 0; short i; - b = s & 0x1; - for (i = 0; i < 15; i++) - b = (b<<1) | ((s = s >> 1) & 1); - return b; + b = s & 0x1; + for (i = 0; i < 15; i++) + b = (b<<1) | ((s = s >> 1) & 1); + return b; }