autoconf-patches
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]