1# 2# We need to use bash for its associative array facility 3# 4[ "$BASH" ] || exec bash $0 5# 6# (`bash -p` prevents import of functions from the environment). 7# 8set -p 9 10declare -A renamed_page 11 12main(){ set -e; cd man/man3; rm -f _* 13 count_real_pages 14 rename_real_pages 15 make_symlinks 16} 17 18count_real_pages(){ page_count=0 19 for i in $(ls -S) 20 do head -n1 $i | grep -E -q '^\.so' && break 21 page_count=$(($page_count + 1)) 22 done 23 first_link=$(($page_count + 1)) 24} 25 26rename_real_pages(){ for i in $(ls -S | head -n$page_count) 27 do for j in $(ls -S | tail -n+$first_link) 28 do grep -E -q $i$ $j && break 29 done 30 mv -f $i $j 31 renamed_page[$i]=$j 32 done 33} 34 35make_symlinks(){ for j in $(ls -S | tail -n+$first_link) 36 do ln -sf ${renamed_page[$(cat $j | cut -f2 -d/)]} $j 37 done 38} 39 40main 41