[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH 19/39] backup-files: Use internal implementation of d
From: |
Jean Delvare |
Subject: |
[Quilt-dev] [PATCH 19/39] backup-files: Use internal implementation of dirname |
Date: |
Sat, 19 Mar 2011 10:52:49 +0100 |
User-agent: |
quilt/0.48-17.1 |
Use quilt's internal implementation of dirname. This is more
efficient than calling an external binary, and avoids a dependency.
Signed-off-by: Jean Delvare <address@hidden>
Reviewed-by: Raphael Hertzog <address@hidden>
---
Makefile.in | 6 ++---
quilt/scripts/backup-files.in | 3 ++
quilt/scripts/patchfns.in | 38 +-----------------------------------
quilt/scripts/utilfns | 44 ++++++++++++++++++++++++++++++++++++++++++
4 files changed, 52 insertions(+), 39 deletions(-)
--- a/quilt/scripts/backup-files.in
+++ b/quilt/scripts/backup-files.in
@@ -44,6 +44,9 @@ usage () {
"
}
+: address@hidden@}
+. $QUILT_DIR/scripts/utilfns
+
ensure_nolinks() {
local filename="$1"
local link_count tmpname
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -43,6 +43,8 @@ if [ -n "$QUILT_COMMAND" ]; then
unset args
fi
+. $QUILT_DIR/scripts/utilfns
+
# ========================================================
declare -a exit_handlers
@@ -88,42 +90,6 @@ quote_re()
echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g'
}
-basename()
-{
- local path=$1
- while [ "${path:(-1)}" = "/" ]
- do
- path=${path%/}
- done
- echo "${path##*/}"
-}
-
-dirname()
-{
- local path=$1
- while [ "${path:(-1)}" = "/" ]
- do
- path=${path%/}
- done
- local basename="${path##*/}"
- path="${path:0:${#path}-${#basename}}"
- while [ "${path:(-1)}" = "/" ]
- do
- path=${path%/}
- done
- if [ -n "$path" ]
- then
- echo "$path"
- else
- if [ ${1:0:1} = "/" ]
- then
- echo "/"
- else
- echo "."
- fi
- fi
-}
-
patch_file_name()
{
echo "$QUILT_PATCHES/$1"
--- a/Makefile.in
+++ b/Makefile.in
@@ -200,7 +200,7 @@ doc/quilt.1: doc/quilt.1.in $(QUILT:%=qu
done < $< 2>&1 > $@
.PHONY :: reference
-reference : $(QUILT:%=quilt/%) quilt/scripts/patchfns compat
+reference : $(QUILT:%=quilt/%) quilt/scripts/patchfns quilt/scripts/utilfns
compat
@unset LANG LC_MESSAGES LC_CTYPE LC_ALL; \
for i in $(QUILT); \
do \
@@ -296,7 +296,7 @@ install-main :: scripts
$(INSTALL) -m 755 $(patsubst %,quilt/scripts/%, \
$(filter-out patchfns,$(SCRIPTS))) \
$(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts
- $(INSTALL) -m 644 quilt/scripts/patchfns \
+ $(INSTALL) -m 644 quilt/scripts/patchfns quilt/scripts/utilfns \
$(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts
ifneq ($(PATCH_WRAPPER),)
$(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper
@@ -363,7 +363,7 @@ test/.patch-wrapper.ok : bin/patch-wrapp
# Include a run-time generated list of dependencies for each test case
test/.depend : Makefile $(TESTS)
- @( printf "%s : bin/quilt quilt/scripts/patchfns
quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \
+ @( printf "%s : bin/quilt quilt/scripts/patchfns quilt/scripts/utilfns
quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \
$(AWK) 'sub(/.*\$$ *quilt /, "") \
{ print FILENAME, ":", "quilt/"$$1}' $(TESTS); \
$(AWK) 'sub(/.*\<quilt_command /, "") && ($$1 !~ /[^a-z]/) \
--- /dev/null
+++ b/quilt/scripts/utilfns
@@ -0,0 +1,44 @@
+# This file contains the common functions used by patchfns and backup-files.
+# It is meant to be sourced by bash scripts.
+
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# See the COPYING and AUTHORS files for more details.
+
+basename()
+{
+ local path=$1
+ while [ "${path:(-1)}" = "/" ]
+ do
+ path=${path%/}
+ done
+ echo "${path##*/}"
+}
+
+dirname()
+{
+ local path=$1
+ while [ "${path:(-1)}" = "/" ]
+ do
+ path=${path%/}
+ done
+ local basename="${path##*/}"
+ path="${path:0:${#path}-${#basename}}"
+ while [ "${path:(-1)}" = "/" ]
+ do
+ path=${path%/}
+ done
+ if [ -n "$path" ]
+ then
+ echo "$path"
+ else
+ if [ ${1:0:1} = "/" ]
+ then
+ echo "/"
+ else
+ echo "."
+ fi
+ fi
+}
- [Quilt-dev] [PATCH 14/39] backup-files: Mass reindent, (continued)
- [Quilt-dev] [PATCH 14/39] backup-files: Mass reindent, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 01/39] Make backup-files a shell script, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 22/39] backup-files: Check if backup exists, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 12/39] backup-files: Simplify find loop, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 15/39] backup-files: Optimize restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 23/39] backup-files: Optimize noop, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 27/39] backup-files: Remember the list of files, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 17/39] backup-files: Drop variable filelist, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 09/39] backup-files: Inline copy_file and link_or_copy_file, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 19/39] backup-files: Use internal implementation of dirname,
Jean Delvare <=
- [Quilt-dev] [PATCH 33/39] backup-files: Try mass copy first on copy, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 05/39] Clean up legacy C code, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 11/39] backup-files: Prefix must be a directory, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 30/39] backup-files: Skip first mkdir on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 29/39] backup-files: Try mass link/copy first on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 36/39] backup-files: Drop support for -L on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 16/39] backup-files: Optimize backup, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 06/39] backup-files: Drop suffix option, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 28/39] backup-files: Separate lists for empty and non-empty files, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 10/39] backup-files: Speed up ensure_nolinks, Jean Delvare, 2011/03/19