Use unsigned longs for bitwise operations in awk, thanks benoar. - Resolves the ipcal...
[librecmc/librecmc.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: