Blame awklib/eg/prog/indirectcall.awk
|
Packit Service |
f629e6 |
# num_lt --- do a numeric less than comparison
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function num_lt(left, right)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
return ((left + 0) < (right + 0))
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# num_ge --- do a numeric greater than or equal to comparison
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function num_ge(left, right)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
return ((left + 0) >= (right + 0))
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
# do_sort --- sort the data according to `compare'
|
|
Packit Service |
f629e6 |
# and return it as a string
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function do_sort(first, last, compare, data, i, retval)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
delete data
|
|
Packit Service |
f629e6 |
for (i = 1; first <= last; first++) {
|
|
Packit Service |
f629e6 |
data[i] = $first
|
|
Packit Service |
f629e6 |
i++
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
quicksort(data, 1, i-1, compare)
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
retval = data[1]
|
|
Packit Service |
f629e6 |
for (i = 2; i in data; i++)
|
|
Packit Service |
f629e6 |
retval = retval " " data[i]
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
return retval
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
# sort --- sort the data in ascending order and return it as a string
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function sort(first, last)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
return do_sort(first, last, "num_lt")
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# rsort --- sort the data in descending order and return it as a string
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
function rsort(first, last)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
return do_sort(first, last, "num_ge")
|
|
Packit Service |
f629e6 |
}
|