[busybox] Use unsigned longs for bitwise operations in awk, thanks benoar.
[openwrt/svn-archive/archive.git] / package / busybox / patches / 530-unsigned_bitwise_ops.patch
1 --- a/editors/awk.c
2 +++ b/editors/awk.c
3 @@ -2046,27 +2046,27 @@
4 break;
5
6 case B_an:
7 - setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
8 + setvar_i(res, (unsigned long)getvar_i(av[0]) & (unsigned long)getvar_i(av[1]));
9 break;
10
11 case B_co:
12 - setvar_i(res, ~(long)getvar_i(av[0]));
13 + setvar_i(res, ~(unsigned long)getvar_i(av[0]));
14 break;
15
16 case B_ls:
17 - setvar_i(res, (long)getvar_i(av[0]) << (long)getvar_i(av[1]));
18 + setvar_i(res, (unsigned long)getvar_i(av[0]) << (unsigned long)getvar_i(av[1]));
19 break;
20
21 case B_or:
22 - setvar_i(res, (long)getvar_i(av[0]) | (long)getvar_i(av[1]));
23 + setvar_i(res, (unsigned long)getvar_i(av[0]) | (unsigned long)getvar_i(av[1]));
24 break;
25
26 case B_rs:
27 - setvar_i(res, (long)((unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1])));
28 + setvar_i(res, (unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1]));
29 break;
30
31 case B_xo:
32 - setvar_i(res, (long)getvar_i(av[0]) ^ (long)getvar_i(av[1]));
33 + setvar_i(res, (unsigned long)getvar_i(av[0]) ^ (unsigned long)getvar_i(av[1]));
34 break;
35
36 case B_lo: