just() {
       # use: ll=WIDTH just [ FILE ]
       # but you will first want to make sure length of lines does not exceed desired width

       if [ -f "$1" ]; then
               # a portable-ism for readarray
               while read text[ln++]; do :; done < "$1"
       else
               while read text[ln++]; do :; done
       fi
       ln=0

       for line in "${text[@]}"; do
               if [ -z "${text[++ln]//[[:space:]]}" -o ${#line} -ge $ll -o ${#line} -le 1 ]; then
                       # forgo justification on last line of each paragraph
                       # as well as any line too long to be printed correctly
                       printf '%s\n' "$line"
               else
                       # this else is the original justify_line function from the editor :)

                       (( ll )) || ll=60
                       w=($line)       # words as an array
                       wc=${#w[@]}     # word count
                       [ $wc -eq 1 ] && echo -n "$line" && return

                       ch="${line// }"     # non-whitespace characters
                       ((wscol=ll-${#ch})) # number of whitespace columns
                       ((spaces=wc>1?wc:1))    # number of spaces
                       ((s=wscol/spaces))      # width of one space after justification
                       ((f=wscol%spaces))  # leftover columns to achieve exact width
                       ((m=wc/(f>1?f:2)))  # word dividing the left and right alignment
                       ((am=m>2?m-1:m))    # amended middle, further even out odd spaces

                       # i is the index of the current word, c its length, S the final spacing and alignment
                       for ((i=0,c=${#w[0]}; S=i<m?c+s:f?f--, c+s+1:c+s, S=i<am?-S:S, i<wc; c=${#w[++i]})); do
                                       fmt="${fmt}%${S}s"
                                       arg="${arg} ${w[i]}"
                       done

                       printf "$fmt\n" $arg
                       unset fmt arg
               fi
       done

unset text ln
printf '\n'
}