version 1.28, 2008/04/13 00:22:17 |
version 1.29, 2008/06/04 14:04:42 |
|
|
nextarg = nextarg->nnext; |
nextarg = nextarg->nnext; |
} |
} |
break; |
break; |
|
case FCOMPL: |
|
u = ~((int)getfval(x)); |
|
break; |
|
case FAND: |
|
if (nextarg == 0) { |
|
WARNING("and requires two arguments; returning 0"); |
|
u = 0; |
|
break; |
|
} |
|
y = execute(a[1]->nnext); |
|
u = ((int)getfval(x)) & ((int)getfval(y)); |
|
tempfree(y); |
|
nextarg = nextarg->nnext; |
|
break; |
|
case FFOR: |
|
if (nextarg == 0) { |
|
WARNING("or requires two arguments; returning 0"); |
|
u = 0; |
|
break; |
|
} |
|
y = execute(a[1]->nnext); |
|
u = ((int)getfval(x)) | ((int)getfval(y)); |
|
tempfree(y); |
|
nextarg = nextarg->nnext; |
|
break; |
|
case FXOR: |
|
if (nextarg == 0) { |
|
WARNING("or requires two arguments; returning 0"); |
|
u = 0; |
|
break; |
|
} |
|
y = execute(a[1]->nnext); |
|
u = ((int)getfval(x)) ^ ((int)getfval(y)); |
|
tempfree(y); |
|
nextarg = nextarg->nnext; |
|
break; |
|
case FLSHIFT: |
|
if (nextarg == 0) { |
|
WARNING("or requires two arguments; returning 0"); |
|
u = 0; |
|
break; |
|
} |
|
y = execute(a[1]->nnext); |
|
u = ((int)getfval(x)) << ((int)getfval(y)); |
|
tempfree(y); |
|
nextarg = nextarg->nnext; |
|
break; |
|
case FRSHIFT: |
|
if (nextarg == 0) { |
|
WARNING("or requires two arguments; returning 0"); |
|
u = 0; |
|
break; |
|
} |
|
y = execute(a[1]->nnext); |
|
u = ((int)getfval(x)) >> ((int)getfval(y)); |
|
tempfree(y); |
|
nextarg = nextarg->nnext; |
|
break; |
case FSYSTEM: |
case FSYSTEM: |
fflush(stdout); /* in case something is buffered already */ |
fflush(stdout); /* in case something is buffered already */ |
u = (Awkfloat) system(getsval(x)) / 256; /* 256 is unix-dep */ |
u = (Awkfloat) system(getsval(x)) / 256; /* 256 is unix-dep */ |