mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Ticket #2838: Fixed 'Enter' action on a rpm file containing space character in filename
Test case: * cp /path/to/any-file.rpm '/tmp/a n y - f i l e.rpm' * run /usr/bin/mc, go to /tmp * Press Enter on 'a n y - f i l e.rpm' file Expected result: mc should be entered to RPM package as in directory Actual result: gor errors: Inconsistent extfs archive error: open of /tmp/a\ failed: No such file or directory ... error: open of e.rpm failed: No such file or directory -r--r--r-- 1 root root 0 Jun 29 15:12 ERROR Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This commit is contained in:
parent
3fe3f60d75
commit
7ddc29649b
@ -57,11 +57,7 @@ else
|
|||||||
fi
|
fi
|
||||||
RPM2CPIO="rpm2cpio"
|
RPM2CPIO="rpm2cpio"
|
||||||
|
|
||||||
|
|
||||||
SED="sed"
|
SED="sed"
|
||||||
# Surround the whole filename with single quotes and handle specially
|
|
||||||
# \', ' and \ at the end of the string.
|
|
||||||
SEDCMD="s/ /\\\\ /g;s/'/\\\\'/g;s/\"/\\\\\"/g"
|
|
||||||
|
|
||||||
param=$1; shift
|
param=$1; shift
|
||||||
rpm_filename=$1; shift
|
rpm_filename=$1; shift
|
||||||
@ -75,7 +71,7 @@ mcrpmfs_getSupportedTags()
|
|||||||
|
|
||||||
mcrpmfs_getDesription()
|
mcrpmfs_getDesription()
|
||||||
{
|
{
|
||||||
$RPM -qip "`echo ${rpm_filename}| $SED "${SEDCMD}"`"
|
$RPM -qip "${rpm_filename}"
|
||||||
}
|
}
|
||||||
|
|
||||||
mcrpmfs_getAllNeededTags()
|
mcrpmfs_getAllNeededTags()
|
||||||
@ -103,17 +99,17 @@ mcrpmfs_getAllNeededTags()
|
|||||||
"|PROVIDES=%{PROVIDES}"\
|
"|PROVIDES=%{PROVIDES}"\
|
||||||
${tag_CONFLICTS}\
|
${tag_CONFLICTS}\
|
||||||
"|PACKAGER=%{PACKAGER}" \
|
"|PACKAGER=%{PACKAGER}" \
|
||||||
"`echo ${rpm_filename}| $SED "${SEDCMD}"`"
|
"${rpm_filename}"
|
||||||
}
|
}
|
||||||
|
|
||||||
mcrpmfs_getRawOneTag()
|
mcrpmfs_getRawOneTag()
|
||||||
{
|
{
|
||||||
$RPM -qp --qf "$1" "`echo ${rpm_filename}| $SED "${SEDCMD}"`"
|
$RPM -qp --qf "$1" "${rpm_filename}"
|
||||||
}
|
}
|
||||||
|
|
||||||
mcrpmfs_getOneTag()
|
mcrpmfs_getOneTag()
|
||||||
{
|
{
|
||||||
echo $AllTAGS | sed "s/.*|${1}=//" | cut -d '|' -f 1
|
echo $AllTAGS | $SED "s/.*|${1}=//" | cut -d '|' -f 1
|
||||||
}
|
}
|
||||||
|
|
||||||
AllTAGS=`mcrpmfs_getAllNeededTags "$1"`
|
AllTAGS=`mcrpmfs_getAllNeededTags "$1"`
|
||||||
@ -238,17 +234,17 @@ mcrpmfs_copyout ()
|
|||||||
HEADER) mcrpmfs_getDesription > "$2"; exit 0;;
|
HEADER) mcrpmfs_getDesription > "$2"; exit 0;;
|
||||||
INSTALL)
|
INSTALL)
|
||||||
echo "# Run this script to install this RPM package" > "$2"
|
echo "# Run this script to install this RPM package" > "$2"
|
||||||
echo $RPM -ivh "`echo ${rpm_filename}| $SED "${SEDCMD}"`" >> "$2"
|
echo $RPM -ivh "${rpm_filename}" >> "$2"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
UPGRADE)
|
UPGRADE)
|
||||||
echo "# Run this to upgrade this RPM package" > "$2"
|
echo "# Run this to upgrade this RPM package" > "$2"
|
||||||
echo $RPM -Uvh "`echo ${rpm_filename}| $SED "${SEDCMD}"`" >> "$2"
|
echo $RPM -Uvh "${rpm_filename}" >> "$2"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
REBUILD)
|
REBUILD)
|
||||||
echo "# Run this to rebuild this RPM package" > "$2"
|
echo "# Run this to rebuild this RPM package" > "$2"
|
||||||
echo $RPMBUILD --rebuild "`echo ${rpm_filename}| $SED "${SEDCMD}"`" >> "$2"
|
echo $RPMBUILD --rebuild "${rpm_filename}" >> "$2"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
ERROR) mcrpmfs_getDesription > /dev/null 2> "$2"; exit 0;;
|
ERROR) mcrpmfs_getDesription > /dev/null 2> "$2"; exit 0;;
|
||||||
@ -276,14 +272,14 @@ mcrpmfs_copyout ()
|
|||||||
INFO/SCRIPTS/PREUN) mcrpmfs_getRawOneTag "%{RPMTAG_PREUN}\n" >"$2"; exit 0;;
|
INFO/SCRIPTS/PREUN) mcrpmfs_getRawOneTag "%{RPMTAG_PREUN}\n" >"$2"; exit 0;;
|
||||||
INFO/SCRIPTS/POSTUN) mcrpmfs_getRawOneTag "%{RPMTAG_POSTUN}\n" >"$2"; exit 0;;
|
INFO/SCRIPTS/POSTUN) mcrpmfs_getRawOneTag "%{RPMTAG_POSTUN}\n" >"$2"; exit 0;;
|
||||||
INFO/SCRIPTS/VERIFYSCRIPT) mcrpmfs_getRawOneTag "%{VERIFYSCRIPT}\n" > "$2"; exit 0;;
|
INFO/SCRIPTS/VERIFYSCRIPT) mcrpmfs_getRawOneTag "%{VERIFYSCRIPT}\n" > "$2"; exit 0;;
|
||||||
INFO/SCRIPTS/ALL) $RPM -qp --scripts "`echo ${rpm_filename}| $SED "${SEDCMD}"`" > "$2"; exit 0;;
|
INFO/SCRIPTS/ALL) $RPM -qp --scripts "${rpm_filename}" > "$2"; exit 0;;
|
||||||
INFO/SUMMARY) mcrpmfs_getRawOneTag "%{SUMMARY}\n" > "$2"; exit 0;;
|
INFO/SUMMARY) mcrpmfs_getRawOneTag "%{SUMMARY}\n" > "$2"; exit 0;;
|
||||||
INFO/OS) mcrpmfs_getRawOneTag "%{OS}\n" > "$2"; exit 0;;
|
INFO/OS) mcrpmfs_getRawOneTag "%{OS}\n" > "$2"; exit 0;;
|
||||||
INFO/CHANGELOG) mcrpmfs_getRawOneTag "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" > "$2"; exit 0;;
|
INFO/CHANGELOG) mcrpmfs_getRawOneTag "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" > "$2"; exit 0;;
|
||||||
INFO/SIZE) mcrpmfs_getRawOneTag "%{SIZE} bytes\n" > "$2"; exit 0;;
|
INFO/SIZE) mcrpmfs_getRawOneTag "%{SIZE} bytes\n" > "$2"; exit 0;;
|
||||||
INFO/OBSOLETES) mcrpmfs_getRawOneTag "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" > "$2"; exit 0;;
|
INFO/OBSOLETES) mcrpmfs_getRawOneTag "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" > "$2"; exit 0;;
|
||||||
INFO/CONFLICTS) mcrpmfs_getRawOneTag "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" >"$2"; exit 0;;
|
INFO/CONFLICTS) mcrpmfs_getRawOneTag "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" >"$2"; exit 0;;
|
||||||
CONTENTS.cpio) $RPM2CPIO "`echo ${rpm_filename}| $SED "${SEDCMD}"`" > "$2"; exit 0;;
|
CONTENTS.cpio) $RPM2CPIO "${rpm_filename}" > "$2"; exit 0;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -292,9 +288,9 @@ mcrpmfs_copyout ()
|
|||||||
mcrpmfs_run ()
|
mcrpmfs_run ()
|
||||||
{
|
{
|
||||||
case "$1" in
|
case "$1" in
|
||||||
INSTALL) echo "Installing \"\"$f\"\""; $RPM -ivh "`echo ${rpm_filename}| $SED "${SEDCMD}"`"; exit 0;;
|
INSTALL) echo "Installing \"\"$f\"\""; $RPM -ivh "${rpm_filename}"; exit 0;;
|
||||||
UPGRADE) echo "Upgrading \"\"$f\"\""; $RPM -Uvh "`echo ${rpm_filename}| $SED "${SEDCMD}"`"; exit 0;;
|
UPGRADE) echo "Upgrading \"\"$f\"\""; $RPM -Uvh "${rpm_filename}"; exit 0;;
|
||||||
REBUILD) echo "Rebuilding \"${rpm_filename}\""; $RPMBUILD --rebuild "`echo ${rpm_filename}| $SED "${SEDCMD}"`"; exit 0;;
|
REBUILD) echo "Rebuilding \"${rpm_filename}\""; $RPMBUILD --rebuild "${rpm_filename}"; exit 0;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user