[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Reimplement AS_BASENAME and AS_DIRNAME with shell functions.
From: |
Stefano Lattarini |
Subject: |
[PATCH] Reimplement AS_BASENAME and AS_DIRNAME with shell functions. |
Date: |
Thu, 29 Jul 2010 13:15:52 +0200 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
Hello autoconfers.
There is any reason why the AS_BASENAME and AS_DIRNAME macros don't
have associated as_fn_* shells functions, like e.g. AS_MKDIR_P or
AS_UNSET do? If there is no such reason, you might find the attached
patch useful.
Regards,
Stefano
From e285d55b0d5338b268d41bd7600a832af5733f73 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <address@hidden>
Date: Thu, 29 Jul 2010 12:03:11 +0200
Subject: [PATCH] Reimplement AS_BASENAME and AS_DIRNAME with shell functions.
* lib/m4sugar/m4sh.m4 (_AS_BASENAME_PREPARE): Define new shell
function `as_fn_basename'.
(AS_BASENAME): Use it.
(_AS_DIRNAME_PREPARE): Define new shell function `as_fn_dirname'.
(AS_DIRNAME): Use it.
---
ChangeLog | 9 +++++++++
lib/m4sugar/m4sh.m4 | 23 +++++++++++++++--------
2 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 46ddfe2..f1d06ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-07-29 Stefano Lattarini <address@hidden>
+
+ Reimplement AS_BASENAME and AS_DIRNAME with shell functions.
+ * lib/m4sugar/m4sh.m4 (_AS_BASENAME_PREPARE): Define new shell
+ function `as_fn_basename'.
+ (AS_BASENAME): Use it.
+ (_AS_DIRNAME_PREPARE): Define new shell function `as_fn_dirname'.
+ (AS_DIRNAME): Use it.
+
2010-07-21 Eric Blake <address@hidden>
Release Version 2.67.
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index 3cc868c..1466cac 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -898,10 +898,7 @@ m4_defun([_AS_BASENAME_SED],
m4_defun_init([AS_BASENAME],
[AS_REQUIRE([_$0_PREPARE])],
-[$as_basename -- $1 ||
-_AS_BASENAME_EXPR([$1]) 2>/dev/null ||
-_AS_BASENAME_SED([$1])])
-
+[as_fn_basename $1])
# _AS_BASENAME_PREPARE
# --------------------
@@ -915,6 +912,12 @@ m4_defun([_AS_BASENAME_PREPARE],
else
as_basename=false
fi
+AS_REQUIRE_SHELL_FN([as_fn_basename],
+ [AS_FUNCTION_DESCRIBE([as_fn_basename FILE-NAME], [FILE-NAME],
+ [Simulate the command 'basename FILE-NAME'.])],
+[ $as_basename -- "$[1]" ||
+ _AS_BASENAME_EXPR(["$[1]"]) 2>/dev/null ||
+ _AS_BASENAME_SED(["$[1]"])])
])# _AS_BASENAME_PREPARE
@@ -929,6 +932,7 @@ fi
# a silly length limit that causes expr to fail if the matched
# substring is longer than 120 bytes. So fall back on echo|sed if
# expr fails.
+
m4_defun_init([_AS_DIRNAME_EXPR],
[AS_REQUIRE([_AS_EXPR_PREPARE])],
[$as_expr X[]$1 : 'X\(.*[[^/]]\)//*[[^/][^/]]*/*$' \| \
@@ -958,10 +962,7 @@ m4_defun([_AS_DIRNAME_SED],
m4_defun_init([AS_DIRNAME],
[AS_REQUIRE([_$0_PREPARE])],
-[$as_dirname -- $1 ||
-_AS_DIRNAME_EXPR([$1]) 2>/dev/null ||
-_AS_DIRNAME_SED([$1])])
-
+[as_fn_dirname $1])
# _AS_DIRNAME_PREPARE
# -------------------
@@ -972,6 +973,12 @@ m4_defun([_AS_DIRNAME_PREPARE],
else
as_dirname=false
fi
+AS_REQUIRE_SHELL_FN([as_fn_dirname],
+ [AS_FUNCTION_DESCRIBE([as_fn_dirname FILE-NAME], [FILE-NAME],
+ [Simulate the command 'dirname FILE-NAME'.])],
+[ $as_dirname -- "$[1]" ||
+ _AS_DIRNAME_EXPR(["$[1]"]) 2>/dev/null ||
+ _AS_DIRNAME_SED(["$[1]"])])
])# _AS_DIRNAME_PREPARE
--
1.7.1
- [PATCH] Reimplement AS_BASENAME and AS_DIRNAME with shell functions.,
Stefano Lattarini <=