Calling dirname and basename is costly, and here we really don't have to. We can simply use a different temporary file name.
Additionally, if stat succeeds, it will always return a valid number, so we can relax the tests. Signed-off-by: Jean Delvare <[email protected]> Reviewed-by: Raphael Hertzog <[email protected]> --- quilt/scripts/backup-files.in | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) --- a/quilt/scripts/backup-files.in +++ b/quilt/scripts/backup-files.in @@ -47,14 +47,11 @@ usage () { ensure_nolinks() { local filename="$1" - local link_count dirname basename tmpname + local link_count tmpname link_count=$(stat @STAT_HARDLINK@ "$filename") - if [ -z "$link_count" ] || [ "$link_count" -gt 1 ]; then - dirname=$(dirname "$filename") - basename=$(basename "$filename") - # Temp file name is "path/to/.file.XXXXXX" - tmpname=$(mktemp "${dirname}/.${basename}.XXXXXX") + if [ $link_count -gt 1 ]; then + tmpname=$(mktemp "$filename.XXXXXX") cp -p "$filename" "$tmpname" mv "$tmpname" "$filename" fi _______________________________________________ Quilt-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/quilt-dev
