[openwrt/openwrt] build: image: use printf for ModelNameLimit16

LEDE Commits lede-commits at lists.infradead.org
Thu Oct 13 07:10:52 PDT 2022


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/2f8ac8bcea879542b2bc414a108c3aff166d5ef5

commit 2f8ac8bcea879542b2bc414a108c3aff166d5ef5
Author: Huangbin Zhan <zhanhb88 at gmail.com>
AuthorDate: Wed Mar 30 00:15:29 2022 +0800

    build: image: use printf for ModelNameLimit16
    
    Fix syntax error on macos, for substr is undefined results according to
    the POSIX standard.
    
    From expr on macos:
     According to the POSIX standard, the use of string arguments length,
     substr, index, or match produces undefined results.  In this version of
     expr, these arguments are treated just as their respective string values.
    
    By a simple test Makefile:
    
    define ModelNameLimit16
    $(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16)
    endef
    
    define ModelNameLimit16_2
    $(shell printf %.16s "$(word 2, $(subst _, ,$(1)))")
    endef
    
    hello:
            echo $(call ModelNameLimit16, technicolor_tg582n-telecom-italia)
            echo $(call ModelNameLimit16_2, technicolor_tg582n-telecom-italia)
    
    The same output is produced.
    
    echo tg582n-telecom-i
    tg582n-telecom-i
    echo tg582n-telecom-i
    tg582n-telecom-i
    
    Signed-off-by: Huangbin Zhan <zhanhb88 at gmail.com>
    [ wrap commit description to 80 columns and improve it ]
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/image-commands.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/image-commands.mk b/include/image-commands.mk
index 6fe2890a1a..6b4bc4945c 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -4,7 +4,7 @@ IMAGE_KERNEL = $(word 1,$^)
 IMAGE_ROOTFS = $(word 2,$^)
 
 define ModelNameLimit16
-$(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16)
+$(shell printf %.16s "$(word 2, $(subst _, ,$(1)))")
 endef
 
 define rootfs_align




More information about the lede-commits mailing list