3 # Convert relative path to absolute one
5 # Adam Lackorzynski <adam@os.inf.tu-dresden.de>
10 echo PWD=\$PWD $0 relpath1 [relpath2 [..]]
19 [ -z "$relpath" -o -z "$basepath" ] && help 1
20 [ "${basepath#/}" = "${basepath}" ] && help 1
21 [ "${basepath/\/..\//}" = "${basepath}" ] || help 1
22 [ "${basepath/\/.\//}" = "${basepath}" ] || help 1
23 [ "${basepath/%\/../}" = "${basepath}" ] || help 1
24 [ "${basepath/%\/./}" = "${basepath}" ] || help 1
27 # remove slashes at the end
28 while [ "${relpath%/}" != "${relpath}" ];
29 do relpath="${relpath%/}"; done
31 # remove double/multi slashes
32 while [ "${relpath/\/\///}" != "${relpath}" ];
33 do relpath=${relpath/\/\///}; done
35 # is relpath relative?
36 if [ "${relpath#/}" != "${relpath}" ]; then
43 while [ -n "$relpath" ];
52 basepath=${basepath%/*}
55 basepath=$basepath/$elem
61 [ -z "$basepath" ] && basepath=/$basepath