From e56a83b19e511217c0e3338c64f00b1974f93c12 Mon Sep 17 00:00:00 2001
From: agb <agb@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Thu, 28 Aug 2008 16:40:53 +0000
Subject: [PATCH] [busybox] Use unsigned longs for bitwise operations in awk,
 thanks benoar.  - Resolves the ipcalc.sh bug on some arches, closes #3012,
 #3946  - Submitted upstream as busybox bug #4774

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12427 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 .../patches/530-unsigned_bitwise_ops.patch    | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 package/busybox/patches/530-unsigned_bitwise_ops.patch

diff --git a/package/busybox/patches/530-unsigned_bitwise_ops.patch b/package/busybox/patches/530-unsigned_bitwise_ops.patch
new file mode 100644
index 000000000..3226892b8
--- /dev/null
+++ b/package/busybox/patches/530-unsigned_bitwise_ops.patch
@@ -0,0 +1,36 @@
+--- a/editors/awk.c
++++ b/editors/awk.c
+@@ -2046,27 +2046,27 @@
+ 		break;
+ 
+ 	case B_an:
+-		setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
++		setvar_i(res, (unsigned long)getvar_i(av[0]) & (unsigned long)getvar_i(av[1]));
+ 		break;
+ 
+ 	case B_co:
+-		setvar_i(res, ~(long)getvar_i(av[0]));
++		setvar_i(res, ~(unsigned long)getvar_i(av[0]));
+ 		break;
+ 
+ 	case B_ls:
+-		setvar_i(res, (long)getvar_i(av[0]) << (long)getvar_i(av[1]));
++		setvar_i(res, (unsigned long)getvar_i(av[0]) << (unsigned long)getvar_i(av[1]));
+ 		break;
+ 
+ 	case B_or:
+-		setvar_i(res, (long)getvar_i(av[0]) | (long)getvar_i(av[1]));
++		setvar_i(res, (unsigned long)getvar_i(av[0]) | (unsigned long)getvar_i(av[1]));
+ 		break;
+ 
+ 	case B_rs:
+-		setvar_i(res, (long)((unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1])));
++		setvar_i(res, (unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1]));
+ 		break;
+ 
+ 	case B_xo:
+-		setvar_i(res, (long)getvar_i(av[0]) ^ (long)getvar_i(av[1]));
++		setvar_i(res, (unsigned long)getvar_i(av[0]) ^ (unsigned long)getvar_i(av[1]));
+ 		break;
+ 
+ 	case B_lo:
-- 
2.20.1