diff options
-rw-r--r-- | source/lib/util.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/lib/util.c b/source/lib/util.c index ebb89c9d899..fdd2b98c562 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -2607,13 +2607,26 @@ align a pointer to a multiple of 2 bytes ********************************************************************/ char *align2(char *q, char *base) { - if ((q - base) & 1) + if (PTR_DIFF(q, base) & 1) { q++; } return q; } +/******************************************************************* + align a pointer to a multiple of 4 bytes. + ********************************************************************/ +char *align4(char *q, char *base) +{ + int mod = PTR_DIFF(q, base) & 3; + if (mod != 0) + { + q += 4-mod; + } + return q; +} + void out_ascii(FILE *f, unsigned char *buf,int len) { int i; |