|
1 | 1 | BEGIN {
|
2 |
| - # check if arg is an valid path |
3 |
| - if (!isabs(arg)) { |
4 |
| - print "split_path requires an absolute path begins with a slash" >"/dev/stderr" |
5 |
| - exit 1 |
6 |
| - } |
| 2 | + # check if arg is an valid path |
| 3 | + if (!isabs(arg)) { |
| 4 | + print "split_path requires an absolute path begins with a slash" >"/dev/stderr" |
| 5 | + exit 1 |
| 6 | + } |
7 | 7 |
|
8 |
| - # except for the beginning of the slash |
9 |
| - s = substr(arg, 2) |
10 |
| - num = split(s, arr, "/") |
| 8 | + # except for the beginning of the slash |
| 9 | + s = substr(arg, 2) |
| 10 | + num = split(s, arr, "/") |
11 | 11 |
|
12 |
| - # display the beginning of the path |
13 |
| - print substr(arg, 1, 1) |
| 12 | + # display the beginning of the path |
| 13 | + print substr(arg, 1, 1) |
14 | 14 |
|
15 |
| - if (show_fullpath == 1) { |
16 |
| - # get dirname from / |
17 |
| - num = split(s, dirname, "/") |
18 |
| - for (i = 1; i < num; i++) { |
19 |
| - pre_dir = "" |
20 |
| - for (ii = 1; ii <= i; ii++) { |
21 |
| - pre_dir = pre_dir "/" dirname[ii] |
22 |
| - } |
23 |
| - print pre_dir |
24 |
| - } |
25 |
| - } else { |
26 |
| - # decompose the path by a slash |
27 |
| - for (i = 1; i < num; i++) { |
28 |
| - print arr[i] |
29 |
| - } |
| 15 | + if (show_fullpath == 1) { |
| 16 | + # get dirname from / |
| 17 | + num = split(s, dirname, "/") |
| 18 | + for (i = 1; i < num; i++) { |
| 19 | + pre_dir = "" |
| 20 | + for (ii = 1; ii <= i; ii++) { |
| 21 | + pre_dir = pre_dir "/" dirname[ii] |
| 22 | + } |
| 23 | + print pre_dir |
| 24 | + } |
| 25 | + } else { |
| 26 | + # decompose the path by a slash |
| 27 | + for (i = 1; i < num; i++) { |
| 28 | + print arr[i] |
30 | 29 | }
|
| 30 | + } |
31 | 31 | }
|
32 | 32 |
|
33 | 33 | # has_prefix tests whether the string s begins with pre.
|
34 | 34 | function has_prefix(s, pre, pre_len, s_len) {
|
35 |
| - pre_len = length(pre) |
36 |
| - s_len = length(s) |
| 35 | + pre_len = length(pre) |
| 36 | + s_len = length(s) |
37 | 37 |
|
38 |
| - return pre_len <= s_len && substr(s, 1, pre_len) == pre |
| 38 | + return pre_len <= s_len && substr(s, 1, pre_len) == pre |
39 | 39 | }
|
40 | 40 |
|
41 | 41 | # isabs returns true if the path is absolute.
|
42 | 42 | function isabs(pathname) {
|
43 |
| - return length(pathname) > 0 && has_prefix(pathname, "/") |
| 43 | + return length(pathname) > 0 && has_prefix(pathname, "/") |
44 | 44 | }
|
0 commit comments