]>
code.delx.au - gnu-emacs/blob - build-aux/msys-to-w32
2 # Convert a MSYS path list to Windows-native format.
3 # Status is zero if successful, nonzero otherwise.
5 # Copyright (C) 2013-2014 Free Software Foundation, Inc.
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 # Take only the basename from the full pathname
23 usage
="usage: ${me} PATHLIST"
28 Convert a MSYS path list to Windows-native format.
30 PATHLIST should be a colon-separated list of MSYS paths, which will be
31 written to the standard output after performing these transformations:
33 1. Discard empty paths.
34 2. Replace: '\' with '/', '//' with '/' and ':' with ';'.
35 3. Translate each path to Windows-native format.
37 Relative paths or paths starting with '%emacs_dir%' will be passed
38 verbatim to the standard output.
40 Each non existing absolute path will be translated by looking for its
41 deepest existing directory, which will be translated and the remainder
45 --help display this help and exit
47 Report bugs to <bug-gnu-emacs@gnu.org>."
52 --help |
--hel |
--he |
--h)
58 echo "${me}: invalid option: $arg" >&2
66 echo "${me}: $usage" >&2
72 # Put each MSYS path in one positional parameter and iterate through
79 [ -z "$p" ] && continue
81 if [ "${p:0:11}" = "%emacs_dir%" ]
84 elif [ "${p:0:1}" != "/" ]
89 w32p
=$
(cd "$p" && pwd -W)
91 # Make some cleanup in the path and look for its deepest
102 [ -z "$p1" ] && p1
="/" && break
103 [ -d "$p1" ] && break
106 # translate the existing part and append the rest
107 w32p
=$
(cd "${p1}" && pwd -W)
109 w32p
+=/${remainder#/}
112 w32pathlist
="${w32pathlist};${w32p}"
116 echo "${w32pathlist:1}"