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
}