mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-30 17:18:21 +03:00
3ed801fb95
length(array) is specific to GNU awk and doesn't work in mawk. Use a return value of "split" function to indicate array size, this is supported in both gawk and mawk. This patch fixes the following errors during "make install" when mawk is installed as a default awk. mawk: scripts/relpath.awk: line 25: illegal reference to array from mawk: scripts/relpath.awk: line 25: illegal reference to array to mawk: scripts/relpath.awk: line 27: illegal reference to array from mawk: scripts/relpath.awk: line 32: illegal reference to array to Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
41 lines
1.1 KiB
Awk
Executable File
41 lines
1.1 KiB
Awk
Executable File
#!/usr/bin/awk -f
|
|
#
|
|
# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This file is part of LVM2.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions
|
|
# of the GNU General Public License v.2.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
# relpath.awk: Script is used to calculate relative path
|
|
# between two real absolute paths.
|
|
#
|
|
# echo /a/b/c/d /a/b/e/f | relpath.awk
|
|
# -> ../../e/f/
|
|
|
|
{
|
|
length_from = split($1, from, "/");
|
|
length_to = split($2, to, "/") ;
|
|
l = 1;
|
|
while (l <= length_from && l <= length_to && from[l] == to[l])
|
|
l++;
|
|
for (i = l; i <= length_from && length(from[i]); i++) {
|
|
if (i > l)
|
|
p = sprintf("%s/", p);
|
|
p = sprintf("%s..", p);
|
|
}
|
|
for (i = l; i <= length_to && length(to[i]); i++) {
|
|
if (length(p) > 0)
|
|
p = sprintf("%s/", p);
|
|
p = sprintf("%s%s", p, to[i]);
|
|
}
|
|
if (length(p))
|
|
p = sprintf("%s/", p);
|
|
print p
|
|
}
|