summaryrefslogtreecommitdiff
path: root/pl/plvalue.c
diff options
context:
space:
mode:
Diffstat (limited to 'pl/plvalue.c')
-rw-r--r--pl/plvalue.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/pl/plvalue.c b/pl/plvalue.c
new file mode 100644
index 000000000..1b606e626
--- /dev/null
+++ b/pl/plvalue.c
@@ -0,0 +1,43 @@
+/* Portions Copyright (C) 2001 artofcode LLC.
+ Portions Copyright (C) 1996, 2001 Artifex Software Inc.
+ Portions Copyright (C) 1988, 2000 Aladdin Enterprises.
+ This software is based in part on the work of the Independent JPEG Group.
+ All Rights Reserved.
+
+ This software is distributed under license and may not be copied, modified
+ or distributed except as expressly authorized under the terms of that
+ license. Refer to licensing information at http://www.artifex.com/ or
+ contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+ San Rafael, CA 94903, (415)492-9861, for further information. */
+/*$Id$ */
+
+/* plvalue.c */
+/* Accessors for big-endian multi-byte values */
+
+#include "std.h"
+#include "plvalue.h"
+
+#define get_uint16(bptr)\
+ (((bptr)[0] << 8) | (bptr)[1])
+#define get_int16(bptr)\
+ (((int)get_uint16(bptr) ^ 0x8000) - 0x8000)
+
+int
+pl_get_int16(const byte *bptr)
+{ return get_int16(bptr);
+}
+
+uint
+pl_get_uint16(const byte *bptr)
+{ return get_uint16(bptr);
+}
+
+long
+pl_get_int32(const byte *bptr)
+{ return ((long)get_int16(bptr) << 16) | get_uint16(bptr + 2);
+}
+
+ulong
+pl_get_uint32(const byte *bptr)
+{ return ((ulong)get_uint16(bptr) << 16) | get_uint16(bptr + 2);
+}